NeatChromosomeCombinator.java

1
package net.bmahe.genetics4j.neat.combination;
2
3
import java.util.ArrayList;
4
import java.util.Comparator;
5
import java.util.HashMap;
6
import java.util.HashSet;
7
import java.util.List;
8
import java.util.Map;
9
import java.util.Set;
10
import java.util.random.RandomGenerator;
11
12
import org.apache.commons.lang3.Validate;
13
import org.apache.logging.log4j.LogManager;
14
import org.apache.logging.log4j.Logger;
15
16
import net.bmahe.genetics4j.core.chromosomes.Chromosome;
17
import net.bmahe.genetics4j.core.combination.ChromosomeCombinator;
18
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
19
import net.bmahe.genetics4j.neat.Connection;
20
import net.bmahe.genetics4j.neat.chromosomes.NeatChromosome;
21
import net.bmahe.genetics4j.neat.combination.parentcompare.ChosenOtherChromosome;
22
import net.bmahe.genetics4j.neat.combination.parentcompare.ParentComparisonHandler;
23
import net.bmahe.genetics4j.neat.spec.combination.NeatCombination;
24
import net.bmahe.genetics4j.neat.spec.combination.parentcompare.ParentComparisonPolicy;
25
26
/**
27
 * Implements genetic crossover for NEAT (NeuroEvolution of Augmenting Topologies) neural network chromosomes.
28
 * 
29
 * <p>NeatChromosomeCombinator performs innovation-number-based genetic recombination between two neural
30
 * network chromosomes, creating offspring that inherit network topology and connection weights from both
31
 * parents while preserving the historical tracking essential to the NEAT algorithm.
32
 * 
33
 * <p>NEAT crossover algorithm:
34
 * <ol>
35
 * <li><strong>Parent comparison</strong>: Determine which parent is "fitter" using comparison policy</li>
36
 * <li><strong>Gene alignment</strong>: Match connections by innovation number between parents</li>
37
 * <li><strong>Matching genes</strong>: Randomly inherit from either parent (biased by inheritance threshold)</li>
38
 * <li><strong>Disjoint genes</strong>: Inherit from fitter parent when innovation ranges overlap</li>
39
 * <li><strong>Excess genes</strong>: Inherit from fitter parent beyond other parent's range</li>
40
 * <li><strong>Gene re-enabling</strong>: Potentially re-enable disabled genes based on threshold</li>
41
 * </ol>
42
 * 
43
 * <p>Key genetic operations:
44
 * <ul>
45
 * <li><strong>Innovation alignment</strong>: Uses innovation numbers to match corresponding genes</li>
46
 * <li><strong>Fitness-biased inheritance</strong>: Favors genes from fitter parent based on inheritance threshold</li>
47
 * <li><strong>Gene state management</strong>: Handles enabled/disabled connection states during crossover</li>
48
 * <li><strong>Topology preservation</strong>: Ensures offspring have valid network topology</li>
49
 * </ul>
50
 * 
51
 * <p>Gene classification:
52
 * <ul>
53
 * <li><strong>Matching genes</strong>: Same innovation number in both parents, inherit randomly</li>
54
 * <li><strong>Disjoint genes</strong>: Innovation number exists in one parent within other's range</li>
55
 * <li><strong>Excess genes</strong>: Innovation number beyond other parent's highest innovation</li>
56
 * <li><strong>Disabled genes</strong>: May be re-enabled if other parent has enabled version</li>
57
 * </ul>
58
 * 
59
 * <p>Common usage patterns:
60
 * <pre>{@code
61
 * // Create NEAT chromosome combinator
62
 * RandomGenerator randomGen = RandomGenerator.getDefault();
63
 * NeatCombination policy = NeatCombination.builder()
64
 *     .inheritanceThresold(0.7)  // 70% bias toward fitter parent
65
 *     .reenableGeneInheritanceThresold(0.25)  // 25% gene re-enabling chance
66
 *     .parentComparisonPolicy(FitnessComparison.build())
67
 *     .build();
68
 * 
69
 * ParentComparisonHandler comparisonHandler = new FitnessComparisonHandler();
70
 * NeatChromosomeCombinator<Double> combinator = new NeatChromosomeCombinator<>(
71
 *     randomGen, policy, comparisonHandler
72
 * );
73
 * 
74
 * // Perform crossover
75
 * NeatChromosome parent1 = // ... first parent
76
 * NeatChromosome parent2 = // ... second parent
77
 * Double fitness1 = 0.85;
78
 * Double fitness2 = 0.72;
79
 * 
80
 * List<Chromosome> offspring = combinator.combine(
81
 *     eaConfiguration, parent1, fitness1, parent2, fitness2
82
 * );
83
 * NeatChromosome child = (NeatChromosome) offspring.get(0);
84
 * }</pre>
85
 * 
86
 * <p>Inheritance threshold effects:
87
 * <ul>
88
 * <li><strong>0.5</strong>: Unbiased inheritance, equal probability from both parents</li>
89
 * <li><strong>&gt; 0.5</strong>: Bias toward fitter parent, promotes convergence</li>
90
 * <li><strong>&lt; 0.5</strong>: Bias toward less fit parent, increases diversity</li>
91
 * <li><strong>1.0</strong>: Always inherit from fitter parent (when fitness differs)</li>
92
 * </ul>
93
 * 
94
 * <p>Gene re-enabling mechanism:
95
 * <ul>
96
 * <li><strong>Preservation</strong>: Disabled genes maintain connection topology information</li>
97
 * <li><strong>Re-activation</strong>: Chance to re-enable genes that are enabled in other parent</li>
98
 * <li><strong>Exploration</strong>: Allows rediscovery of previously disabled connection patterns</li>
99
 * <li><strong>Genetic diversity</strong>: Prevents permanent loss of structural information</li>
100
 * </ul>
101
 * 
102
 * <p>Duplicate connection prevention:
103
 * <ul>
104
 * <li><strong>Links cache</strong>: Tracks already included connections to prevent duplicates</li>
105
 * <li><strong>Topology validation</strong>: Ensures each connection appears at most once</li>
106
 * <li><strong>Cache efficiency</strong>: O(1) lookup for connection existence checking</li>
107
 * <li><strong>Memory management</strong>: Cache cleared after each crossover operation</li>
108
 * </ul>
109
 * 
110
 * <p>Performance considerations:
111
 * <ul>
112
 * <li><strong>Linear time complexity</strong>: O(n + m) where n, m are parent connection counts</li>
113
 * <li><strong>Innovation sorting</strong>: Leverages pre-sorted connection lists for efficiency</li>
114
 * <li><strong>Memory efficiency</strong>: Minimal allocation during crossover</li>
115
 * <li><strong>Cache optimization</strong>: Efficient duplicate detection and prevention</li>
116
 * </ul>
117
 * 
118
 * @param <T> the fitness value type (typically Double)
119
 * @see NeatCombination
120
 * @see ParentComparisonHandler
121
 * @see NeatChromosome
122
 * @see ChromosomeCombinator
123
 */
