SPEA2ReplacementStrategyImplementor.java

1
package net.bmahe.genetics4j.moo.spea2.replacement;
2
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.Comparator;
6
import java.util.HashMap;
7
import java.util.List;
8
import java.util.Map;
9
import java.util.Map.Entry;
10
import java.util.Objects;
11
import java.util.Set;
12
import java.util.TreeSet;
13
import java.util.function.BiFunction;
14
import java.util.stream.Collectors;
15
import java.util.stream.IntStream;
16
17
import org.apache.commons.lang3.Validate;
18
import org.apache.commons.lang3.time.DurationFormatUtils;
19
import org.apache.commons.lang3.tuple.Pair;
20
import org.apache.logging.log4j.LogManager;
21
import org.apache.logging.log4j.Logger;
22
23
import net.bmahe.genetics4j.core.Genotype;
24
import net.bmahe.genetics4j.core.Population;
25
import net.bmahe.genetics4j.core.replacement.ReplacementStrategyImplementor;
26
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
27
import net.bmahe.genetics4j.moo.spea2.spec.replacement.SPEA2Replacement;
28
29
public class SPEA2ReplacementStrategyImplementor<T extends Comparable<T>> implements ReplacementStrategyImplementor<T> {
30
	final static public Logger logger = LogManager.getLogger(SPEA2ReplacementStrategyImplementor.class);
31
32
	private final SPEA2Replacement<T> spea2Replacement;
33
34
	public SPEA2ReplacementStrategyImplementor(final SPEA2Replacement<T> _spea2Replacement) {
35 1 1. <init> : Removed assignment to member variable spea2Replacement → NO_COVERAGE
		this.spea2Replacement = _spea2Replacement;
36
	}
37
38
	protected double[] computeStrength(final Comparator<T> dominance, final Population<T> population) {
39
		Objects.requireNonNull(dominance);
40
		Objects.requireNonNull(population);
41
		Validate.isTrue(population.size() > 0);
42
43 1 1. computeStrength : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
		final double[] strengths = new double[population.size()];
44 6 1. computeStrength : Substituted 0 with 1 → NO_COVERAGE
2. computeStrength : negated conditional → NO_COVERAGE
3. computeStrength : changed conditional boundary → NO_COVERAGE
4. computeStrength : removed conditional - replaced comparison check with true → NO_COVERAGE
5. computeStrength : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
6. computeStrength : removed conditional - replaced comparison check with false → NO_COVERAGE
		for (int i = 0; i < population.size(); i++) {
45 1 1. computeStrength : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
			final T fitness = population.getFitness(i);
46
47 2 1. computeStrength : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::strength with argument → NO_COVERAGE
2. computeStrength : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::strength → NO_COVERAGE
			strengths[i] = SPEA2Utils.strength(dominance, i, fitness, population);
48
		}
49
50 1 1. computeStrength : replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeStrength → NO_COVERAGE
		return strengths;
51
	}
52
53
	protected double[][] computeObjectiveDistances(final BiFunction<T, T, Double> distance,
54
			final Population<T> population) {
55
		Objects.requireNonNull(distance);
56
		Objects.requireNonNull(population);
57
		Validate.isTrue(population.size() > 0);
58
59 2 1. computeObjectiveDistances : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
2. computeObjectiveDistances : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
		final double[][] distanceObjectives = new double[population.size()][population.size()];
60
61 6 1. computeObjectiveDistances : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
2. computeObjectiveDistances : negated conditional → NO_COVERAGE
3. computeObjectiveDistances : removed conditional - replaced comparison check with false → NO_COVERAGE
4. computeObjectiveDistances : changed conditional boundary → NO_COVERAGE
5. computeObjectiveDistances : removed conditional - replaced comparison check with true → NO_COVERAGE
6. computeObjectiveDistances : Substituted 0 with 1 → NO_COVERAGE
		for (int i = 0; i < population.size(); i++) {
62 5 1. computeObjectiveDistances : changed conditional boundary → NO_COVERAGE
2. computeObjectiveDistances : removed conditional - replaced comparison check with true → NO_COVERAGE
3. computeObjectiveDistances : removed conditional - replaced comparison check with false → NO_COVERAGE
4. computeObjectiveDistances : Substituted 0 with 1 → NO_COVERAGE
5. computeObjectiveDistances : negated conditional → NO_COVERAGE
			for (int j = 0; j < i; j++) {
63 4 1. computeObjectiveDistances : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
2. computeObjectiveDistances : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
3. computeObjectiveDistances : replaced call to java/util/function/BiFunction::apply with argument → NO_COVERAGE
4. computeObjectiveDistances : removed call to java/util/function/BiFunction::apply → NO_COVERAGE
				final Double distanceMeasure = distance.apply(population.getFitness(i), population.getFitness(j));
64 1 1. computeObjectiveDistances : removed call to java/lang/Double::doubleValue → NO_COVERAGE
				distanceObjectives[i][j] = distanceMeasure;
65 1 1. computeObjectiveDistances : removed call to java/lang/Double::doubleValue → NO_COVERAGE
				distanceObjectives[j][i] = distanceMeasure;
66
			}
67
68 1 1. computeObjectiveDistances : Substituted 0.0 with 1.0 → NO_COVERAGE
			distanceObjectives[i][i] = 0.0;
69
		}
70 1 1. computeObjectiveDistances : replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeObjectiveDistances → NO_COVERAGE
		return distanceObjectives;
71
	}
72
73
	protected double[] computeRawFitness(final Comparator<T> dominance, final double[] strengths,
74
			final Population<T> population) {
75
		Objects.requireNonNull(dominance);
76
		Objects.requireNonNull(strengths);
77
		Objects.requireNonNull(population);
78
		Validate.isTrue(population.size() == strengths.length);
79
		Validate.isTrue(population.size() > 0);
80
81 1 1. computeRawFitness : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
		final double[] rawFitness = new double[population.size()];
82 6 1. computeRawFitness : Substituted 0 with 1 → NO_COVERAGE
2. computeRawFitness : removed conditional - replaced comparison check with false → NO_COVERAGE
3. computeRawFitness : removed conditional - replaced comparison check with true → NO_COVERAGE
4. computeRawFitness : negated conditional → NO_COVERAGE
5. computeRawFitness : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
6. computeRawFitness : changed conditional boundary → NO_COVERAGE
		for (int i = 0; i < population.size(); i++) {
83 1 1. computeRawFitness : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
			final T fitness = population.getFitness(i);
84
85 2 1. computeRawFitness : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::rawFitness with argument → NO_COVERAGE
2. computeRawFitness : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::rawFitness → NO_COVERAGE
			rawFitness[i] = SPEA2Utils.rawFitness(dominance, strengths, i, fitness, population);
86
		}
87
88 1 1. computeRawFitness : replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeRawFitness → NO_COVERAGE
		return rawFitness;
89
	}
90
91
	protected List<List<Pair<Integer, Double>>> computeSortedDistances(final double[][] distanceObjectives,
92
			final Population<T> population) {
93
		Objects.requireNonNull(distanceObjectives);
94
		Objects.requireNonNull(population);
95
		Validate.isTrue(population.size() == distanceObjectives.length); // won't test all the rows
96
		Validate.isTrue(population.size() > 0);
97
98 1 1. computeSortedDistances : removed call to java/util/ArrayList::<init> → NO_COVERAGE
		final List<List<Pair<Integer, Double>>> distances = new ArrayList<>();
99 6 1. computeSortedDistances : removed conditional - replaced comparison check with true → NO_COVERAGE
2. computeSortedDistances : changed conditional boundary → NO_COVERAGE
3. computeSortedDistances : Substituted 0 with 1 → NO_COVERAGE
4. computeSortedDistances : negated conditional → NO_COVERAGE
5. computeSortedDistances : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
6. computeSortedDistances : removed conditional - replaced comparison check with false → NO_COVERAGE
		for (int i = 0; i < population.size(); i++) {
100 1 1. computeSortedDistances : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
			final T fitness = population.getFitness(i);
101
102
			final List<Pair<Integer, Double>> kthDistances = SPEA2Utils
103 1 1. computeSortedDistances : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::kthDistances → NO_COVERAGE
					.kthDistances(distanceObjectives, i, fitness, population);
104 1 1. computeSortedDistances : removed call to java/util/List::add → NO_COVERAGE
			distances.add(kthDistances);
105
106
		}
107 1 1. computeSortedDistances : replaced return value with Collections.emptyList for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeSortedDistances → NO_COVERAGE
		return distances;
108
	}
109
110
	protected double[] computeDensity(final List<List<Pair<Integer, Double>>> distances, final int k,
111
			final Population<T> population) {
112
		Objects.requireNonNull(distances);
113
		Validate.isTrue(population.size() == distances.size());
114
		Validate.isTrue(k > 0);
115
		Objects.requireNonNull(population);
116
		Validate.isTrue(population.size() > 0);
117
118 1 1. computeDensity : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
		final double[] density = new double[population.size()];
119 6 1. computeDensity : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
2. computeDensity : removed conditional - replaced comparison check with true → NO_COVERAGE
3. computeDensity : negated conditional → NO_COVERAGE
4. computeDensity : removed conditional - replaced comparison check with false → NO_COVERAGE
5. computeDensity : Substituted 0 with 1 → NO_COVERAGE
6. computeDensity : changed conditional boundary → NO_COVERAGE
		for (int i = 0; i < population.size(); i++) {
120 2 1. computeDensity : Substituted 1.0 with 2.0 → NO_COVERAGE
2. computeDensity : removed call to java/util/List::get → NO_COVERAGE
			density[i] = 1.0d / (distances.get(i)
121 1 1. computeDensity : removed call to java/util/List::get → NO_COVERAGE
					.get(k)
122 5 1. computeDensity : Replaced double division with multiplication → NO_COVERAGE
2. computeDensity : Replaced double addition with subtraction → NO_COVERAGE
3. computeDensity : removed call to java/lang/Double::doubleValue → NO_COVERAGE
4. computeDensity : Substituted 2.0 with 1.0 → NO_COVERAGE
5. computeDensity : removed call to org/apache/commons/lang3/tuple/Pair::getRight → NO_COVERAGE
					.getRight() + 2);
123
		}
124
125 1 1. computeDensity : replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeDensity → NO_COVERAGE
		return density;
126
	}
127
128
	protected double[] computeFinalFitness(final double[] rawFitness, final double[] density,
129
			final Population<T> population) {
130
		Objects.requireNonNull(rawFitness);
131
		Objects.requireNonNull(density);
132
		Validate.isTrue(rawFitness.length == density.length);
133
		Objects.requireNonNull(population);
134
		Validate.isTrue(population.size() > 0);
135
		Validate.isTrue(population.size() == density.length);
136
137 1 1. computeFinalFitness : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
		final double[] finalFitness = new double[population.size()];
138 6 1. computeFinalFitness : Substituted 0 with 1 → NO_COVERAGE
2. computeFinalFitness : changed conditional boundary → NO_COVERAGE
3. computeFinalFitness : removed conditional - replaced comparison check with false → NO_COVERAGE
4. computeFinalFitness : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
5. computeFinalFitness : removed conditional - replaced comparison check with true → NO_COVERAGE
6. computeFinalFitness : negated conditional → NO_COVERAGE
		for (int i = 0; i < population.size(); i++) {
139 1 1. computeFinalFitness : Replaced double addition with subtraction → NO_COVERAGE
			finalFitness[i] = rawFitness[i] + density[i];
140
		}
141
142 1 1. computeFinalFitness : replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeFinalFitness → NO_COVERAGE
		return finalFitness;
143
	}
144
145
	protected int skipNull(final List<Pair<Integer, Double>> distances, final int i) {
146
		Objects.requireNonNull(distances);
147
		Validate.isTrue(i >= 0);
148
		Validate.isTrue(i <= distances.size());
149
150
		int j = i;
151
152 9 1. skipNull : removed conditional - replaced comparison check with false → NO_COVERAGE
2. skipNull : removed conditional - replaced comparison check with true → NO_COVERAGE
3. skipNull : negated conditional → NO_COVERAGE
4. skipNull : removed conditional - replaced equality check with true → NO_COVERAGE
5. skipNull : removed conditional - replaced equality check with false → NO_COVERAGE
6. skipNull : removed call to java/util/List::size → NO_COVERAGE
7. skipNull : negated conditional → NO_COVERAGE
8. skipNull : removed call to java/util/List::get → NO_COVERAGE
9. skipNull : changed conditional boundary → NO_COVERAGE
		while (j < distances.size() && distances.get(j) == null) {
153
			j++;
154
		}
155
156 1 1. skipNull : replaced int return with 0 for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE
		return j;
157
	}
158
159
	protected List<Integer> computeAdditionalIndividuals(final Set<Integer> selectedIndex, final double[] rawFitness,
160
			final Population<T> population, final int numIndividuals) {
161
		Objects.requireNonNull(selectedIndex);
162
		Objects.requireNonNull(rawFitness);
163
		Objects.requireNonNull(population);
164
		Validate.isTrue(rawFitness.length == population.size());
165
		Validate.isTrue(numIndividuals >= selectedIndex.size());
166
167 4 1. computeAdditionalIndividuals : negated conditional → NO_COVERAGE
2. computeAdditionalIndividuals : removed call to java/util/Set::size → NO_COVERAGE
3. computeAdditionalIndividuals : removed conditional - replaced equality check with true → NO_COVERAGE
4. computeAdditionalIndividuals : removed conditional - replaced equality check with false → NO_COVERAGE
		if (numIndividuals == selectedIndex.size()) {
168 1 1. computeAdditionalIndividuals : removed call to java/util/Collections::emptyList → NO_COVERAGE
			return Collections.emptyList();
169
		}
170
171 3 1. computeAdditionalIndividuals : removed call to java/util/stream/IntStream::range → NO_COVERAGE
2. computeAdditionalIndividuals : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
3. computeAdditionalIndividuals : Substituted 0 with 1 → NO_COVERAGE
		final List<Integer> additionalIndividuals = IntStream.range(0, population.size())
172 1 1. computeAdditionalIndividuals : removed call to java/util/stream/IntStream::boxed → NO_COVERAGE
				.boxed()
173 9 1. lambda$computeAdditionalIndividuals$0 : negated conditional → NO_COVERAGE
2. lambda$computeAdditionalIndividuals$0 : replaced boolean return with true for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$computeAdditionalIndividuals$0 → NO_COVERAGE
3. lambda$computeAdditionalIndividuals$0 : removed conditional - replaced equality check with false → NO_COVERAGE
4. lambda$computeAdditionalIndividuals$0 : removed call to java/util/Set::contains → NO_COVERAGE
5. lambda$computeAdditionalIndividuals$0 : Substituted 0 with 1 → NO_COVERAGE
6. computeAdditionalIndividuals : removed call to java/util/stream/Stream::filter → NO_COVERAGE
7. lambda$computeAdditionalIndividuals$0 : Substituted 1 with 0 → NO_COVERAGE
8. lambda$computeAdditionalIndividuals$0 : removed conditional - replaced equality check with true → NO_COVERAGE
9. computeAdditionalIndividuals : replaced call to java/util/stream/Stream::filter with receiver → NO_COVERAGE
				.filter((i) -> selectedIndex.contains(i) == false)
174 6 1. lambda$computeAdditionalIndividuals$1 : removed call to java/lang/Integer::intValue → NO_COVERAGE
2. lambda$computeAdditionalIndividuals$1 : replaced int return with 0 for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$computeAdditionalIndividuals$1 → NO_COVERAGE
3. lambda$computeAdditionalIndividuals$1 : removed call to java/lang/Double::compare → NO_COVERAGE
4. computeAdditionalIndividuals : replaced call to java/util/stream/Stream::sorted with receiver → NO_COVERAGE
5. computeAdditionalIndividuals : removed call to java/util/stream/Stream::sorted → NO_COVERAGE
6. lambda$computeAdditionalIndividuals$1 : removed call to java/lang/Integer::intValue → NO_COVERAGE
				.sorted((a, b) -> Double.compare(rawFitness[a], rawFitness[b]))
175 4 1. computeAdditionalIndividuals : removed call to java/util/Set::size → NO_COVERAGE
2. computeAdditionalIndividuals : replaced call to java/util/stream/Stream::limit with receiver → NO_COVERAGE
3. computeAdditionalIndividuals : removed call to java/util/stream/Stream::limit → NO_COVERAGE
4. computeAdditionalIndividuals : Replaced integer subtraction with addition → NO_COVERAGE
				.limit(numIndividuals - selectedIndex.size())
176 2 1. computeAdditionalIndividuals : removed call to java/util/stream/Stream::collect → NO_COVERAGE
2. computeAdditionalIndividuals : removed call to java/util/stream/Collectors::toList → NO_COVERAGE
				.collect(Collectors.toList());
177
178 1 1. computeAdditionalIndividuals : replaced return value with Collections.emptyList for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeAdditionalIndividuals → NO_COVERAGE
		return additionalIndividuals;
179
	}
180
181
	protected void truncatePopulation(final List<List<Pair<Integer, Double>>> distances, final Population<T> population,
182
			final int numIndividuals, final Set<Integer> selectedIndex) {
183
184 1 1. truncatePopulation : removed call to java/util/HashMap::<init> → NO_COVERAGE
		final Map<Integer, List<Pair<Integer, Double>>> selectedDistances = new HashMap<>();
185 1 1. truncatePopulation : removed call to java/util/HashMap::<init> → NO_COVERAGE
		final Map<Integer, Map<Integer, Integer>> selectedDistancesIndex = new HashMap<>();
186
187
		/**
188
		 * The goal here is two fold: - Build selectedDistances, which is a map of individual index -> ordered list of
189
		 * nearest neighbors, with only the individuals from selectedIndex. This will prevent the unnecessary processing
190
		 * of ignored individuals
191
		 * 
192
		 * - Build an inverted index selectedDistancesIndex so that we know where to delete entries in selectedDistances
193
		 * whenever an individual has been removed The index is in the form: individual -> key in selectedDistance ->
194
		 * Which position in the nearest neighbors
195
		 */
196 1 1. truncatePopulation : removed call to java/lang/Integer::intValue → NO_COVERAGE
		for (final int index : selectedIndex) {
197
198 1 1. truncatePopulation : removed call to java/util/List::get → NO_COVERAGE
			final List<Pair<Integer, Double>> kthDistances = distances.get(index)
199 1 1. truncatePopulation : removed call to java/util/List::stream → NO_COVERAGE
					.stream()
200 6 1. lambda$truncatePopulation$2 : removed call to org/apache/commons/lang3/tuple/Pair::getLeft → NO_COVERAGE
2. lambda$truncatePopulation$2 : removed call to java/util/Set::contains → NO_COVERAGE
3. truncatePopulation : removed call to java/util/stream/Stream::filter → NO_COVERAGE
4. truncatePopulation : replaced call to java/util/stream/Stream::filter with receiver → NO_COVERAGE
5. lambda$truncatePopulation$2 : replaced boolean return with false for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$truncatePopulation$2 → NO_COVERAGE
6. lambda$truncatePopulation$2 : replaced boolean return with true for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$truncatePopulation$2 → NO_COVERAGE
					.filter(p -> selectedIndex.contains(p.getLeft()))
201 2 1. truncatePopulation : removed call to java/util/stream/Stream::collect → NO_COVERAGE
2. truncatePopulation : removed call to java/util/stream/Collectors::toList → NO_COVERAGE
					.collect(Collectors.toList());
202
203
			Validate.isTrue(kthDistances.size() == selectedIndex.size());
204 3 1. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
2. truncatePopulation : replaced call to java/util/Map::put with argument → NO_COVERAGE
3. truncatePopulation : removed call to java/util/Map::put → NO_COVERAGE
			selectedDistances.put(index, kthDistances);
205
206 6 1. truncatePopulation : removed conditional - replaced comparison check with true → NO_COVERAGE
2. truncatePopulation : removed conditional - replaced comparison check with false → NO_COVERAGE
3. truncatePopulation : removed call to java/util/List::size → NO_COVERAGE
4. truncatePopulation : negated conditional → NO_COVERAGE
5. truncatePopulation : Substituted 0 with 1 → NO_COVERAGE
6. truncatePopulation : changed conditional boundary → NO_COVERAGE
			for (int i = 0; i < kthDistances.size(); i++) {
207 1 1. truncatePopulation : removed call to java/util/List::get → NO_COVERAGE
				final Pair<Integer, Double> pair = kthDistances.get(i);
208
209 5 1. truncatePopulation : negated conditional → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::containsKey → NO_COVERAGE
3. truncatePopulation : removed call to org/apache/commons/lang3/tuple/Pair::getKey → NO_COVERAGE
4. truncatePopulation : removed conditional - replaced equality check with true → NO_COVERAGE
5. truncatePopulation : removed conditional - replaced equality check with false → NO_COVERAGE
				if (selectedDistancesIndex.containsKey(pair.getKey()) == false) {
210 4 1. truncatePopulation : removed call to org/apache/commons/lang3/tuple/Pair::getKey → NO_COVERAGE
2. truncatePopulation : removed call to java/util/HashMap::<init> → NO_COVERAGE
3. truncatePopulation : replaced call to java/util/Map::put with argument → NO_COVERAGE
4. truncatePopulation : removed call to java/util/Map::put → NO_COVERAGE
					selectedDistancesIndex.put(pair.getKey(), new HashMap<>());
211
				}
212
213 3 1. truncatePopulation : replaced call to java/util/Map::get with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::get → NO_COVERAGE
3. truncatePopulation : removed call to org/apache/commons/lang3/tuple/Pair::getKey → NO_COVERAGE
				selectedDistancesIndex.get(pair.getKey())
214 4 1. truncatePopulation : replaced call to java/util/Map::put with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::put → NO_COVERAGE
3. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
4. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
						.put(index, i);
215
			}
216
		}
217
218 5 1. truncatePopulation : changed conditional boundary → NO_COVERAGE
2. truncatePopulation : removed conditional - replaced comparison check with false → NO_COVERAGE
3. truncatePopulation : removed conditional - replaced comparison check with true → NO_COVERAGE
4. truncatePopulation : negated conditional → NO_COVERAGE
5. truncatePopulation : removed call to java/util/Set::size → NO_COVERAGE
		while (selectedIndex.size() > numIndividuals) {
219
220 1 1. truncatePopulation : Substituted -1 with 0 → NO_COVERAGE
			int minIndex = -1;
221
			List<Pair<Integer, Double>> minDistances = null;
222 1 1. truncatePopulation : removed call to java/lang/Integer::intValue → NO_COVERAGE
			for (final int candidateIndex : selectedIndex) {
223
224 4 1. truncatePopulation : removed conditional - replaced comparison check with true → NO_COVERAGE
2. truncatePopulation : removed conditional - replaced comparison check with false → NO_COVERAGE
3. truncatePopulation : negated conditional → NO_COVERAGE
4. truncatePopulation : changed conditional boundary → NO_COVERAGE
				if (minIndex < 0) {
225
					minIndex = candidateIndex;
226 3 1. truncatePopulation : replaced call to java/util/Map::get with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::get → NO_COVERAGE
3. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
					minDistances = selectedDistances.get(candidateIndex);
227
				} else {
228 3 1. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
2. truncatePopulation : replaced call to java/util/Map::get with argument → NO_COVERAGE
3. truncatePopulation : removed call to java/util/Map::get → NO_COVERAGE
					final List<Pair<Integer, Double>> distancesCandidate = selectedDistances.get(candidateIndex);
229
					Validate.isTrue(minDistances.size() == distancesCandidate.size());
230
231 1 1. truncatePopulation : Substituted 0 with 1 → NO_COVERAGE
					int result = 0;
232 3 1. truncatePopulation : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE
2. truncatePopulation : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE
3. truncatePopulation : Substituted 0 with 1 → NO_COVERAGE
					int j = skipNull(minDistances, 0);
233 3 1. truncatePopulation : Substituted 0 with 1 → NO_COVERAGE
2. truncatePopulation : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE
3. truncatePopulation : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE
					int l = skipNull(distancesCandidate, 0);
234
235 13 1. truncatePopulation : changed conditional boundary → NO_COVERAGE
2. truncatePopulation : removed conditional - replaced comparison check with false → NO_COVERAGE
3. truncatePopulation : removed call to java/util/List::size → NO_COVERAGE
4. truncatePopulation : removed conditional - replaced comparison check with true → NO_COVERAGE
5. truncatePopulation : negated conditional → NO_COVERAGE
6. truncatePopulation : removed call to java/util/List::size → NO_COVERAGE
7. truncatePopulation : removed conditional - replaced comparison check with true → NO_COVERAGE
8. truncatePopulation : negated conditional → NO_COVERAGE
9. truncatePopulation : negated conditional → NO_COVERAGE
10. truncatePopulation : removed conditional - replaced equality check with false → NO_COVERAGE
11. truncatePopulation : removed conditional - replaced equality check with true → NO_COVERAGE
12. truncatePopulation : changed conditional boundary → NO_COVERAGE
13. truncatePopulation : removed conditional - replaced comparison check with false → NO_COVERAGE
					while (result == 0 && j < minDistances.size() && l < distancesCandidate.size()) {
236
237 2 1. truncatePopulation : removed call to java/lang/Double::compare → NO_COVERAGE
2. truncatePopulation : removed call to java/util/List::get → NO_COVERAGE
						result = Double.compare(minDistances.get(j)
238 2 1. truncatePopulation : removed call to java/lang/Double::doubleValue → NO_COVERAGE
2. truncatePopulation : removed call to org/apache/commons/lang3/tuple/Pair::getRight → NO_COVERAGE
								.getRight(),
239 1 1. truncatePopulation : removed call to java/util/List::get → NO_COVERAGE
								distancesCandidate.get(l)
240 2 1. truncatePopulation : removed call to java/lang/Double::doubleValue → NO_COVERAGE
2. truncatePopulation : removed call to org/apache/commons/lang3/tuple/Pair::getRight → NO_COVERAGE
										.getRight());
241
242 2 1. truncatePopulation : Removed increment 1 → NO_COVERAGE
2. truncatePopulation : Changed increment from 1 to -1 → NO_COVERAGE
						j++;
243 2 1. truncatePopulation : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE
2. truncatePopulation : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE
						j = skipNull(minDistances, j);
244
245 2 1. truncatePopulation : Removed increment 1 → NO_COVERAGE
2. truncatePopulation : Changed increment from 1 to -1 → NO_COVERAGE
						l++;
246 2 1. truncatePopulation : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE
2. truncatePopulation : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE
						l = skipNull(distancesCandidate, l);
247
					}
248
249 4 1. truncatePopulation : removed conditional - replaced comparison check with false → NO_COVERAGE
2. truncatePopulation : changed conditional boundary → NO_COVERAGE
3. truncatePopulation : removed conditional - replaced comparison check with true → NO_COVERAGE
4. truncatePopulation : negated conditional → NO_COVERAGE
					if (result > 0) {
250
						minIndex = candidateIndex;
251
						minDistances = distancesCandidate;
252
					}
253
				}
254
			}
255
256
			/**
257
			 * We cannot just remove it. We have to set the entry to 'null' as to not mess up the positions recorded in
258
			 * selectedDistancesIndex.
259
			 */
260 3 1. truncatePopulation : replaced call to java/util/Map::get with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::get → NO_COVERAGE
3. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
			final Map<Integer, Integer> reverseIndex = selectedDistancesIndex.get(minIndex);
261 1 1. truncatePopulation : removed call to java/util/Map::entrySet → NO_COVERAGE
			for (Entry<Integer, Integer> entry : reverseIndex.entrySet()) {
262 3 1. truncatePopulation : replaced call to java/util/Map::get with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::get → NO_COVERAGE
3. truncatePopulation : removed call to java/util/Map$Entry::getKey → NO_COVERAGE
				final List<Pair<Integer, Double>> distancesToClean = selectedDistances.get(entry.getKey());
263 4 1. truncatePopulation : replaced call to java/util/List::set with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/List::set → NO_COVERAGE
3. truncatePopulation : removed call to java/lang/Integer::intValue → NO_COVERAGE
4. truncatePopulation : removed call to java/util/Map$Entry::getValue → NO_COVERAGE
				distancesToClean.set((int) entry.getValue(), null);
264
			}
265 1 1. truncatePopulation : removed call to java/util/Map::values → NO_COVERAGE
			for (Map<Integer, Integer> map : selectedDistancesIndex.values()) {
266 3 1. truncatePopulation : removed call to java/util/Map::remove → NO_COVERAGE
2. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
3. truncatePopulation : replaced call to java/util/Map::remove with argument → NO_COVERAGE
				map.remove(minIndex);
267
			}
268
269 3 1. truncatePopulation : replaced call to java/util/Map::remove with argument → NO_COVERAGE
2. truncatePopulation : removed call to java/util/Map::remove → NO_COVERAGE
3. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
			selectedDistancesIndex.remove(minIndex);
270 3 1. truncatePopulation : removed call to java/util/Map::remove → NO_COVERAGE
2. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
3. truncatePopulation : replaced call to java/util/Map::remove with argument → NO_COVERAGE
			selectedDistances.remove(minIndex);
271 2 1. truncatePopulation : removed call to java/util/Set::remove → NO_COVERAGE
2. truncatePopulation : removed call to java/lang/Integer::valueOf → NO_COVERAGE
			selectedIndex.remove(minIndex);
272
		}
273
274
	}
275
276
	protected Set<Integer> environmentalSelection(final List<List<Pair<Integer, Double>>> distances,
277
			final double[] rawFitness, final double[] finalFitness, final Population<T> population,
278
			final int numIndividuals) {
279
280 3 1. environmentalSelection : removed call to java/util/stream/IntStream::range → NO_COVERAGE
2. environmentalSelection : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
3. environmentalSelection : Substituted 0 with 1 → NO_COVERAGE
		final Set<Integer> selectedIndex = IntStream.range(0, population.size())
281 1 1. environmentalSelection : removed call to java/util/stream/IntStream::boxed → NO_COVERAGE
				.boxed()
282 11 1. lambda$environmentalSelection$3 : Substituted 1.0 with 2.0 → NO_COVERAGE
2. lambda$environmentalSelection$3 : replaced boolean return with true for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$environmentalSelection$3 → NO_COVERAGE
3. lambda$environmentalSelection$3 : removed call to java/lang/Integer::intValue → NO_COVERAGE
4. lambda$environmentalSelection$3 : negated conditional → NO_COVERAGE
5. lambda$environmentalSelection$3 : Substituted 1 with 0 → NO_COVERAGE
6. lambda$environmentalSelection$3 : removed conditional - replaced comparison check with false → NO_COVERAGE
7. lambda$environmentalSelection$3 : changed conditional boundary → NO_COVERAGE
8. environmentalSelection : removed call to java/util/stream/Stream::filter → NO_COVERAGE
9. environmentalSelection : replaced call to java/util/stream/Stream::filter with receiver → NO_COVERAGE
10. lambda$environmentalSelection$3 : removed conditional - replaced comparison check with true → NO_COVERAGE
11. lambda$environmentalSelection$3 : Substituted 0 with 1 → NO_COVERAGE
				.filter((i) -> finalFitness[i] < 1)
283 2 1. environmentalSelection : removed call to java/util/stream/Stream::collect → NO_COVERAGE
2. environmentalSelection : removed call to java/util/stream/Collectors::toSet → NO_COVERAGE
				.collect(Collectors.toSet());
284
285
		logger.trace("Selected index size: {}", selectedIndex.size());
286
287 5 1. environmentalSelection : changed conditional boundary → NO_COVERAGE
2. environmentalSelection : removed conditional - replaced comparison check with false → NO_COVERAGE
3. environmentalSelection : negated conditional → NO_COVERAGE
4. environmentalSelection : removed call to java/util/Set::size → NO_COVERAGE
5. environmentalSelection : removed conditional - replaced comparison check with true → NO_COVERAGE
		if (selectedIndex.size() < numIndividuals) {
288
289 1 1. environmentalSelection : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeAdditionalIndividuals → NO_COVERAGE
			final List<Integer> additionalIndividuals = computeAdditionalIndividuals(selectedIndex,
290
					rawFitness,
291
					population,
292
					numIndividuals);
293
294
			logger.trace("Adding {} additional individuals", additionalIndividuals.size());
295 1 1. environmentalSelection : removed call to java/util/Set::addAll → NO_COVERAGE
			selectedIndex.addAll(additionalIndividuals);
296
		}
297
298 5 1. environmentalSelection : negated conditional → NO_COVERAGE
2. environmentalSelection : changed conditional boundary → NO_COVERAGE
3. environmentalSelection : removed call to java/util/Set::size → NO_COVERAGE
4. environmentalSelection : removed conditional - replaced comparison check with true → NO_COVERAGE
5. environmentalSelection : removed conditional - replaced comparison check with false → NO_COVERAGE
		if (selectedIndex.size() > numIndividuals) {
299
			logger.trace("Need to remove {} individuals", selectedIndex.size() - numIndividuals);
300
301 1 1. environmentalSelection : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::truncatePopulation → NO_COVERAGE
			truncatePopulation(distances, population, numIndividuals, selectedIndex);
302
		}
303
304 1 1. environmentalSelection : replaced return value with Collections.emptySet for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::environmentalSelection → NO_COVERAGE
		return selectedIndex;
305
	}
306
307
	@Override
308
	public Population<T> select(final AbstractEAConfiguration<T> eaConfiguration, final long generation,
309
			final int numIndividuals, final List<Genotype> population, final List<T> populationScores,
310
			final List<Genotype> offsprings, final List<T> offspringScores) {
311
		Objects.requireNonNull(eaConfiguration);
312
		Validate.isTrue(generation >= 0);
313
		Validate.isTrue(numIndividuals > 0);
314
		Objects.requireNonNull(population);
315
		Objects.requireNonNull(populationScores);
316
		Validate.isTrue(population.size() == populationScores.size());
317
		Objects.requireNonNull(offsprings);
318
		Objects.requireNonNull(offspringScores);
319
		Validate.isTrue(offsprings.size() == offspringScores.size());
320
321 1 1. select : removed call to java/lang/System::nanoTime → NO_COVERAGE
		final long startTimeNanos = System.nanoTime();
322
		logger.debug("Starting with requested {} individuals - {} population - {} offsprings",
323 1 1. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
				numIndividuals,
324 2 1. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
2. select : removed call to java/util/List::size → NO_COVERAGE
				population.size(),
325 2 1. select : removed call to java/util/List::size → NO_COVERAGE
2. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
				offsprings.size());
326
327 1 1. select : removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE
		final Population<T> archive = new Population<>(population, populationScores);
328 1 1. select : removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE
		final Population<T> offspringPopulation = new Population<>(offsprings, offspringScores);
329
330 1 1. select : removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE
		final Population<T> combinedPopulation = new Population<>();
331 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::deduplicate → NO_COVERAGE
		if (spea2Replacement.deduplicate()
332 4 1. select : negated conditional → NO_COVERAGE
2. select : removed call to java/util/Optional::isPresent → NO_COVERAGE
3. select : removed conditional - replaced equality check with true → NO_COVERAGE
4. select : removed conditional - replaced equality check with false → NO_COVERAGE
				.isPresent()) {
333 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::deduplicate → NO_COVERAGE
			final Comparator<Genotype> individualDeduplicator = spea2Replacement.deduplicate()
334 1 1. select : removed call to java/util/Optional::get → NO_COVERAGE
					.get();
335 1 1. select : removed call to java/util/TreeSet::<init> → NO_COVERAGE
			final Set<Genotype> seenGenotype = new TreeSet<>(individualDeduplicator);
336
337 6 1. select : negated conditional → NO_COVERAGE
2. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
3. select : changed conditional boundary → NO_COVERAGE
4. select : removed conditional - replaced comparison check with false → NO_COVERAGE
5. select : removed conditional - replaced comparison check with true → NO_COVERAGE
6. select : Substituted 0 with 1 → NO_COVERAGE
			for (int i = 0; i < archive.size(); i++) {
338 1 1. select : removed call to net/bmahe/genetics4j/core/Population::getGenotype → NO_COVERAGE
				final Genotype genotype = archive.getGenotype(i);
339
340 4 1. select : removed conditional - replaced equality check with true → NO_COVERAGE
2. select : removed conditional - replaced equality check with false → NO_COVERAGE
3. select : negated conditional → NO_COVERAGE
4. select : removed call to java/util/Set::add → NO_COVERAGE
				if (seenGenotype.add(genotype)) {
341 1 1. select : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
					final T fitness = archive.getFitness(i);
342 1 1. select : removed call to net/bmahe/genetics4j/core/Population::add → NO_COVERAGE
					combinedPopulation.add(genotype, fitness);
343
				}
344
			}
345 1 1. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
			final int ingestedFromArchive = combinedPopulation.size();
346
			logger.debug("Ingested {} individuals from the archive out of the {} available",
347 1 1. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
					ingestedFromArchive,
348 2 1. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
2. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
					archive.size());
349
350 6 1. select : removed conditional - replaced comparison check with true → NO_COVERAGE
2. select : changed conditional boundary → NO_COVERAGE
3. select : Substituted 0 with 1 → NO_COVERAGE
4. select : negated conditional → NO_COVERAGE
5. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
6. select : removed conditional - replaced comparison check with false → NO_COVERAGE
			for (int i = 0; i < offspringPopulation.size(); i++) {
351 1 1. select : removed call to net/bmahe/genetics4j/core/Population::getGenotype → NO_COVERAGE
				final Genotype genotype = offspringPopulation.getGenotype(i);
352
353 4 1. select : negated conditional → NO_COVERAGE
2. select : removed call to java/util/Set::add → NO_COVERAGE
3. select : removed conditional - replaced equality check with false → NO_COVERAGE
4. select : removed conditional - replaced equality check with true → NO_COVERAGE
				if (seenGenotype.add(genotype)) {
354 1 1. select : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
					final T fitness = offspringPopulation.getFitness(i);
355 1 1. select : removed call to net/bmahe/genetics4j/core/Population::add → NO_COVERAGE
					combinedPopulation.add(genotype, fitness);
356
				}
357
			}
358
			if (logger.isDebugEnabled()) {
359
				logger.debug("Ingested {} individuals from the offsprings out of the {} available",
360 3 1. select : Replaced integer subtraction with addition → NO_COVERAGE
2. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
3. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
						combinedPopulation.size() - ingestedFromArchive,
361 2 1. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
2. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
						offspringPopulation.size());
362
			}
363
364
		} else {
365 1 1. select : removed call to net/bmahe/genetics4j/core/Population::addAll → NO_COVERAGE
			combinedPopulation.addAll(archive);
366 1 1. select : removed call to net/bmahe/genetics4j/core/Population::addAll → NO_COVERAGE
			combinedPopulation.addAll(offspringPopulation);
367
		}
368
369 6 1. select : Changed switch default to be first case → NO_COVERAGE
2. select : removed call to java/lang/MatchException::<init> → NO_COVERAGE
3. select : removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::optimization → NO_COVERAGE
4. select : RemoveSwitch 1 (case value 2) → NO_COVERAGE
5. select : RemoveSwitch 0 (case value 1) → NO_COVERAGE
6. select : removed call to net/bmahe/genetics4j/core/spec/Optimization::ordinal → NO_COVERAGE
		final Comparator<T> dominance = switch (eaConfiguration.optimization()) {
370 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::dominance → NO_COVERAGE
			case MAXIMIZE -> spea2Replacement.dominance();
371 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::dominance → NO_COVERAGE
			case MINIMIZE -> spea2Replacement.dominance()
372 2 1. select : removed call to java/util/Comparator::reversed → NO_COVERAGE
2. select : replaced call to java/util/Comparator::reversed with receiver → NO_COVERAGE
					.reversed();
373
		};
374
375 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::k → NO_COVERAGE
		final int k = spea2Replacement.k()
376 7 1. select : removed call to java/lang/Integer::intValue → NO_COVERAGE
2. lambda$select$4 : replaced call to java/lang/Math::sqrt with argument → NO_COVERAGE
3. lambda$select$4 : replaced Integer return value with 0 for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$select$4 → NO_COVERAGE
4. lambda$select$4 : removed call to java/lang/Math::sqrt → NO_COVERAGE
5. lambda$select$4 : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
6. lambda$select$4 : removed call to java/lang/Integer::valueOf → NO_COVERAGE
7. select : removed call to java/util/Optional::orElseGet → NO_COVERAGE
				.orElseGet(() -> (int) Math.sqrt(combinedPopulation.size()));
377
		logger.trace("Using k={}", k);
378
		Validate.isTrue(k > 0);
379
380
		///////////////// Fitness computation //////////////////////
381 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeStrength → NO_COVERAGE
		final double[] strengths = computeStrength(dominance, combinedPopulation);
382
383 2 1. select : removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::distance → NO_COVERAGE
2. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeObjectiveDistances → NO_COVERAGE
		final double[][] distanceObjectives = computeObjectiveDistances(spea2Replacement.distance(), combinedPopulation);
384
385 2 1. select : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeRawFitness with argument → NO_COVERAGE
2. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeRawFitness → NO_COVERAGE
		final double[] rawFitness = computeRawFitness(dominance, strengths, combinedPopulation);
386
387 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeSortedDistances → NO_COVERAGE
		final List<List<Pair<Integer, Double>>> distances = computeSortedDistances(distanceObjectives,
388
				combinedPopulation);
389
390 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeDensity → NO_COVERAGE
		final double[] density = computeDensity(distances, k, combinedPopulation);
391
392 2 1. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeFinalFitness → NO_COVERAGE
2. select : replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeFinalFitness with argument → NO_COVERAGE
		final double[] finalFitness = computeFinalFitness(rawFitness, density, combinedPopulation);
393
394
		///////////////// Environmental Selection //////////////////
395
396 1 1. select : removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::environmentalSelection → NO_COVERAGE
		final Set<Integer> selectedIndex = environmentalSelection(distances,
397
				rawFitness,
398
				finalFitness,
399
				combinedPopulation,
400
				numIndividuals);
401
402 1 1. select : removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE
		final Population<T> newPopulation = new Population<>();
403 1 1. select : removed call to java/lang/Integer::intValue → NO_COVERAGE
		for (final int i : selectedIndex) {
404 3 1. select : removed call to net/bmahe/genetics4j/core/Population::getGenotype → NO_COVERAGE
2. select : removed call to net/bmahe/genetics4j/core/Population::add → NO_COVERAGE
3. select : removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE
			newPopulation.add(combinedPopulation.getGenotype(i), combinedPopulation.getFitness(i));
405
		}
406
407 1 1. select : removed call to java/lang/System::nanoTime → NO_COVERAGE
		final long endTimeNanos = System.nanoTime();
408
		if (logger.isDebugEnabled()) {
409
			logger.debug("Finished with {} new population - Computation time: {}",
410 5 1. select : Substituted 1000000 with 1000001 → NO_COVERAGE
2. select : Replaced long subtraction with addition → NO_COVERAGE
3. select : Replaced long division with multiplication → NO_COVERAGE
4. select : removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE
5. select : removed call to java/lang/Integer::valueOf → NO_COVERAGE
					newPopulation.size(),
411 1 1. select : removed call to org/apache/commons/lang3/time/DurationFormatUtils::formatDurationHMS → NO_COVERAGE
					DurationFormatUtils.formatDurationHMS((endTimeNanos - startTimeNanos) / 1_000_000));
412
		}
413
414 1 1. select : replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::select → NO_COVERAGE
		return newPopulation;
415
	}
416
}

