FitnessVector.java

1
package net.bmahe.genetics4j.moo;
2
3
import java.util.Collection;
4
import java.util.Comparator;
5
import java.util.List;
6
import java.util.stream.Collectors;
7
import java.util.stream.IntStream;
8
9
import org.apache.commons.lang3.Validate;
10
11
/**
12
 * Represents a multi-objective fitness vector for multi-objective optimization (MOO).
13
 * 
14
 * <p>A FitnessVector encapsulates multiple fitness values, each representing the quality of a solution in a different
15
 * objective dimension. This is essential for multi-objective evolutionary algorithms like NSGA-II and SPEA-II where
16
 * solutions are evaluated against multiple, often conflicting objectives.
17
 * 
18
 * <p>The fitness vector provides:
19
 * <ul>
20
 * <li>Storage for multiple objective values</li>
21
 * <li>Custom comparators for each objective (minimization/maximization)</li>
22
 * <li>Pareto dominance comparison logic</li>
23
 * <li>Type-safe access to individual objective values</li>
24
 * </ul>
25
 * 
26
 * <p>Pareto dominance comparison rules:
27
 * <ul>
28
 * <li>Vector A dominates B if A is better in all objectives</li>
29
 * <li>Vector A weakly dominates B if A is better or equal in all objectives and better in at least one</li>
30
 * <li>Vectors are non-dominated if neither dominates the other</li>
31
 * </ul>
32
 * 
33
 * @param <T> the type of the fitness values, must be comparable
34
 * @see net.bmahe.genetics4j.moo.nsga2
35
 * @see net.bmahe.genetics4j.moo.spea2
36
 * @see ParetoUtils
37
 */