124
public class NeatChromosomeCombinator<T extends Comparable<T>> implements ChromosomeCombinator<T> {
125
	public static final Logger logger = LogManager.getLogger(NeatChromosomeCombinator.class);
126
127
	private final RandomGenerator randomGenerator;
128
	private final NeatCombination neatCombination;
129
	private final ParentComparisonHandler parentComparisonHandler;
130
131
	/**
132
	 * Checks whether a connection already exists in the links cache.
133
	 * 
134
	 * <p>The links cache prevents duplicate connections in the offspring by tracking
135
	 * all connections that have already been added. This ensures each connection
136
	 * appears at most once in the resulting chromosome.
137
	 * 
138
	 * @param linksCache cache mapping from-node indices to sets of to-node indices
139
	 * @param connection connection to check for existence
140
	 * @return true if connection already exists in cache, false otherwise
141
	 * @throws IllegalArgumentException if linksCache or connection is null
142
	 */
143
	private boolean linksCacheContainsConnection(final Map<Integer, Set<Integer>> linksCache,
144
			final Connection connection) {
145
		Validate.notNull(linksCache);
146
		Validate.notNull(connection);
147
148 1 1. linksCacheContainsConnection : removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → SURVIVED
		final int fromNodeIndex = connection.fromNodeIndex();
149 1 1. linksCacheContainsConnection : removed call to net/bmahe/genetics4j/neat/Connection::toNodeIndex → SURVIVED
		final int toNodeIndex = connection.toNodeIndex();
150
151 10 1. linksCacheContainsConnection : removed call to java/util/Map::containsKey → SURVIVED
2. linksCacheContainsConnection : removed conditional - replaced equality check with false → SURVIVED
3. linksCacheContainsConnection : removed call to java/lang/Integer::valueOf → SURVIVED
4. linksCacheContainsConnection : removed call to java/lang/Integer::valueOf → KILLED
5. linksCacheContainsConnection : removed call to java/util/Map::get → KILLED
6. linksCacheContainsConnection : replaced call to java/util/Map::get with argument → KILLED
7. linksCacheContainsConnection : removed conditional - replaced equality check with true → KILLED
8. linksCacheContainsConnection : negated conditional → KILLED
9. linksCacheContainsConnection : replaced boolean return with true for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → KILLED
10. linksCacheContainsConnection : Substituted 1 with 0 → KILLED
		return linksCache.containsKey(fromNodeIndex) == true && linksCache.get(fromNodeIndex)
152 8 1. linksCacheContainsConnection : removed call to java/lang/Integer::valueOf → SURVIVED
2. linksCacheContainsConnection : removed conditional - replaced equality check with false → SURVIVED
3. linksCacheContainsConnection : Substituted 1 with 0 → NO_COVERAGE
4. linksCacheContainsConnection : removed call to java/util/Set::contains → SURVIVED
5. linksCacheContainsConnection : negated conditional → KILLED
6. linksCacheContainsConnection : Substituted 1 with 0 → KILLED
7. linksCacheContainsConnection : removed conditional - replaced equality check with true → KILLED
8. linksCacheContainsConnection : Substituted 0 with 1 → KILLED
				.contains(toNodeIndex) == true;
153
	}
154
155
	/**
156
	 * Adds a connection to the links cache to prevent future duplicates.
157
	 * 
158
	 * <p>This method records that a connection from the specified source to target
159
	 * node has been added to the offspring, preventing the same connection from
160
	 * being added again during the crossover process.
161
	 * 
162
	 * @param linksCache cache mapping from-node indices to sets of to-node indices
163
	 * @param connection connection to add to the cache
164
	 * @throws IllegalArgumentException if linksCache or connection is null
165
	 */
166
	private void insertInlinksCache(final Map<Integer, Set<Integer>> linksCache, final Connection connection) {
167
		Validate.notNull(linksCache);
168
		Validate.notNull(connection);
169
170 1 1. insertInlinksCache : removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → SURVIVED
		final int fromNodeIndex = connection.fromNodeIndex();
171 1 1. insertInlinksCache : removed call to net/bmahe/genetics4j/neat/Connection::toNodeIndex → SURVIVED
		final int toNodeIndex = connection.toNodeIndex();
172
173 5 1. insertInlinksCache : removed call to java/lang/Integer::valueOf → SURVIVED
2. insertInlinksCache : replaced call to java/util/Map::computeIfAbsent with argument → KILLED
3. insertInlinksCache : removed call to java/util/Map::computeIfAbsent → KILLED
4. lambda$insertInlinksCache$0 : removed call to java/util/HashSet::<init> → KILLED
5. lambda$insertInlinksCache$0 : replaced return value with Collections.emptySet for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::lambda$insertInlinksCache$0 → KILLED
		linksCache.computeIfAbsent(fromNodeIndex, k -> new HashSet<>())
174 2 1. insertInlinksCache : removed call to java/lang/Integer::valueOf → SURVIVED
2. insertInlinksCache : removed call to java/util/Set::add → SURVIVED
				.add(toNodeIndex);
175
	}
176
177
	/**
178
	 * Determines whether a disabled gene should be re-enabled during crossover.
179
	 * 
180
	 * <p>If the chosen parent has a disabled connection but the other parent has the
181
	 * same connection enabled, there is a configurable chance to re-enable the
182
	 * connection in the offspring. This mechanism prevents permanent loss of
183
	 * potentially useful connections.
184
	 * 
185
	 * @param chosenParent the connection selected for inheritance
186
	 * @param otherParent the corresponding connection from the other parent
187
	 * @return true if the disabled connection should be re-enabled, false otherwise
188
	 * @throws IllegalArgumentException if either connection is null
189
	 */
190
	protected boolean shouldReEnable(final Connection chosenParent, final Connection otherParent) {
191
		Validate.notNull(chosenParent);
192
		Validate.notNull(otherParent);
193
194 1 1. shouldReEnable : Substituted 0 with 1 → KILLED
		boolean shouldReEnable = false;
195 9 1. shouldReEnable : removed conditional - replaced equality check with true → KILLED
2. shouldReEnable : removed call to net/bmahe/genetics4j/neat/Connection::isEnabled → KILLED
3. shouldReEnable : negated conditional → KILLED
4. shouldReEnable : removed call to net/bmahe/genetics4j/neat/Connection::isEnabled → KILLED
5. shouldReEnable : Substituted 1 with 0 → KILLED
6. shouldReEnable : removed conditional - replaced equality check with false → KILLED
7. shouldReEnable : removed conditional - replaced equality check with true → KILLED
8. shouldReEnable : negated conditional → KILLED
9. shouldReEnable : removed conditional - replaced equality check with false → KILLED
		if (chosenParent.isEnabled() == false && otherParent.isEnabled() == true) {
196 6 1. shouldReEnable : changed conditional boundary → SURVIVED
2. shouldReEnable : removed call to java/util/random/RandomGenerator::nextDouble → SURVIVED
3. shouldReEnable : removed conditional - replaced comparison check with false → KILLED
4. shouldReEnable : negated conditional → KILLED
5. shouldReEnable : removed conditional - replaced comparison check with true → KILLED
6. shouldReEnable : removed call to net/bmahe/genetics4j/neat/spec/combination/NeatCombination::reenableGeneInheritanceThresold → KILLED
			if (randomGenerator.nextDouble() < neatCombination.reenableGeneInheritanceThresold()) {
197 1 1. shouldReEnable : Substituted 1 with 0 → KILLED
				shouldReEnable = true;
198
			}
199
		}
200
201 2 1. shouldReEnable : replaced boolean return with true for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::shouldReEnable → KILLED
2. shouldReEnable : replaced boolean return with false for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::shouldReEnable → KILLED
		return shouldReEnable;
202
	}
203
204
	/**
205
	 * Constructs a new NEAT chromosome combinator with the specified components.
206
	 * 
207
	 * <p>The combinator uses the random generator for stochastic decisions during crossover,
208
	 * the combination policy for inheritance parameters, and the comparison handler for
209
	 * determining parent fitness relationships.
210
	 * 
211
	 * @param _randomGenerator random number generator for stochastic crossover decisions
212
	 * @param _neatCombination crossover policy defining inheritance parameters
213
	 * @param _parentComparisonHandler handler for comparing parent fitness and determining inheritance bias
214
	 * @throws IllegalArgumentException if any parameter is null
215
	 */
216
	public NeatChromosomeCombinator(final RandomGenerator _randomGenerator, final NeatCombination _neatCombination,
217
			final ParentComparisonHandler _parentComparisonHandler) {
218
		Validate.notNull(_randomGenerator);
219
		Validate.notNull(_neatCombination);
220
		Validate.notNull(_parentComparisonHandler);
221
222 1 1. <init> : Removed assignment to member variable randomGenerator → KILLED
		this.randomGenerator = _randomGenerator;
223 1 1. <init> : Removed assignment to member variable neatCombination → KILLED
		this.neatCombination = _neatCombination;
224 1 1. <init> : Removed assignment to member variable parentComparisonHandler → KILLED
		this.parentComparisonHandler = _parentComparisonHandler;
225
	}
226
227
	/**
228
	 * Performs genetic crossover between two NEAT chromosomes to produce offspring.
229
	 * 
230
	 * <p>This method implements the NEAT crossover algorithm, aligning genes by innovation
231
	 * number and applying inheritance rules based on parent fitness and configuration
232
	 * parameters. The result is a single offspring chromosome that inherits network
233
	 * topology and connection weights from both parents.
234
	 * 
235
	 * <p>Crossover process:
236
	 * <ol>
237
	 * <li>Compare parent fitness to determine inheritance bias</li>
238
	 * <li>Align genes by innovation number between parents</li>
239
	 * <li>Process matching genes with random inheritance (biased)</li>
240
	 * <li>Process disjoint genes based on fitness comparison</li>
241
	 * <li>Process excess genes from fitter parent</li>
242
	 * <li>Apply gene re-enabling rules for disabled connections</li>
243
	 * </ol>
244
	 * 
245
	 * @param eaConfiguration evolutionary algorithm configuration containing fitness comparator
246
	 * @param firstChromosome first parent chromosome (must be NeatChromosome)
247
	 * @param firstParentFitness fitness value of first parent
248
	 * @param secondChromosome second parent chromosome (must be NeatChromosome)
249
	 * @param secondParentFitness fitness value of second parent
250
	 * @return list containing single offspring chromosome
251
	 * @throws IllegalArgumentException if chromosomes are not NeatChromosome instances or any parameter is null
252
	 */
253
	@Override
254
	public List<Chromosome> combine(final AbstractEAConfiguration<T> eaConfiguration, final Chromosome firstChromosome,
255
			final T firstParentFitness, final Chromosome secondChromosome, final T secondParentFitness) {
256
		Validate.notNull(eaConfiguration);
257
		Validate.notNull(firstChromosome);
258
		Validate.notNull(firstParentFitness);
259
		Validate.isInstanceOf(NeatChromosome.class, firstChromosome);
260
		Validate.notNull(secondChromosome);
261
		Validate.notNull(secondParentFitness);
262
		Validate.isInstanceOf(NeatChromosome.class, secondChromosome);
263
264
		final NeatChromosome firstNeatChromosome = (NeatChromosome) firstChromosome;
265
		final NeatChromosome secondNeatChromosome = (NeatChromosome) secondChromosome;
266 1 1. combine : removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::fitnessComparator → KILLED
		final Comparator<T> fitnessComparator = eaConfiguration.fitnessComparator();
267 1 1. combine : removed call to net/bmahe/genetics4j/neat/spec/combination/NeatCombination::inheritanceThresold → KILLED
		final double inheritanceThresold = neatCombination.inheritanceThresold();
268 1 1. combine : removed call to net/bmahe/genetics4j/neat/spec/combination/NeatCombination::parentComparisonPolicy → KILLED
		final ParentComparisonPolicy parentComparisonPolicy = neatCombination.parentComparisonPolicy();
269
270 1 1. combine : removed call to java/util/Comparator::compare → KILLED
		final int fitnessComparison = fitnessComparator.compare(firstParentFitness, secondParentFitness);
271
		final ChosenOtherChromosome comparedChromosomes = parentComparisonHandler
272 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/parentcompare/ParentComparisonHandler::compare → KILLED
				.compare(parentComparisonPolicy, firstNeatChromosome, secondNeatChromosome, fitnessComparison);
273 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/parentcompare/ChosenOtherChromosome::chosen → KILLED
		final NeatChromosome bestChromosome = comparedChromosomes.chosen();
274 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/parentcompare/ChosenOtherChromosome::other → KILLED
		final NeatChromosome worstChromosome = comparedChromosomes.other();
275
276 1 1. combine : removed call to java/util/ArrayList::<init> → KILLED
		final List<Connection> combinedConnections = new ArrayList<>();
277 1 1. combine : removed call to java/util/HashMap::<init> → KILLED
		final Map<Integer, Set<Integer>> linksCache = new HashMap<>();
278
279 1 1. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getConnections → KILLED
		final var bestConnections = bestChromosome.getConnections();
280 1 1. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getConnections → KILLED
		final var worstConnections = worstChromosome.getConnections();
281
282 1 1. combine : Substituted 0 with 1 → KILLED
		int indexBest = 0;
283 1 1. combine : Substituted 0 with 1 → KILLED
		int indexWorst = 0;
284
285 10 1. combine : negated conditional → KILLED
2. combine : changed conditional boundary → KILLED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced comparison check with true → KILLED
5. combine : changed conditional boundary → KILLED
6. combine : removed conditional - replaced comparison check with false → KILLED
7. combine : removed conditional - replaced comparison check with true → KILLED
8. combine : removed call to java/util/List::size → KILLED
9. combine : removed conditional - replaced comparison check with false → KILLED
10. combine : removed call to java/util/List::size → KILLED
		while (indexBest < bestConnections.size() && indexWorst < worstConnections.size()) {
286
287 1 1. combine : removed call to java/util/List::get → KILLED
			final var bestConnection = bestConnections.get(indexBest);
288 1 1. combine : removed call to java/util/List::get → KILLED
			final var worstConnection = worstConnections.get(indexWorst);
289
290 5 1. combine : removed call to net/bmahe/genetics4j/neat/Connection::innovation → KILLED
2. combine : removed call to net/bmahe/genetics4j/neat/Connection::innovation → KILLED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced equality check with true → KILLED
5. combine : removed conditional - replaced equality check with false → KILLED
			if (bestConnection.innovation() == worstConnection.innovation()) {
291
				/**
292
				 * If innovation is the same, we pick the connection randomly
293
				 */
294
				var original = bestConnection;
295
				var other = worstConnection;
296 7 1. combine : removed call to java/util/random/RandomGenerator::nextDouble → SURVIVED
2. combine : changed conditional boundary → SURVIVED
3. combine : removed conditional - replaced comparison check with true → KILLED
4. combine : Replaced double subtraction with addition → KILLED
5. combine : Substituted 1.0 with 2.0 → KILLED
6. combine : negated conditional → KILLED
7. combine : removed conditional - replaced comparison check with false → KILLED
				if (randomGenerator.nextDouble() < 1 - inheritanceThresold) {
297
					original = worstConnection;
298
					other = bestConnection;
299
				}
300 4 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → SURVIVED
2. combine : removed conditional - replaced equality check with true → SURVIVED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced equality check with false → KILLED
				if (linksCacheContainsConnection(linksCache, original) == false) {
301
302
					/**
303
					 * If the chosen gene is disabled but the other one is enabled, then there is a
304
					 * chance we will re-enable it
305
					 */
306 6 1. combine : negated conditional → KILLED
2. combine : removed conditional - replaced equality check with false → KILLED
3. combine : removed conditional - replaced equality check with true → KILLED
4. combine : removed call to net/bmahe/genetics4j/neat/Connection::isEnabled → KILLED
5. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::shouldReEnable → KILLED
6. combine : Substituted 1 with 0 → KILLED
					final boolean isEnabled = shouldReEnable(original, other) ? true : original.isEnabled();
307
308 1 1. combine : removed call to net/bmahe/genetics4j/neat/Connection::builder → KILLED
					final var childConnection = Connection.builder()
309 2 1. combine : replaced call to net/bmahe/genetics4j/neat/Connection$Builder::from with receiver → KILLED
2. combine : removed call to net/bmahe/genetics4j/neat/Connection$Builder::from → KILLED
							.from(original)
310 2 1. combine : removed call to net/bmahe/genetics4j/neat/Connection$Builder::isEnabled → KILLED
2. combine : replaced call to net/bmahe/genetics4j/neat/Connection$Builder::isEnabled with receiver → KILLED
							.isEnabled(isEnabled)
311 1 1. combine : removed call to net/bmahe/genetics4j/neat/Connection$Builder::build → KILLED
							.build();
312 1 1. combine : removed call to java/util/List::add → KILLED
					combinedConnections.add(childConnection);
313 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → SURVIVED
					insertInlinksCache(linksCache, original);
314
				}
315 2 1. combine : Changed increment from 1 to -1 → KILLED
2. combine : Removed increment 1 → KILLED
				indexBest++;
316 2 1. combine : Removed increment 1 → SURVIVED
2. combine : Changed increment from 1 to -1 → KILLED
				indexWorst++;
317 6 1. combine : changed conditional boundary → SURVIVED
2. combine : removed call to net/bmahe/genetics4j/neat/Connection::innovation → SURVIVED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced comparison check with false → KILLED
5. combine : removed conditional - replaced comparison check with true → KILLED
6. combine : removed call to net/bmahe/genetics4j/neat/Connection::innovation → KILLED
			} else if (bestConnection.innovation() > worstConnection.innovation()) {
318
319
				/**
320
				 * If the fitnesses are equal, then we randomly inherit from the parent
321
				 * Otherwise, we do not inherit from the lesser gene
322
				 */
323 10 1. combine : Substituted 1.0 with 2.0 → NO_COVERAGE
2. combine : removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE
3. combine : changed conditional boundary → NO_COVERAGE
4. combine : removed conditional - replaced equality check with false → SURVIVED
5. combine : removed conditional - replaced comparison check with false → NO_COVERAGE
6. combine : Replaced double subtraction with addition → NO_COVERAGE
7. combine : negated conditional → NO_COVERAGE
8. combine : removed conditional - replaced comparison check with true → NO_COVERAGE
9. combine : negated conditional → KILLED
10. combine : removed conditional - replaced equality check with true → KILLED
				if (fitnessComparison == 0 && randomGenerator.nextDouble() < 1.0 - inheritanceThresold) {
324
					final var original = worstConnection;
325 4 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → NO_COVERAGE
2. combine : removed conditional - replaced equality check with true → NO_COVERAGE
3. combine : negated conditional → NO_COVERAGE
4. combine : removed conditional - replaced equality check with false → NO_COVERAGE
					if (linksCacheContainsConnection(linksCache, original) == false) {
326 3 1. combine : replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → NO_COVERAGE
2. combine : removed call to java/util/List::add → NO_COVERAGE
3. combine : removed call to net/bmahe/genetics4j/neat/Connection::copyOf → NO_COVERAGE
						combinedConnections.add(Connection.copyOf(original));
327 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → NO_COVERAGE
						insertInlinksCache(linksCache, original);
328
					}
329
				}
330
331 2 1. combine : Removed increment 1 → TIMED_OUT
2. combine : Changed increment from 1 to -1 → KILLED
				indexWorst++;
332
			} else {
333
334
				/**
335
				 * If the fitnesses are equal, then we randomly inherit from the parent
336
				 * Otherwise, we always inherit from the better gene
337
				 */
338
339 8 1. combine : removed conditional - replaced comparison check with false → NO_COVERAGE
2. combine : removed conditional - replaced equality check with false → SURVIVED
3. combine : changed conditional boundary → NO_COVERAGE
4. combine : removed conditional - replaced comparison check with true → NO_COVERAGE
5. combine : negated conditional → NO_COVERAGE
6. combine : removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE
7. combine : negated conditional → KILLED
8. combine : removed conditional - replaced equality check with true → KILLED
				if (fitnessComparison != 0 || randomGenerator.nextDouble() < inheritanceThresold) {
340 4 1. combine : removed conditional - replaced equality check with true → SURVIVED
2. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → SURVIVED
3. combine : removed conditional - replaced equality check with false → KILLED
4. combine : negated conditional → KILLED
					if (linksCacheContainsConnection(linksCache, bestConnection) == false) {
341 3 1. combine : replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → SURVIVED
2. combine : removed call to java/util/List::add → KILLED
3. combine : removed call to net/bmahe/genetics4j/neat/Connection::copyOf → KILLED
						combinedConnections.add(Connection.copyOf(bestConnection));
342 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → SURVIVED
						insertInlinksCache(linksCache, bestConnection);
343
					}
344
				}
345 2 1. combine : Removed increment 1 → TIMED_OUT
2. combine : Changed increment from 1 to -1 → KILLED
				indexBest++;
346
			}
347
		}
348
349
		/*
350
		 * Case where the best connection has more genes. It's called excess genes
351
		 */
352 5 1. combine : removed conditional - replaced comparison check with true → KILLED
2. combine : removed conditional - replaced comparison check with false → KILLED
3. combine : removed call to java/util/List::size → KILLED
4. combine : negated conditional → KILLED
5. combine : changed conditional boundary → KILLED
		while (indexBest < bestConnections.size()) {
353
			/**
354
			 * If the fitnesses are equal, then we randomly inherit from the parent
355
			 * Otherwise, we always inherit from the better gene
356
			 */
357 8 1. combine : negated conditional → NO_COVERAGE
2. combine : changed conditional boundary → NO_COVERAGE
3. combine : removed conditional - replaced comparison check with false → NO_COVERAGE
4. combine : removed conditional - replaced equality check with false → SURVIVED
5. combine : removed conditional - replaced comparison check with true → NO_COVERAGE
6. combine : removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE
7. combine : removed conditional - replaced equality check with true → KILLED
8. combine : negated conditional → KILLED
			if (fitnessComparison != 0 || randomGenerator.nextDouble() < inheritanceThresold) {
358 1 1. combine : removed call to java/util/List::get → KILLED
				final var bestConnection = bestConnections.get(indexBest);
359 4 1. combine : removed conditional - replaced equality check with true → SURVIVED
2. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → SURVIVED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced equality check with false → KILLED
				if (linksCacheContainsConnection(linksCache, bestConnection) == false) {
360 3 1. combine : replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → SURVIVED
2. combine : removed call to java/util/List::add → KILLED
3. combine : removed call to net/bmahe/genetics4j/neat/Connection::copyOf → KILLED
					combinedConnections.add(Connection.copyOf(bestConnection));
361 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → SURVIVED
					insertInlinksCache(linksCache, bestConnection);
362
				}
363
364
			}
365
			indexBest++;
366
		}
367
368
		/*
369
		 * Case where the worst connection has more genes. It's called excess genes.
370
		 * Since we don't inherit when their fitness aren't equal, it means we can skip
371
		 * the excess genes from the weaker connections. However we will randomly
372
		 * inherit if their fitnesses are equal
373
		 */
374 8 1. combine : removed call to java/util/List::size → NO_COVERAGE
2. combine : removed conditional - replaced comparison check with true → NO_COVERAGE
3. combine : removed conditional - replaced equality check with false → SURVIVED
4. combine : changed conditional boundary → NO_COVERAGE
5. combine : negated conditional → NO_COVERAGE
6. combine : removed conditional - replaced comparison check with false → NO_COVERAGE
7. combine : negated conditional → KILLED
8. combine : removed conditional - replaced equality check with true → KILLED
		while (fitnessComparison == 0 && indexWorst < worstConnections.size()) {
375 7 1. combine : changed conditional boundary → NO_COVERAGE
2. combine : Replaced double subtraction with addition → NO_COVERAGE
3. combine : removed conditional - replaced comparison check with true → NO_COVERAGE
4. combine : negated conditional → NO_COVERAGE
5. combine : removed conditional - replaced comparison check with false → NO_COVERAGE
6. combine : removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE
7. combine : Substituted 1.0 with 2.0 → NO_COVERAGE
			if (randomGenerator.nextDouble() < 1.0 - inheritanceThresold) {
376 1 1. combine : removed call to java/util/List::get → NO_COVERAGE
				final var worstConnection = worstConnections.get(indexWorst);
377 4 1. combine : negated conditional → NO_COVERAGE
2. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → NO_COVERAGE
3. combine : removed conditional - replaced equality check with true → NO_COVERAGE
4. combine : removed conditional - replaced equality check with false → NO_COVERAGE
				if (linksCacheContainsConnection(linksCache, worstConnection) == false) {
378 3 1. combine : replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → NO_COVERAGE
2. combine : removed call to java/util/List::add → NO_COVERAGE
3. combine : removed call to net/bmahe/genetics4j/neat/Connection::copyOf → NO_COVERAGE
					combinedConnections.add(Connection.copyOf(worstConnection));
379 1 1. combine : removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → NO_COVERAGE
					insertInlinksCache(linksCache, worstConnection);
380
				}
381
382
			}
383 2 1. combine : Removed increment 1 → NO_COVERAGE
2. combine : Changed increment from 1 to -1 → NO_COVERAGE
			indexWorst++;
384
		}
385
386 3 1. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getNumInputs → KILLED
2. combine : removed call to java/util/List::of → KILLED
3. combine : replaced return value with Collections.emptyList for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::combine → KILLED
		return List.of(new NeatChromosome(bestChromosome.getNumInputs(),
387 1 1. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getNumOutputs → KILLED
				bestChromosome.getNumOutputs(),
388 1 1. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getMinWeightValue → SURVIVED
				bestChromosome.getMinWeightValue(),
389 2 1. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getMaxWeightValue → SURVIVED
2. combine : removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::<init> → KILLED
				bestChromosome.getMaxWeightValue(),
390
				combinedConnections));
391
	}
392
}