Mutations

35

1.1
Location : <init>
Killed by : none
Removed assignment to member variable spea2Replacement → NO_COVERAGE

43

1.1
Location : computeStrength
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

44

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

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

3.3
Location : computeStrength
Killed by : none
changed conditional boundary → NO_COVERAGE

4.4
Location : computeStrength
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

5.5
Location : computeStrength
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

6.6
Location : computeStrength
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

45

1.1
Location : computeStrength
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

47

1.1
Location : computeStrength
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::strength with argument → NO_COVERAGE

2.2
Location : computeStrength
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::strength → NO_COVERAGE

50

1.1
Location : computeStrength
Killed by : none
replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeStrength → NO_COVERAGE

59

1.1
Location : computeObjectiveDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

2.2
Location : computeObjectiveDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

61

1.1
Location : computeObjectiveDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

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

3.3
Location : computeObjectiveDistances
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

4.4
Location : computeObjectiveDistances
Killed by : none
changed conditional boundary → NO_COVERAGE

5.5
Location : computeObjectiveDistances
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

6.6
Location : computeObjectiveDistances
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

62

1.1
Location : computeObjectiveDistances
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : computeObjectiveDistances
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

3.3
Location : computeObjectiveDistances
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

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

5.5
Location : computeObjectiveDistances
Killed by : none
negated conditional → NO_COVERAGE