38
public class FitnessVector<T extends Comparable<T>> implements Comparable<FitnessVector<T>> {
39
40
	private final List<T> fitnesses;
41
	private final List<Comparator<T>> comparators;
42
43
	/**
44
	 * Creates a fitness vector with the specified values and comparators.
45
	 * 
46
	 * @param _vector      the fitness values for each objective
47
	 * @param _comparators the comparators defining optimization direction for each objective
48
	 * @throws IllegalArgumentException if vectors are null, empty, or have different sizes
49
	 */
50
	public FitnessVector(final Collection<T> _vector, final Collection<Comparator<T>> _comparators) {
51
		Validate.notNull(_vector);
52
		Validate.isTrue(_vector.size() > 0);
53
		Validate.notNull(_comparators);
54
		Validate.isTrue(_vector.size() == _comparators.size());
55
56 2 1. <init> : Removed assignment to member variable fitnesses → KILLED
2. <init> : removed call to java/util/List::copyOf → KILLED
		fitnesses = List.copyOf(_vector);
57 2 1. <init> : Removed assignment to member variable comparators → KILLED
2. <init> : removed call to java/util/List::copyOf → KILLED
		comparators = List.copyOf(_comparators);
58
	}
59
60
	/**
61
	 * Creates a fitness vector with natural ordering for all objectives.
62
	 * 
63
	 * <p>All objectives will use natural ordering (ascending), which means smaller values are considered better
64
	 * (minimization).
65
	 * 
66
	 * @param _vector the fitness values for each objective
67
	 * @throws IllegalArgumentException if vector is null or empty
68
	 */
69
	public FitnessVector(final Collection<T> _vector) {
70 1 1. <init> : Substituted 0 with 1 → KILLED
		this(_vector,
71 2 1. <init> : removed call to java/util/Collection::size → KILLED
2. <init> : removed call to java/util/stream/IntStream::range → KILLED
				IntStream.range(0, _vector.size())
72 1 1. <init> : removed call to java/util/stream/IntStream::boxed → KILLED
						.boxed()
73 4 1. lambda$new$0 : replaced return value with null for net/bmahe/genetics4j/moo/FitnessVector::lambda$new$0 → KILLED
2. <init> : replaced call to java/util/stream/Stream::map with receiver → KILLED
3. lambda$new$0 : removed call to java/util/Comparator::naturalOrder → KILLED
4. <init> : removed call to java/util/stream/Stream::map → KILLED
						.map((i) -> Comparator.<T>naturalOrder())
74 2 1. <init> : removed call to java/util/stream/Collectors::toList → KILLED
2. <init> : removed call to java/util/stream/Stream::collect → KILLED
						.collect(Collectors.toList()));
75
	}
76
77
	/**
78
	 * Creates a fitness vector from variable arguments with natural ordering.
79
	 * 
80
	 * @param _vector the fitness values for each objective
81
	 * @throws IllegalArgumentException if vector is empty
82
	 */
83
	public FitnessVector(T... _vector) {
84 1 1. <init> : removed call to java/util/List::of → KILLED
		this(List.of(_vector));
85
	}
86
87
	/**
88
	 * Returns the number of objectives in this fitness vector.
89
	 * 
90
	 * @return the number of objectives
91
	 */
92
	public int dimensions() {
93 2 1. dimensions : removed call to java/util/List::size → KILLED
2. dimensions : replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED
		return fitnesses.size();
94
	}
95
96
	/**
97
	 * Returns the fitness value for the specified objective.
98
	 * 
99
	 * @param index the index of the objective (0-based)
100
	 * @return the fitness value for the specified objective
101
	 * @throws IllegalArgumentException if index is out of bounds
102
	 */
103
	public T get(final int index) {
104
		Validate.exclusiveBetween(-1, fitnesses.size(), index);
105
106 2 1. get : replaced return value with null for net/bmahe/genetics4j/moo/FitnessVector::get → KILLED
2. get : removed call to java/util/List::get → KILLED
		return fitnesses.get(index);
107
	}
108
109
	/**
110
	 * Returns the comparator for the specified objective.
111
	 * 
112
	 * @param index the index of the objective (0-based)
113
	 * @return the comparator defining optimization direction for the objective
114
	 * @throws IllegalArgumentException if index is out of bounds
115
	 */
116
	public Comparator<T> getComparator(final int index) {
117
		Validate.exclusiveBetween(-1, fitnesses.size(), index);
118
119 2 1. getComparator : removed call to java/util/List::get → KILLED
2. getComparator : replaced return value with null for net/bmahe/genetics4j/moo/FitnessVector::getComparator → KILLED
		return comparators.get(index);
120
	}
121
122
	@Override
123
	public int hashCode() {
124 1 1. hashCode : Substituted 31 with 32 → NO_COVERAGE
		final int prime = 31;
125 1 1. hashCode : Substituted 1 with 0 → NO_COVERAGE
		int result = 1;
126 8 1. hashCode : Replaced integer addition with subtraction → NO_COVERAGE
2. hashCode : Substituted 31 with 32 → NO_COVERAGE
3. hashCode : negated conditional → NO_COVERAGE
4. hashCode : Substituted 0 with 1 → NO_COVERAGE
5. hashCode : removed call to java/util/List::hashCode → NO_COVERAGE
6. hashCode : Replaced integer multiplication with division → NO_COVERAGE
7. hashCode : removed conditional - replaced equality check with false → NO_COVERAGE
8. hashCode : removed conditional - replaced equality check with true → NO_COVERAGE
		result = prime * result + ((comparators == null) ? 0 : comparators.hashCode());
127 8 1. hashCode : Substituted 0 with 1 → NO_COVERAGE
2. hashCode : Replaced integer multiplication with division → NO_COVERAGE
3. hashCode : removed conditional - replaced equality check with true → NO_COVERAGE
4. hashCode : removed conditional - replaced equality check with false → NO_COVERAGE
5. hashCode : Replaced integer addition with subtraction → NO_COVERAGE
6. hashCode : Substituted 31 with 32 → NO_COVERAGE
7. hashCode : removed call to java/util/List::hashCode → NO_COVERAGE
8. hashCode : negated conditional → NO_COVERAGE
		result = prime * result + ((fitnesses == null) ? 0 : fitnesses.hashCode());
128 1 1. hashCode : replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::hashCode → NO_COVERAGE
		return result;
129
	}
130
131
	@Override
132
	public boolean equals(Object obj) {
133 2 1. equals : removed conditional - replaced equality check with true → KILLED
2. equals : negated conditional → KILLED
		if (this == obj)
134 2 1. equals : replaced boolean return with false for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE
2. equals : Substituted 1 with 0 → NO_COVERAGE
			return true;
135 3 1. equals : removed conditional - replaced equality check with false → KILLED
2. equals : removed conditional - replaced equality check with true → KILLED
3. equals : negated conditional → KILLED
		if (obj == null)
136 2 1. equals : Substituted 0 with 1 → KILLED
2. equals : replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED
			return false;
137 5 1. equals : removed conditional - replaced equality check with false → SURVIVED
2. equals : removed call to java/lang/Object::getClass → KILLED
3. equals : negated conditional → KILLED
4. equals : removed conditional - replaced equality check with true → KILLED
5. equals : removed call to java/lang/Object::getClass → KILLED
		if (getClass() != obj.getClass())
138 2 1. equals : replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE
2. equals : Substituted 0 with 1 → NO_COVERAGE
			return false;
139
		FitnessVector other = (FitnessVector) obj;
140 3 1. equals : removed conditional - replaced equality check with false → SURVIVED
2. equals : negated conditional → KILLED
3. equals : removed conditional - replaced equality check with true → KILLED
		if (comparators == null) {
141 3 1. equals : removed conditional - replaced equality check with true → NO_COVERAGE
2. equals : negated conditional → NO_COVERAGE
3. equals : removed conditional - replaced equality check with false → NO_COVERAGE
			if (other.comparators != null)
142 2 1. equals : Substituted 0 with 1 → NO_COVERAGE
2. equals : replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE
				return false;
143 4 1. equals : removed conditional - replaced equality check with false → SURVIVED
2. equals : removed call to java/util/List::equals → KILLED
3. equals : negated conditional → KILLED
4. equals : removed conditional - replaced equality check with true → KILLED
		} else if (!comparators.equals(other.comparators))
144 2 1. equals : replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED
2. equals : Substituted 0 with 1 → KILLED
			return false;
145 3 1. equals : removed conditional - replaced equality check with false → SURVIVED
2. equals : negated conditional → KILLED
3. equals : removed conditional - replaced equality check with true → KILLED
		if (fitnesses == null) {
146 3 1. equals : negated conditional → NO_COVERAGE
2. equals : removed conditional - replaced equality check with false → NO_COVERAGE
3. equals : removed conditional - replaced equality check with true → NO_COVERAGE
			if (other.fitnesses != null)
147 2 1. equals : Substituted 0 with 1 → NO_COVERAGE
2. equals : replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE
				return false;
148 4 1. equals : removed conditional - replaced equality check with true → KILLED
2. equals : negated conditional → KILLED
3. equals : removed call to java/util/List::equals → KILLED
4. equals : removed conditional - replaced equality check with false → KILLED
		} else if (!fitnesses.equals(other.fitnesses))
149 2 1. equals : replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED
2. equals : Substituted 0 with 1 → KILLED
			return false;
150 2 1. equals : Substituted 1 with 0 → KILLED
2. equals : replaced boolean return with false for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED
		return true;
151
	}
152
153
	@Override
154
	public String toString() {
155 2 1. toString : replaced return value with "" for net/bmahe/genetics4j/moo/FitnessVector::toString → SURVIVED
2. toString : removed call to java/lang/String::valueOf → SURVIVED
		return "FitnessVector [fitnesses=" + fitnesses + "]";
156
	}
157
158
	@Override
159
	public int compareTo(final FitnessVector<T> o) {
160 2 1. compareTo : removed call to net/bmahe/genetics4j/moo/FitnessVector::compare → KILLED
2. compareTo : replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::compareTo → KILLED
		return compare(this, o);
161
	}
162
163
	/**
164
	 * Compares two fitness vectors using Pareto dominance.
165
	 * 
166
	 * <p>This method implements Pareto dominance comparison:
167
	 * <ul>
168
	 * <li>Returns positive value if fv1 dominates fv2 (fv1 is better in all objectives)</li>
169
	 * <li>Returns negative value if fv2 dominates fv1 (fv2 is better in all objectives)</li>
170
	 * <li>Returns 0 if vectors are non-dominated (neither dominates the other)</li>
171
	 * </ul>
172
	 * 
173
	 * @param <U> the type of the fitness values
174
	 * @param fv1 the first fitness vector to compare
175
	 * @param fv2 the second fitness vector to compare
176
	 * @return positive if fv1 dominates fv2, negative if fv2 dominates fv1, 0 if non-dominated
177
	 * @throws IllegalArgumentException if vectors are null or have different dimensions
178
	 */
179
	public static <U extends Comparable<U>> int compare(final FitnessVector<U> fv1, final FitnessVector<U> fv2) {
180
		Validate.notNull(fv1);
181
		Validate.notNull(fv2);
182
183 5 1. compare : removed conditional - replaced equality check with false → KILLED
2. compare : negated conditional → KILLED
3. compare : removed call to net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED
4. compare : removed conditional - replaced equality check with true → KILLED
5. compare : removed call to net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED
		if (fv1.dimensions() != fv2.dimensions()) {
184 1 1. compare : removed call to java/lang/IllegalArgumentException::<init> → KILLED
			throw new IllegalArgumentException("Can't compare FitnessVector with different dimensions");
185
		}
186
187 1 1. compare : Substituted 0 with 1 → KILLED
		int greater = 0;
188 1 1. compare : Substituted 0 with 1 → KILLED
		int lesser = 0;
189
190 6 1. compare : removed call to net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED
2. compare : removed conditional - replaced comparison check with false → KILLED
3. compare : negated conditional → KILLED
4. compare : changed conditional boundary → KILLED
5. compare : Substituted 0 with 1 → KILLED
6. compare : removed conditional - replaced comparison check with true → KILLED
		for (int i = 0; i < fv1.dimensions(); i++) {
191 1 1. compare : removed call to net/bmahe/genetics4j/moo/FitnessVector::get → KILLED
			final U d1 = fv1.get(i);
192 1 1. compare : removed call to net/bmahe/genetics4j/moo/FitnessVector::get → KILLED
			final U d2 = fv2.get(i);
193
194 1 1. compare : removed call to java/util/List::get → KILLED
			final int compared = fv1.comparators.get(i)
195 1 1. compare : removed call to java/util/Comparator::compare → KILLED
					.compare(d1, d2);
196
197 4 1. compare : changed conditional boundary → KILLED
2. compare : negated conditional → KILLED
3. compare : removed conditional - replaced comparison check with true → KILLED
4. compare : removed conditional - replaced comparison check with false → KILLED
			if (compared < 0) {
198 2 1. compare : Changed increment from 1 to -1 → KILLED
2. compare : Removed increment 1 → KILLED
				lesser++;
199 4 1. compare : removed conditional - replaced comparison check with true → KILLED
2. compare : negated conditional → KILLED
3. compare : changed conditional boundary → KILLED
4. compare : removed conditional - replaced comparison check with false → KILLED
			} else if (compared > 0) {
200 2 1. compare : Changed increment from 1 to -1 → KILLED
2. compare : Removed increment 1 → KILLED
				greater++;
201
			}
202
		}
203
204 7 1. compare : negated conditional → KILLED
2. compare : removed conditional - replaced equality check with true → KILLED
3. compare : changed conditional boundary → KILLED
4. compare : removed conditional - replaced equality check with false → KILLED
5. compare : removed conditional - replaced comparison check with true → KILLED
6. compare : removed conditional - replaced comparison check with false → KILLED
7. compare : negated conditional → KILLED
		if (lesser == 0 && greater > 0) {
205 2 1. compare : replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::compare → KILLED
2. compare : Substituted 1 with 0 → KILLED
			return 1;
206
		}
207 7 1. compare : removed conditional - replaced equality check with false → KILLED
2. compare : removed conditional - replaced comparison check with true → KILLED
3. compare : negated conditional → KILLED
4. compare : negated conditional → KILLED
5. compare : changed conditional boundary → KILLED
6. compare : removed conditional - replaced comparison check with false → KILLED
7. compare : removed conditional - replaced equality check with true → KILLED
		if (greater == 0 && lesser > 0) {
208 2 1. compare : replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::compare → KILLED
2. compare : Substituted -1 with 0 → KILLED
			return -1;
209
		}
210 1 1. compare : Substituted 0 with 1 → KILLED
		return 0;
211
	}
212
}