Mutations

148

1.1
Location : linksCacheContainsConnection
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → SURVIVED
Covering tests

149

1.1
Location : linksCacheContainsConnection
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::toNodeIndex → SURVIVED
Covering tests

151

1.1
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/lang/Integer::valueOf → KILLED

2.2
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/Map::get → KILLED

3.3
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced call to java/util/Map::get with argument → KILLED

4.4
Location : linksCacheContainsConnection
Killed by : none
removed call to java/util/Map::containsKey → SURVIVED
Covering tests

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

6.6
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with true → KILLED

7.7
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

8.8
Location : linksCacheContainsConnection
Killed by : none
removed call to java/lang/Integer::valueOf → SURVIVED Covering tests

9.9
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced boolean return with true for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → KILLED

10.10
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 1 with 0 → KILLED

152

1.1
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

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

3.3
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 1 with 0 → KILLED

4.4
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with true → KILLED

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

6.6
Location : linksCacheContainsConnection
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 0 with 1 → KILLED

7.7
Location : linksCacheContainsConnection
Killed by : none
Substituted 1 with 0 → NO_COVERAGE

8.8
Location : linksCacheContainsConnection
Killed by : none
removed call to java/util/Set::contains → SURVIVED Covering tests

170

1.1
Location : insertInlinksCache
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → SURVIVED
Covering tests