63

1.1
Location : computeObjectiveDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

2.2
Location : computeObjectiveDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

3.3
Location : computeObjectiveDistances
Killed by : none
replaced call to java/util/function/BiFunction::apply with argument → NO_COVERAGE

4.4
Location : computeObjectiveDistances
Killed by : none
removed call to java/util/function/BiFunction::apply → NO_COVERAGE

64

1.1
Location : computeObjectiveDistances
Killed by : none
removed call to java/lang/Double::doubleValue → NO_COVERAGE

65

1.1
Location : computeObjectiveDistances
Killed by : none
removed call to java/lang/Double::doubleValue → NO_COVERAGE

68

1.1
Location : computeObjectiveDistances
Killed by : none
Substituted 0.0 with 1.0 → NO_COVERAGE

70

1.1
Location : computeObjectiveDistances
Killed by : none
replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeObjectiveDistances → NO_COVERAGE

81

1.1
Location : computeRawFitness
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

82

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

2.2
Location : computeRawFitness
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

3.3
Location : computeRawFitness
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

4.4
Location : computeRawFitness
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : computeRawFitness
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

6.6
Location : computeRawFitness
Killed by : none
changed conditional boundary → NO_COVERAGE

83

1.1
Location : computeRawFitness
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

85

1.1
Location : computeRawFitness
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::rawFitness with argument → NO_COVERAGE