Mutations

56

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:comparatorGetIndex()]
Removed assignment to member variable fitnesses → KILLED

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:comparatorGetIndex()]
removed call to java/util/List::copyOf → KILLED

57

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:comparatorGetIndex()]
Removed assignment to member variable comparators → KILLED

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:comparatorGetIndex()]
removed call to java/util/List::copyOf → KILLED

70

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:outOfBoundGetIndex()]
Substituted 0 with 1 → KILLED

71

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:outOfBoundGetIndex()]
removed call to java/util/Collection::size → KILLED

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:ctorEmptyArg()]
removed call to java/util/stream/IntStream::range → KILLED

72

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:ctorEmptyArg()]
removed call to java/util/stream/IntStream::boxed → KILLED

73

1.1
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:outOfBoundGetIndex()]
replaced return value with null for net/bmahe/genetics4j/moo/FitnessVector::lambda$new$0 → KILLED

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
replaced call to java/util/stream/Stream::map with receiver → KILLED

3.3
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:outOfBoundGetIndex()]
removed call to java/util/Comparator::naturalOrder → KILLED

4.4
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:ctorEmptyArg()]
removed call to java/util/stream/Stream::map → KILLED

74

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:ctorEmptyArg()]
removed call to java/util/stream/Collectors::toList → KILLED

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:outOfBoundGetIndex()]
removed call to java/util/stream/Stream::collect → KILLED