171

1.1
Location : insertInlinksCache
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::toNodeIndex → SURVIVED
Covering tests

173

1.1
Location : insertInlinksCache
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced call to java/util/Map::computeIfAbsent with argument → KILLED

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

3.3
Location : insertInlinksCache
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/Map::computeIfAbsent → KILLED

4.4
Location : lambda$insertInlinksCache$0
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/HashSet::<init> → KILLED

5.5
Location : lambda$insertInlinksCache$0
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced return value with Collections.emptySet for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::lambda$insertInlinksCache$0 → KILLED

174

1.1
Location : insertInlinksCache
Killed by : none
removed call to java/lang/Integer::valueOf → SURVIVED
Covering tests

2.2
Location : insertInlinksCache
Killed by : none
removed call to java/util/Set::add → SURVIVED Covering tests

194

1.1
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
Substituted 0 with 1 → KILLED

195

1.1
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed conditional - replaced equality check with true → KILLED

2.2
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::isEnabled → KILLED

3.3
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
negated conditional → KILLED

4.4
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::isEnabled → KILLED

5.5
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
Substituted 1 with 0 → KILLED

6.6
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed conditional - replaced equality check with false → KILLED

7.7
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed conditional - replaced equality check with true → KILLED

8.8
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
negated conditional → KILLED