2.2
Location : computeRawFitness
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::rawFitness → NO_COVERAGE

88

1.1
Location : computeRawFitness
Killed by : none
replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeRawFitness → NO_COVERAGE

98

1.1
Location : computeSortedDistances
Killed by : none
removed call to java/util/ArrayList::<init> → NO_COVERAGE

99

1.1
Location : computeSortedDistances
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

2.2
Location : computeSortedDistances
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : computeSortedDistances
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

4.4
Location : computeSortedDistances
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : computeSortedDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

6.6
Location : computeSortedDistances
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

100

1.1
Location : computeSortedDistances
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

103

1.1
Location : computeSortedDistances
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2Utils::kthDistances → NO_COVERAGE

104

1.1
Location : computeSortedDistances
Killed by : none
removed call to java/util/List::add → NO_COVERAGE

107

1.1
Location : computeSortedDistances
Killed by : none
replaced return value with Collections.emptyList for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeSortedDistances → NO_COVERAGE

118

1.1
Location : computeDensity
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

119

1.1
Location : computeDensity
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

2.2
Location : computeDensity
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

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

4.4
Location : computeDensity
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

5.5
Location : computeDensity
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

6.6
Location : computeDensity
Killed by : none
changed conditional boundary → NO_COVERAGE

120

1.1
Location : computeDensity
Killed by : none
Substituted 1.0 with 2.0 → NO_COVERAGE

