函数的限制与两个边界相同,因此更改的条件边界失败但不应该

Function has limits same from both boundaries so changed conditional boundary fails but should not

我将函数定义为:

我将其实现为

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 实现将是原始代码的变体。在该位置无法进行任何改进,必须将那里的突变视为等效(即忽略)。