84

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:outOfBoundGetIndex()]
removed call to java/util/List::of → KILLED

93

1.1
Location : dimensions
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceCheckDifferentDimensions()]
removed call to java/util/List::size → KILLED

2.2
Location : dimensions
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceCheckDifferentDimensions()]
replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED

106

1.1
Location : get
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
replaced return value with null for net/bmahe/genetics4j/moo/FitnessVector::get → KILLED

2.2
Location : get
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to java/util/List::get → KILLED

119

1.1
Location : getComparator
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:comparatorGetIndex()]
removed call to java/util/List::get → KILLED

2.2
Location : getComparator
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:comparatorGetIndex()]
replaced return value with null for net/bmahe/genetics4j/moo/FitnessVector::getComparator → KILLED

124

1.1
Location : hashCode
Killed by : none
Substituted 31 with 32 → NO_COVERAGE

125

1.1
Location : hashCode
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

126

1.1
Location : hashCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : hashCode
Killed by : none
Substituted 31 with 32 → NO_COVERAGE

3.3
Location : hashCode
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : hashCode
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

5.5
Location : hashCode
Killed by : none
removed call to java/util/List::hashCode → NO_COVERAGE

6.6
Location : hashCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

7.7
Location : hashCode
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

8.8
Location : hashCode
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