2.2
Location : computeDensity
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

121

1.1
Location : computeDensity
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

122

1.1
Location : computeDensity
Killed by : none
Replaced double division with multiplication → NO_COVERAGE

2.2
Location : computeDensity
Killed by : none
Replaced double addition with subtraction → NO_COVERAGE

3.3
Location : computeDensity
Killed by : none
removed call to java/lang/Double::doubleValue → NO_COVERAGE

4.4
Location : computeDensity
Killed by : none
Substituted 2.0 with 1.0 → NO_COVERAGE

5.5
Location : computeDensity
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getRight → NO_COVERAGE

125

1.1
Location : computeDensity
Killed by : none
replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeDensity → NO_COVERAGE

137

1.1
Location : computeFinalFitness
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

138

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

2.2
Location : computeFinalFitness
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : computeFinalFitness
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

4.4
Location : computeFinalFitness
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

5.5
Location : computeFinalFitness
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

6.6
Location : computeFinalFitness
Killed by : none
negated conditional → NO_COVERAGE

139

1.1
Location : computeFinalFitness
Killed by : none
Replaced double addition with subtraction → NO_COVERAGE

142

1.1
Location : computeFinalFitness
Killed by : none
replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeFinalFitness → NO_COVERAGE

152

1.1
Location : skipNull
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