9.9
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed conditional - replaced equality check with false → KILLED

196

1.1
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed conditional - replaced comparison check with false → KILLED

2.2
Location : shouldReEnable
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

3.3
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
negated conditional → KILLED

4.4
Location : shouldReEnable
Killed by : none
removed call to java/util/random/RandomGenerator::nextDouble → SURVIVED Covering tests

5.5
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldNeverReEnable()]
removed conditional - replaced comparison check with true → KILLED

6.6
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
removed call to net/bmahe/genetics4j/neat/spec/combination/NeatCombination::reenableGeneInheritanceThresold → KILLED

197

1.1
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
Substituted 1 with 0 → KILLED

201

1.1
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
replaced boolean return with true for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::shouldReEnable → KILLED

2.2
Location : shouldReEnable
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
replaced boolean return with false for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::shouldReEnable → KILLED

222

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
Removed assignment to member variable randomGenerator → KILLED

223

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:shouldAlwaysReEnable()]
Removed assignment to member variable neatCombination → KILLED

224

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Removed assignment to member variable parentComparisonHandler → KILLED

266

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::fitnessComparator → KILLED

267

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/spec/combination/NeatCombination::inheritanceThresold → KILLED

268

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/spec/combination/NeatCombination::parentComparisonPolicy → KILLED

