函数的限制与两个边界相同,因此更改的条件边界失败但不应该
Function has limits same from both boundaries so changed conditional boundary fails but should not
我将函数定义为:
- 对于 x < 0 函数 returns 0
- 对于 x >= 0 函数 returns x
我将其实现为
if (x < 0) return 0;
return x;
我进行了测试,x 等于 0 时 return 0。
但变种人
if (x <= 0) return 0;
return x;
幸存下来。
有什么技巧可以掩盖这个突变体吗?
从表面上看,这是一个经典的等效突变体。但是,您的 if 语句可以替换为
return Math.max(0,x);
这是一种改进,因为它一目了然地表达了逻辑的意图,并且不会造成突变。
Math.max 实现将是原始代码的变体。在该位置无法进行任何改进,必须将那里的突变视为等效(即忽略)。
我将函数定义为:
- 对于 x < 0 函数 returns 0
- 对于 x >= 0 函数 returns x
我将其实现为
if (x < 0) return 0;
return x;
我进行了测试,x 等于 0 时 return 0。
但变种人
if (x <= 0) return 0;
return x;
幸存下来。
有什么技巧可以掩盖这个突变体吗?
从表面上看,这是一个经典的等效突变体。但是,您的 if 语句可以替换为
return Math.max(0,x);
这是一种改进,因为它一目了然地表达了逻辑的意图,并且不会造成突变。
Math.max 实现将是原始代码的变体。在该位置无法进行任何改进,必须将那里的突变视为等效(即忽略)。