2.2
Location : skipNull
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

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

4.4
Location : skipNull
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

5.5
Location : skipNull
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

6.6
Location : skipNull
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

7.7
Location : skipNull
Killed by : none
negated conditional → NO_COVERAGE

8.8
Location : skipNull
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

9.9
Location : skipNull
Killed by : none
changed conditional boundary → NO_COVERAGE

156

1.1
Location : skipNull
Killed by : none
replaced int return with 0 for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE

167

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

2.2
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/Set::size → NO_COVERAGE

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

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

168

1.1
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/Collections::emptyList → NO_COVERAGE

171

1.1
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/IntStream::range → NO_COVERAGE

2.2
Location : computeAdditionalIndividuals
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

3.3
Location : computeAdditionalIndividuals
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

172

1.1
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/IntStream::boxed → NO_COVERAGE

173

1.1
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$computeAdditionalIndividuals$0 → NO_COVERAGE

3.3
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

4.4
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
removed call to java/util/Set::contains → NO_COVERAGE

5.5
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

6.6
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/Stream::filter → NO_COVERAGE

7.7
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

8.8
Location : lambda$computeAdditionalIndividuals$0
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

9.9
Location : computeAdditionalIndividuals
Killed by : none
replaced call to java/util/stream/Stream::filter with receiver → NO_COVERAGE

