У меня есть простой метод, который проверяет, находится ли вычисленная разница в пределах диапазона. Он показывает 5 мутаций для возвращаемого значения. Что бы я ни пытался, я не могу убить эти мутации. Ниже приведен метод и контрольный пример.
public boolean isInRange(Float value1, Float value2) {
int upperBound = acceptableDifference;
int lowerBound = -acceptableDifference;
Float difference = value1 - value2;
return difference >= lowerBound && difference <= upperBound;
}
////////TEST CASE
assertEquals(true, classUnderTest.isInRange(20.0F, 30.0F));
assertEquals(false, classUnderTest.isInRange(20.0F, 45.0F));
Как вы убиваете такие мутации?
Отчет PIT:
96 public boolean isInRange(Long value1, Long value2) {
97 int upperBound = acceptableDifference;
98 1 int lowerBound = -acceptableDifference; //<== One mutation
99 1 Long difference = value1 - value2; //<== One mutation
100 5 return difference >= lowerBound && difference <= upperBound; //<== Five Mutations