270

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/Comparator::compare → KILLED

272

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/combination/parentcompare/ParentComparisonHandler::compare → KILLED

273

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/combination/parentcompare/ChosenOtherChromosome::chosen → KILLED

274

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/combination/parentcompare/ChosenOtherChromosome::other → KILLED

276

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/ArrayList::<init> → KILLED

277

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/HashMap::<init> → KILLED

279

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getConnections → KILLED

280

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getConnections → KILLED

282

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 0 with 1 → KILLED

283

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 0 with 1 → KILLED

285

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
changed conditional boundary → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with true → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
changed conditional boundary → KILLED

6.6
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with false → KILLED

7.7
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with true → KILLED

8.8
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::size → KILLED

9.9
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with false → KILLED

10.10
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::size → KILLED

287

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::get → KILLED

288

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::get → KILLED

290

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::innovation → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::innovation → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with true → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with false → KILLED

296

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with true → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Replaced double subtraction with addition → KILLED

3.3
Location : combine
Killed by : none
removed call to java/util/random/RandomGenerator::nextDouble → SURVIVED
Covering tests

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 1.0 with 2.0 → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

6.6
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed conditional - replaced comparison check with false → KILLED

7.7
Location : combine
Killed by : none
changed conditional boundary → SURVIVED Covering tests