174

1.1
Location : lambda$computeAdditionalIndividuals$1
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

2.2
Location : lambda$computeAdditionalIndividuals$1
Killed by : none
replaced int return with 0 for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$computeAdditionalIndividuals$1 → NO_COVERAGE

3.3
Location : lambda$computeAdditionalIndividuals$1
Killed by : none
removed call to java/lang/Double::compare → NO_COVERAGE

4.4
Location : computeAdditionalIndividuals
Killed by : none
replaced call to java/util/stream/Stream::sorted with receiver → NO_COVERAGE

5.5
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/Stream::sorted → NO_COVERAGE

6.6
Location : lambda$computeAdditionalIndividuals$1
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

175

1.1
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/Set::size → NO_COVERAGE

2.2
Location : computeAdditionalIndividuals
Killed by : none
replaced call to java/util/stream/Stream::limit with receiver → NO_COVERAGE

3.3
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/Stream::limit → NO_COVERAGE

4.4
Location : computeAdditionalIndividuals
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

176

1.1
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/Stream::collect → NO_COVERAGE

2.2
Location : computeAdditionalIndividuals
Killed by : none
removed call to java/util/stream/Collectors::toList → NO_COVERAGE

178

1.1
Location : computeAdditionalIndividuals
Killed by : none
replaced return value with Collections.emptyList for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeAdditionalIndividuals → NO_COVERAGE

184

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/HashMap::<init> → NO_COVERAGE

185

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/HashMap::<init> → NO_COVERAGE

196

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

198

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

199

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/List::stream → NO_COVERAGE

200

1.1
Location : lambda$truncatePopulation$2
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getLeft → NO_COVERAGE

2.2
Location : lambda$truncatePopulation$2
Killed by : none
removed call to java/util/Set::contains → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/util/stream/Stream::filter → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
replaced call to java/util/stream/Stream::filter with receiver → NO_COVERAGE

5.5
Location : lambda$truncatePopulation$2
Killed by : none
replaced boolean return with false for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$truncatePopulation$2 → NO_COVERAGE

6.6
Location : lambda$truncatePopulation$2
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$truncatePopulation$2 → NO_COVERAGE

201

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/stream/Stream::collect → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/stream/Collectors::toList → NO_COVERAGE

204

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::put with argument → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::put → NO_COVERAGE

206

1.1
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : truncatePopulation
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

6.6
Location : truncatePopulation
Killed by : none
changed conditional boundary → NO_COVERAGE

207

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

209

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

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::containsKey → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getKey → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

5.5
Location : truncatePopulation
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

210

1.1
Location : truncatePopulation
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getKey → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/HashMap::<init> → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::put with argument → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::put → NO_COVERAGE

213

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::get with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::get → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getKey → NO_COVERAGE

214

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::put with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::put → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

218

1.1
Location : truncatePopulation
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : truncatePopulation
Killed by : none
removed call to java/util/Set::size → NO_COVERAGE

220

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

222

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

224

1.1
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

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

4.4
Location : truncatePopulation
Killed by : none
changed conditional boundary → NO_COVERAGE

226

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::get with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::get → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

228

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::get with argument → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::get → NO_COVERAGE

231

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

232

1.1
Location : truncatePopulation
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

233

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

2.2
Location : truncatePopulation
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE

235

1.1
Location : truncatePopulation
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

5.5
Location : truncatePopulation
Killed by : none
negated conditional → NO_COVERAGE

6.6
Location : truncatePopulation
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

7.7
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

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

9.9
Location : truncatePopulation
Killed by : none
negated conditional → NO_COVERAGE

10.10
Location : truncatePopulation
Killed by : none
removed conditional - replaced equality check with false → NO_COVERAGE

11.11
Location : truncatePopulation
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

12.12
Location : truncatePopulation
Killed by : none
changed conditional boundary → NO_COVERAGE

13.13
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

237

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Double::compare → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

238

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Double::doubleValue → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getRight → NO_COVERAGE

239

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

240

1.1
Location : truncatePopulation
Killed by : none
removed call to java/lang/Double::doubleValue → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to org/apache/commons/lang3/tuple/Pair::getRight → NO_COVERAGE

242

1.1
Location : truncatePopulation
Killed by : none
Removed increment 1 → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

243

1.1
Location : truncatePopulation
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE

245

1.1
Location : truncatePopulation
Killed by : none
Removed increment 1 → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

246

1.1
Location : truncatePopulation
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::skipNull → NO_COVERAGE

249

1.1
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
negated conditional → NO_COVERAGE

260

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::get with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::get → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

261

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::entrySet → NO_COVERAGE

262

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::get with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::get → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/util/Map$Entry::getKey → NO_COVERAGE

263

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/List::set with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/List::set → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