127

1.1
Location : hashCode
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

2.2
Location : hashCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : hashCode
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

4.4
Location : hashCode
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

5.5
Location : hashCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

6.6
Location : hashCode
Killed by : none
Substituted 31 with 32 → NO_COVERAGE

7.7
Location : hashCode
Killed by : none
removed call to java/util/List::hashCode → NO_COVERAGE

8.8
Location : hashCode
Killed by : none
negated conditional → NO_COVERAGE

128

1.1
Location : hashCode
Killed by : none
replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::hashCode → NO_COVERAGE

133

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

134

1.1
Location : equals
Killed by : none
replaced boolean return with false for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE

2.2
Location : equals
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

135

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

3.3
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

136

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 0 with 1 → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED

137

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to java/lang/Object::getClass → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

3.3
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

4.4
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to java/lang/Object::getClass → KILLED

5.5
Location : equals
Killed by : none
removed conditional - replaced equality check with false → SURVIVED
Covering tests

138

1.1
Location : equals
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE

2.2
Location : equals
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

140

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

2.2
Location : equals
Killed by : none
removed conditional - replaced equality check with false → SURVIVED
Covering tests

3.3
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

141

1.1
Location : equals
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

2.2
Location : equals
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : equals
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

142

1.1
Location : equals
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