300

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → SURVIVED
Covering tests

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

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with false → KILLED

306

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with false → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestNoReEnable()]
removed conditional - replaced equality check with true → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::isEnabled → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::shouldReEnable → KILLED

6.6
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Substituted 1 with 0 → KILLED

308

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::builder → KILLED

309

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced call to net/bmahe/genetics4j/neat/Connection$Builder::from with receiver → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection$Builder::from → KILLED

310

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection$Builder::isEnabled → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced call to net/bmahe/genetics4j/neat/Connection$Builder::isEnabled with receiver → KILLED

311

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection$Builder::build → KILLED

312

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::add → KILLED

313

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → SURVIVED
Covering tests

315

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Changed increment from 1 to -1 → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
Removed increment 1 → KILLED

316

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Changed increment from 1 to -1 → KILLED

2.2
Location : combine
Killed by : none
Removed increment 1 → SURVIVED
Covering tests

317

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

2.2
Location : combine
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed conditional - replaced comparison check with false → KILLED

4.4
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::innovation → SURVIVED Covering tests

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with true → KILLED

6.6
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::innovation → KILLED

323

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

2.2
Location : combine
Killed by : none
removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE

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

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
negated conditional → KILLED

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

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

7.7
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed conditional - replaced equality check with true → KILLED