4.4
Location : truncatePopulation
Killed by : none
removed call to java/util/Map$Entry::getValue → NO_COVERAGE

265

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::values → NO_COVERAGE

266

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::remove → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::remove with argument → NO_COVERAGE

269

1.1
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::remove with argument → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::remove → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

270

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/Map::remove → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

3.3
Location : truncatePopulation
Killed by : none
replaced call to java/util/Map::remove with argument → NO_COVERAGE

271

1.1
Location : truncatePopulation
Killed by : none
removed call to java/util/Set::remove → NO_COVERAGE

2.2
Location : truncatePopulation
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

280

1.1
Location : environmentalSelection
Killed by : none
removed call to java/util/stream/IntStream::range → NO_COVERAGE

2.2
Location : environmentalSelection
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

3.3
Location : environmentalSelection
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

281

1.1
Location : environmentalSelection
Killed by : none
removed call to java/util/stream/IntStream::boxed → NO_COVERAGE

282

1.1
Location : lambda$environmentalSelection$3
Killed by : none
Substituted 1.0 with 2.0 → NO_COVERAGE

2.2
Location : lambda$environmentalSelection$3
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$environmentalSelection$3 → NO_COVERAGE

3.3
Location : lambda$environmentalSelection$3
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

4.4
Location : lambda$environmentalSelection$3
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : lambda$environmentalSelection$3
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

6.6
Location : lambda$environmentalSelection$3
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

7.7
Location : lambda$environmentalSelection$3
Killed by : none
changed conditional boundary → NO_COVERAGE

8.8
Location : environmentalSelection
Killed by : none
removed call to java/util/stream/Stream::filter → NO_COVERAGE

9.9
Location : environmentalSelection
Killed by : none
replaced call to java/util/stream/Stream::filter with receiver → NO_COVERAGE

10.10
Location : lambda$environmentalSelection$3
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

11.11
Location : lambda$environmentalSelection$3
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

283

1.1
Location : environmentalSelection
Killed by : none
removed call to java/util/stream/Stream::collect → NO_COVERAGE

2.2
Location : environmentalSelection
Killed by : none
removed call to java/util/stream/Collectors::toSet → NO_COVERAGE

287

1.1
Location : environmentalSelection
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : environmentalSelection
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

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

4.4
Location : environmentalSelection
Killed by : none
removed call to java/util/Set::size → NO_COVERAGE

5.5
Location : environmentalSelection
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

289

1.1
Location : environmentalSelection
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeAdditionalIndividuals → NO_COVERAGE

295

1.1
Location : environmentalSelection
Killed by : none
removed call to java/util/Set::addAll → NO_COVERAGE

298

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

2.2
Location : environmentalSelection
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : environmentalSelection
Killed by : none
removed call to java/util/Set::size → NO_COVERAGE

4.4
Location : environmentalSelection
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

5.5
Location : environmentalSelection
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

301

1.1
Location : environmentalSelection
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::truncatePopulation → NO_COVERAGE

304

1.1
Location : environmentalSelection
Killed by : none
replaced return value with Collections.emptySet for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::environmentalSelection → NO_COVERAGE

321

1.1
Location : select
Killed by : none
removed call to java/lang/System::nanoTime → NO_COVERAGE

323

1.1
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

324

1.1
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

325

1.1
Location : select
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

327

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE

328

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE

330

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE

331

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::deduplicate → NO_COVERAGE

332

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

2.2
Location : select
Killed by : none
removed call to java/util/Optional::isPresent → NO_COVERAGE

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

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

333

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::deduplicate → NO_COVERAGE

334

1.1
Location : select
Killed by : none
removed call to java/util/Optional::get → NO_COVERAGE

335

1.1
Location : select
Killed by : none
removed call to java/util/TreeSet::<init> → NO_COVERAGE

337

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

2.2
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

3.3
Location : select
Killed by : none
changed conditional boundary → NO_COVERAGE

4.4
Location : select
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

5.5
Location : select
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

6.6
Location : select
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

338

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getGenotype → NO_COVERAGE

340

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

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

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

4.4
Location : select
Killed by : none
removed call to java/util/Set::add → NO_COVERAGE

341

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

342

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::add → NO_COVERAGE

345

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

347

1.1
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

348

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

350

1.1
Location : select
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

2.2
Location : select
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : select
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

4.4
Location : select
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

6.6
Location : select
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

351

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getGenotype → NO_COVERAGE

353

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

2.2
Location : select
Killed by : none
removed call to java/util/Set::add → NO_COVERAGE

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

4.4
Location : select
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

354

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

355

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::add → NO_COVERAGE

360

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

2.2
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

3.3
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

361

1.1
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

365

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::addAll → NO_COVERAGE

366

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::addAll → NO_COVERAGE

369

1.1
Location : select
Killed by : none
Changed switch default to be first case → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to java/lang/MatchException::<init> → NO_COVERAGE

3.3
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::optimization → NO_COVERAGE

4.4
Location : select
Killed by : none
RemoveSwitch 1 (case value 2) → NO_COVERAGE

5.5
Location : select
Killed by : none
RemoveSwitch 0 (case value 1) → NO_COVERAGE

6.6
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/spec/Optimization::ordinal → NO_COVERAGE

370

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::dominance → NO_COVERAGE

371

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::dominance → NO_COVERAGE

372

1.1
Location : select
Killed by : none
removed call to java/util/Comparator::reversed → NO_COVERAGE

2.2
Location : select
Killed by : none
replaced call to java/util/Comparator::reversed with receiver → NO_COVERAGE

375

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::k → NO_COVERAGE

376

1.1
Location : select
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

2.2
Location : lambda$select$4
Killed by : none
replaced call to java/lang/Math::sqrt with argument → NO_COVERAGE

3.3
Location : lambda$select$4
Killed by : none
replaced Integer return value with 0 for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::lambda$select$4 → NO_COVERAGE

4.4
Location : lambda$select$4
Killed by : none
removed call to java/lang/Math::sqrt → NO_COVERAGE

5.5
Location : lambda$select$4
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

6.6
Location : lambda$select$4
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

7.7
Location : select
Killed by : none
removed call to java/util/Optional::orElseGet → NO_COVERAGE

381

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeStrength → NO_COVERAGE

383

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/spec/replacement/SPEA2Replacement::distance → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeObjectiveDistances → NO_COVERAGE

385

1.1
Location : select
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeRawFitness with argument → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeRawFitness → NO_COVERAGE

387

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeSortedDistances → NO_COVERAGE

390

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeDensity → NO_COVERAGE

392

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeFinalFitness → NO_COVERAGE

2.2
Location : select
Killed by : none
replaced call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::computeFinalFitness with argument → NO_COVERAGE

396

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::environmentalSelection → NO_COVERAGE

402

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::<init> → NO_COVERAGE

403

1.1
Location : select
Killed by : none
removed call to java/lang/Integer::intValue → NO_COVERAGE

404

1.1
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getGenotype → NO_COVERAGE

2.2
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::add → NO_COVERAGE

3.3
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::getFitness → NO_COVERAGE

407

1.1
Location : select
Killed by : none
removed call to java/lang/System::nanoTime → NO_COVERAGE

410

1.1
Location : select
Killed by : none
Substituted 1000000 with 1000001 → NO_COVERAGE

2.2
Location : select
Killed by : none
Replaced long subtraction with addition → NO_COVERAGE

3.3
Location : select
Killed by : none
Replaced long division with multiplication → NO_COVERAGE

4.4
Location : select
Killed by : none
removed call to net/bmahe/genetics4j/core/Population::size → NO_COVERAGE

5.5
Location : select
Killed by : none
removed call to java/lang/Integer::valueOf → NO_COVERAGE

411

1.1
Location : select
Killed by : none
removed call to org/apache/commons/lang3/time/DurationFormatUtils::formatDurationHMS → NO_COVERAGE

414

1.1
Location : select
Killed by : none
replaced return value with null for net/bmahe/genetics4j/moo/spea2/replacement/SPEA2ReplacementStrategyImplementor::select → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.20.3