2.2
Location : equals
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE

143

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to java/util/List::equals → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

3.3
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

4.4
Location : equals
Killed by : none
removed conditional - replaced equality check with false → SURVIVED
Covering tests

144

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 0 with 1 → KILLED

145

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

2.2
Location : equals
Killed by : none
removed conditional - replaced equality check with false → SURVIVED
Covering tests

3.3
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

146

1.1
Location : equals
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : equals
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

3.3
Location : equals
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

147

1.1
Location : equals
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

2.2
Location : equals
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → NO_COVERAGE

148

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

3.3
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to java/util/List::equals → KILLED

4.4
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with false → KILLED

149

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
replaced boolean return with true for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 0 with 1 → KILLED

150

1.1
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 1 with 0 → KILLED

2.2
Location : equals
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
replaced boolean return with false for net/bmahe/genetics4j/moo/FitnessVector::equals → KILLED

155

1.1
Location : toString
Killed by : none
replaced return value with "" for net/bmahe/genetics4j/moo/FitnessVector::toString → SURVIVED
Covering tests

2.2
Location : toString
Killed by : none
removed call to java/lang/String::valueOf → SURVIVED Covering tests

160

1.1
Location : compareTo
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceCheckDifferentDimensions()]
removed call to net/bmahe/genetics4j/moo/FitnessVector::compare → KILLED

2.2
Location : compareTo
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::compareTo → KILLED

183

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceCheckDifferentDimensions()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceCheckDifferentDimensions()]
negated conditional → KILLED

3.3
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED

4.4
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced equality check with true → KILLED

5.5
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED

184

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceCheckDifferentDimensions()]
removed call to java/lang/IllegalArgumentException::<init> → KILLED

187

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 0 with 1 → KILLED

188

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 0 with 1 → KILLED

190

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed call to net/bmahe/genetics4j/moo/FitnessVector::dimensions → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced comparison check with false → KILLED

3.3
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
negated conditional → KILLED

4.4
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
changed conditional boundary → KILLED

5.5
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Substituted 0 with 1 → KILLED

6.6
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced comparison check with true → KILLED

191

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to net/bmahe/genetics4j/moo/FitnessVector::get → KILLED

192

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to net/bmahe/genetics4j/moo/FitnessVector::get → KILLED

194

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed call to java/util/List::get → KILLED

195

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed call to java/util/Comparator::compare → KILLED

197

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
changed conditional boundary → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

3.3
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced comparison check with true → KILLED

4.4
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced comparison check with false → KILLED

198

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Changed increment from 1 to -1 → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Removed increment 1 → KILLED

199

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced comparison check with true → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

3.3
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
changed conditional boundary → KILLED

4.4
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced comparison check with false → KILLED

200

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Changed increment from 1 to -1 → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Removed increment 1 → KILLED

204

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced equality check with true → KILLED

3.3
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
changed conditional boundary → KILLED

4.4
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced equality check with false → KILLED

5.5
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced comparison check with true → KILLED

6.6
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced comparison check with false → KILLED

7.7
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
negated conditional → KILLED

205

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::compare → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Substituted 1 with 0 → KILLED

207

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
removed conditional - replaced comparison check with true → KILLED

3.3
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
negated conditional → KILLED

4.4
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
negated conditional → KILLED

5.5
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
changed conditional boundary → KILLED

6.6
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced comparison check with false → KILLED

7.7
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
removed conditional - replaced equality check with true → KILLED

208

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
replaced int return with 0 for net/bmahe/genetics4j/moo/FitnessVector::compare → KILLED

2.2
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:dominanceChecks()]
Substituted -1 with 0 → KILLED

210

1.1
Location : compare
Killed by : net.bmahe.genetics4j.moo.FitnessVectorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.moo.FitnessVectorTest]/[method:simpleChecks()]
Substituted 0 with 1 → KILLED

Active mutators

Tests examined


Report generated by PIT 1.20.3