8.8
Location : combine
Killed by : none
Replaced double subtraction with addition → NO_COVERAGE

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

10.10
Location : combine
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

325

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → NO_COVERAGE

2.2
Location : combine
Killed by : none
removed conditional - replaced equality check with true → NO_COVERAGE

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

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

326

1.1
Location : combine
Killed by : none
replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → NO_COVERAGE

2.2
Location : combine
Killed by : none
removed call to java/util/List::add → NO_COVERAGE

3.3
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::copyOf → NO_COVERAGE

327

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → NO_COVERAGE

331

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Changed increment from 1 to -1 → KILLED

2.2
Location : combine
Killed by : none
Removed increment 1 → TIMED_OUT

339

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
negated conditional → KILLED

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

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

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

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed conditional - replaced equality check with true → KILLED

6.6
Location : combine
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

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

8.8
Location : combine
Killed by : none
removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE

340

1.1
Location : combine
Killed by : none
removed conditional - replaced equality check with true → SURVIVED
Covering tests

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with false → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

4.4
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → SURVIVED Covering tests

341

1.1
Location : combine
Killed by : none
replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → SURVIVED
Covering tests

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::add → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::copyOf → KILLED

342

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → SURVIVED
Covering tests

345

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
Changed increment from 1 to -1 → KILLED

2.2
Location : combine
Killed by : none
Removed increment 1 → TIMED_OUT

352

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with true → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced comparison check with false → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::size → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
changed conditional boundary → KILLED

357

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

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

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

4.4
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed conditional - replaced equality check with true → KILLED

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

6.6
Location : combine
Killed by : none
removed conditional - replaced comparison check with true → NO_COVERAGE

7.7
Location : combine
Killed by : none
removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE

8.8
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
negated conditional → KILLED

358

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::get → KILLED

359

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
negated conditional → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed conditional - replaced equality check with false → KILLED

3.3
Location : combine
Killed by : none
removed conditional - replaced equality check with true → SURVIVED
Covering tests

4.4
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → SURVIVED Covering tests

360

1.1
Location : combine
Killed by : none
replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → SURVIVED
Covering tests

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::add → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/Connection::copyOf → KILLED

361

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → SURVIVED
Covering tests

374

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

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

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
negated conditional → KILLED

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

5.5
Location : combine
Killed by : none
changed conditional boundary → NO_COVERAGE

6.6
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickWorstNoReEnable()]
removed conditional - replaced equality check with true → KILLED

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

8.8
Location : combine
Killed by : none
removed conditional - replaced comparison check with false → NO_COVERAGE

375

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

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

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

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

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

6.6
Location : combine
Killed by : none
removed call to java/util/random/RandomGenerator::nextDouble → NO_COVERAGE

7.7
Location : combine
Killed by : none
Substituted 1.0 with 2.0 → NO_COVERAGE

376

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

377

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

2.2
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::linksCacheContainsConnection → NO_COVERAGE

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

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

378

1.1
Location : combine
Killed by : none
replaced call to net/bmahe/genetics4j/neat/Connection::copyOf with argument → NO_COVERAGE

2.2
Location : combine
Killed by : none
removed call to java/util/List::add → NO_COVERAGE

3.3
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/Connection::copyOf → NO_COVERAGE

379

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::insertInlinksCache → NO_COVERAGE

383

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

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

386

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getNumInputs → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to java/util/List::of → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
replaced return value with Collections.emptyList for net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator::combine → KILLED

387

1.1
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getNumOutputs → KILLED

388

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getMinWeightValue → SURVIVED
Covering tests

389

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::getMaxWeightValue → SURVIVED
Covering tests

2.2
Location : combine
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:combinePickBestReEnable()]
removed call to net/bmahe/genetics4j/neat/chromosomes/NeatChromosome::<init> → KILLED

Active mutators

Tests examined


Report generated by PIT 1.19.6