RecurrentNetwork.java

1
package net.bmahe.genetics4j.neat;
2
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.HashMap;
6
import java.util.HashSet;
7
import java.util.List;
8
import java.util.Map;
9
import java.util.Objects;
10
import java.util.Set;
11
import java.util.function.Function;
12
13
import org.apache.commons.collections4.CollectionUtils;
14
import org.apache.commons.lang3.Validate;
15
import org.apache.logging.log4j.LogManager;
16
import org.apache.logging.log4j.Logger;
17
18
/**
19
 * Implements a recurrent neural network evaluator for NEAT chromosomes.
20
 *
21
 * <p>Unlike {@link FeedForwardNetwork}, this implementation can execute arbitrary directed graphs that include
22
 * recurrent (cyclic) connections. Activations are propagated iteratively until they converge or a maximum number of
23
 * iterations is reached, making it suitable for tasks that rely on short-term memory or feedback loops.</p>
24
 */
25
public class RecurrentNetwork {
26
27
	public static final Logger logger = LogManager.getLogger(RecurrentNetwork.class);
28
29
	/** Default maximum number of recurrent iterations. */
30
	public static final int DEFAULT_MAX_ITERATIONS = 12;
31
32
	/** Default convergence threshold applied to node deltas between iterations. */
33
	public static final float DEFAULT_CONVERGENCE_THRESHOLD = 1e-3f;
34
35
	/** Default value assigned to non-input nodes before the first iteration. */
36
	public static final float DEFAULT_INITIAL_STATE_VALUE = 0.0f;
37
38
	private final Set<Integer> inputNodeIndices;
39
	private final Set<Integer> outputNodeIndices;
40
	private final List<Connection> connections;
41
42
	private final Map<Integer, Set<Connection>> backwardConnections;
43
	private final List<Integer> evaluatedNodeIndices;
44
	private final Set<Integer> allNodeIndices;
45
46
	private final Function<Float, Float> activationFunction;
47
	private final int maxIterations;
48
	private final float convergenceThreshold;
49
	private final float initialStateValue;
50
	private final Map<Integer, Float> nodeState;
51
52
	public RecurrentNetwork(final Set<Integer> _inputNodeIndices,
53
			final Set<Integer> _outputNodeIndices,
54
			final List<Connection> _connections,
55
			final Function<Float, Float> _activationFunction) {
56 3 1. <init> : Substituted 12 with 13 → NO_COVERAGE
2. <init> : Substituted 0.001 with 1.0 → NO_COVERAGE
3. <init> : Substituted 0.0 with 1.0 → NO_COVERAGE
		this(_inputNodeIndices,
57
				_outputNodeIndices,
58
				_connections,
59
				_activationFunction,
60
				DEFAULT_MAX_ITERATIONS,
61
				DEFAULT_CONVERGENCE_THRESHOLD,
62
				DEFAULT_INITIAL_STATE_VALUE);
63
	}
64
65
	public RecurrentNetwork(final Set<Integer> _inputNodeIndices,
66
			final Set<Integer> _outputNodeIndices,
67
			final List<Connection> _connections,
68
			final Function<Float, Float> _activationFunction,
69
			final int _maxIterations,
70
			final float _convergenceThreshold,
71
			final float _initialStateValue) {
72
		Validate.isTrue(CollectionUtils.isNotEmpty(_inputNodeIndices));
73
		Validate.isTrue(CollectionUtils.isNotEmpty(_outputNodeIndices));
74
		Objects.requireNonNull(_connections);
75
		Objects.requireNonNull(_activationFunction);
76
		Validate.isTrue(_maxIterations > 0, "maxIterations must be strictly positive");
77
		Validate.isTrue(_convergenceThreshold >= 0.0f, "convergenceThreshold must be non-negative");
78
79 4 1. <init> : replaced call to java/util/Collections::unmodifiableSet with argument → SURVIVED
2. <init> : removed call to java/util/Collections::unmodifiableSet → KILLED
3. <init> : removed call to java/util/HashSet::<init> → KILLED
4. <init> : Removed assignment to member variable inputNodeIndices → KILLED
		this.inputNodeIndices = Collections.unmodifiableSet(new HashSet<>(_inputNodeIndices));
80 4 1. <init> : replaced call to java/util/Collections::unmodifiableSet with argument → SURVIVED
2. <init> : Removed assignment to member variable outputNodeIndices → KILLED
3. <init> : removed call to java/util/HashSet::<init> → KILLED
4. <init> : removed call to java/util/Collections::unmodifiableSet → KILLED
		this.outputNodeIndices = Collections.unmodifiableSet(new HashSet<>(_outputNodeIndices));
81 4 1. <init> : replaced call to java/util/Collections::unmodifiableList with argument → SURVIVED
2. <init> : removed call to java/util/Collections::unmodifiableList → KILLED
3. <init> : Removed assignment to member variable connections → KILLED
4. <init> : removed call to java/util/ArrayList::<init> → KILLED
		this.connections = Collections.unmodifiableList(new ArrayList<>(_connections));
82 1 1. <init> : Removed assignment to member variable activationFunction → KILLED
		this.activationFunction = _activationFunction;
83 1 1. <init> : Removed assignment to member variable maxIterations → KILLED
		this.maxIterations = _maxIterations;
84 1 1. <init> : Removed assignment to member variable convergenceThreshold → SURVIVED
		this.convergenceThreshold = _convergenceThreshold;
85 1 1. <init> : Removed assignment to member variable initialStateValue → SURVIVED
		this.initialStateValue = _initialStateValue;
86
87 1 1. <init> : removed call to net/bmahe/genetics4j/neat/NeatUtils::computeBackwardConnections → KILLED
		final Map<Integer, Set<Connection>> backward = NeatUtils.computeBackwardConnections(this.connections);
88 3 1. <init> : replaced call to java/util/Collections::unmodifiableMap with argument → SURVIVED
2. <init> : Removed assignment to member variable backwardConnections → KILLED
3. <init> : removed call to java/util/Collections::unmodifiableMap → KILLED
		this.backwardConnections = Collections.unmodifiableMap(backward);
89
90 1 1. <init> : removed call to java/util/HashSet::<init> → KILLED
		final Set<Integer> allNodes = new HashSet<>(this.inputNodeIndices);
91 1 1. <init> : removed call to java/util/Set::addAll → SURVIVED
		allNodes.addAll(this.outputNodeIndices);
92
		for (final Connection connection : this.connections) {
93 3 1. <init> : removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → SURVIVED
2. <init> : removed call to java/util/Set::add → SURVIVED
3. <init> : removed call to java/lang/Integer::valueOf → KILLED
			allNodes.add(connection.fromNodeIndex());
94 3 1. <init> : removed call to net/bmahe/genetics4j/neat/Connection::toNodeIndex → SURVIVED
2. <init> : removed call to java/util/Set::add → SURVIVED
3. <init> : removed call to java/lang/Integer::valueOf → KILLED
			allNodes.add(connection.toNodeIndex());
95
		}
96
97 3 1. <init> : replaced call to java/util/Collections::unmodifiableSet with argument → SURVIVED
2. <init> : removed call to java/util/Collections::unmodifiableSet → KILLED
3. <init> : Removed assignment to member variable allNodeIndices → KILLED
		this.allNodeIndices = Collections.unmodifiableSet(allNodes);
98 3 1. <init> : replaced call to java/util/Collections::unmodifiableList with argument → SURVIVED
2. <init> : Removed assignment to member variable evaluatedNodeIndices → KILLED
3. <init> : removed call to java/util/Collections::unmodifiableList → KILLED
		this.evaluatedNodeIndices = Collections.unmodifiableList(
99 1 1. <init> : removed call to java/util/Set::stream → KILLED
				this.allNodeIndices.stream()
100 9 1. lambda$new$0 : negated conditional → KILLED
2. lambda$new$0 : Substituted 0 with 1 → KILLED
3. <init> : removed call to java/util/stream/Stream::filter → KILLED
4. lambda$new$0 : removed call to java/util/Set::contains → KILLED
5. lambda$new$0 : removed conditional - replaced equality check with true → KILLED
6. lambda$new$0 : Substituted 1 with 0 → KILLED
7. lambda$new$0 : removed conditional - replaced equality check with false → KILLED
8. <init> : replaced call to java/util/stream/Stream::filter with receiver → KILLED
9. lambda$new$0 : replaced boolean return with true for net/bmahe/genetics4j/neat/RecurrentNetwork::lambda$new$0 → KILLED
						.filter(nodeIndex -> this.inputNodeIndices.contains(nodeIndex) == false)
101 2 1. <init> : replaced call to java/util/stream/Stream::sorted with receiver → SURVIVED
2. <init> : removed call to java/util/stream/Stream::sorted → KILLED
						.sorted()
102 1 1. <init> : removed call to java/util/stream/Stream::toList → KILLED
						.toList());
103 2 1. <init> : removed call to java/util/HashMap::<init> → KILLED
2. <init> : Removed assignment to member variable nodeState → KILLED
		this.nodeState = new HashMap<>();
104 1 1. <init> : removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::resetState → SURVIVED
		resetState();
105
	}
106
107
	public Map<Integer, Float> compute(final Map<Integer, Float> inputValues) {
108 1 1. compute : removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::resetState → SURVIVED
		resetState();
109 3 1. compute : replaced call to net/bmahe/genetics4j/neat/RecurrentNetwork::step with argument → KILLED
2. compute : replaced return value with Collections.emptyMap for net/bmahe/genetics4j/neat/RecurrentNetwork::compute → KILLED
3. compute : removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::step → KILLED
		return step(inputValues);
110
	}
111
112
	public Map<Integer, Float> step(final Map<Integer, Float> inputValues) {
113
		Objects.requireNonNull(inputValues);
114
		Validate.isTrue(
115 9 1. step : Substituted 2 with 3 → SURVIVED
2. step : Substituted 0 with 1 → SURVIVED
3. step : removed conditional - replaced equality check with true → SURVIVED
4. step : Substituted 0 with 1 → NO_COVERAGE
5. step : removed call to java/util/Set::size → KILLED
6. step : removed conditional - replaced equality check with false → KILLED
7. step : negated conditional → KILLED
8. step : Substituted 1 with 0 → KILLED
9. step : removed call to java/util/Map::size → KILLED
				inputValues.size() == inputNodeIndices.size(),
116
					"Missing input values: expected %d entries but found %d",
117 3 1. step : removed call to java/util/Set::size → SURVIVED
2. step : Substituted 1 with 0 → SURVIVED
3. step : removed call to java/lang/Integer::valueOf → SURVIVED
					inputNodeIndices.size(),
118 2 1. step : removed call to java/util/Map::size → SURVIVED
2. step : removed call to java/lang/Integer::valueOf → SURVIVED
					inputValues.size());
119
120
		for (final Integer inputNodeIndex : inputNodeIndices) {
121 4 1. step : removed conditional - replaced equality check with false → SURVIVED
2. step : removed conditional - replaced equality check with true → KILLED
3. step : negated conditional → KILLED
4. step : removed call to java/util/Map::containsKey → KILLED
			if (inputValues.containsKey(inputNodeIndex) == false) {
122 1 1. step : removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE
				throw new IllegalArgumentException("Input vector missing values for input node " + inputNodeIndex);
123
			}
124
		}
125
126 1 1. step : removed call to java/util/HashMap::<init> → KILLED
		final Map<Integer, Float> previousValues = new HashMap<>(nodeState);
127
		for (final Integer inputNodeIndex : inputNodeIndices) {
128 4 1. step : removed call to java/util/Map::put → KILLED
2. step : removed call to java/util/Map::get → KILLED
3. step : replaced call to java/util/Map::put with argument → KILLED
4. step : replaced call to java/util/Map::get with argument → KILLED
			previousValues.put(inputNodeIndex, inputValues.get(inputNodeIndex));
129
		}
130
131
		Map<Integer, Float> currentValues = previousValues;
132
133 5 1. step : changed conditional boundary → KILLED
2. step : Substituted 0 with 1 → KILLED
3. step : negated conditional → KILLED
4. step : removed conditional - replaced comparison check with true → KILLED
5. step : removed conditional - replaced comparison check with false → KILLED
		for (int iteration = 0; iteration < maxIterations; iteration++) {
134 1 1. step : removed call to java/util/HashMap::<init> → KILLED
			final Map<Integer, Float> nextValues = new HashMap<>(currentValues);
135
136 1 1. step : Substituted 0.0 with 1.0 → SURVIVED
			float maxDelta = 0.0f;
137
			for (final Integer nodeIndex : evaluatedNodeIndices) {
138 3 1. step : removed call to java/util/Set::of → SURVIVED
2. step : removed call to java/util/Map::getOrDefault → KILLED
3. step : replaced call to java/util/Map::getOrDefault with argument → KILLED
				final Set<Connection> incomingConnections = backwardConnections.getOrDefault(nodeIndex, Set.of());
139
140 1 1. step : Substituted 0.0 with 1.0 → KILLED
				float sum = 0.0f;
141
				for (final Connection incomingConnection : incomingConnections) {
142 1 1. step : removed call to net/bmahe/genetics4j/neat/Connection::weight → KILLED
					final float weight = incomingConnection.weight();
143
					final float incomingValue = currentValues
144 6 1. step : removed call to java/lang/Float::valueOf → SURVIVED
2. step : removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → KILLED
3. step : removed call to java/lang/Integer::valueOf → KILLED
4. step : removed call to java/lang/Float::floatValue → KILLED
5. step : removed call to java/util/Map::getOrDefault → KILLED
6. step : replaced call to java/util/Map::getOrDefault with argument → KILLED
							.getOrDefault(incomingConnection.fromNodeIndex(), initialStateValue);
145 2 1. step : Replaced float addition with subtraction → KILLED
2. step : Replaced float multiplication with division → KILLED
					sum += weight * incomingValue;
146
				}
147
148 4 1. step : replaced call to java/util/function/Function::apply with argument → KILLED
2. step : removed call to java/lang/Float::valueOf → KILLED
3. step : removed call to java/lang/Float::floatValue → KILLED
4. step : removed call to java/util/function/Function::apply → KILLED
				final float newValue = activationFunction.apply(sum);
149 4 1. step : removed call to java/lang/Float::floatValue → SURVIVED
2. step : replaced call to java/util/Map::getOrDefault with argument → SURVIVED
3. step : removed call to java/lang/Float::valueOf → SURVIVED
4. step : removed call to java/util/Map::getOrDefault → KILLED
				final float previousValue = currentValues.getOrDefault(nodeIndex, initialStateValue);
150 3 1. step : removed call to java/util/Map::put → KILLED
2. step : replaced call to java/util/Map::put with argument → KILLED
3. step : removed call to java/lang/Float::valueOf → KILLED
				nextValues.put(nodeIndex, newValue);
151 3 1. step : Replaced float subtraction with addition → SURVIVED
2. step : removed call to java/lang/Math::abs → KILLED
3. step : replaced call to java/lang/Math::abs with argument → KILLED
				final float delta = Math.abs(newValue - previousValue);
152 4 1. step : changed conditional boundary → SURVIVED
2. step : negated conditional → KILLED
3. step : removed conditional - replaced comparison check with false → KILLED
4. step : removed conditional - replaced comparison check with true → KILLED
				if (delta > maxDelta) {
153
					maxDelta = delta;
154
				}
155
			}
156
157
			currentValues = nextValues;
158
159 4 1. step : changed conditional boundary → SURVIVED
2. step : removed conditional - replaced comparison check with false → SURVIVED
3. step : negated conditional → KILLED
4. step : removed conditional - replaced comparison check with true → KILLED
			if (maxDelta <= convergenceThreshold) {
160
				break;
161
			}
162
		}
163
164 1 1. step : removed call to java/util/Map::clear → SURVIVED
		nodeState.clear();
165 1 1. step : removed call to java/util/Map::putAll → KILLED
		nodeState.putAll(currentValues);
166
167 3 1. step : replaced call to net/bmahe/genetics4j/neat/RecurrentNetwork::buildOutputValues with argument → SURVIVED
2. step : replaced return value with Collections.emptyMap for net/bmahe/genetics4j/neat/RecurrentNetwork::step → KILLED
3. step : removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::buildOutputValues → KILLED
		return buildOutputValues(currentValues);
168
	}
169
170
	public void resetState() {
171 1 1. resetState : removed call to java/util/Map::clear → SURVIVED
		nodeState.clear();
172
		for (final Integer nodeIndex : allNodeIndices) {
173 3 1. resetState : replaced call to java/util/Map::put with argument → SURVIVED
2. resetState : removed call to java/util/Map::put → SURVIVED
3. resetState : removed call to java/lang/Float::valueOf → KILLED
			nodeState.put(nodeIndex, initialStateValue);
174
		}
175
	}
176
177
	private Map<Integer, Float> buildOutputValues(final Map<Integer, Float> nodeValues) {
178 1 1. buildOutputValues : removed call to java/util/HashMap::<init> → KILLED
		final Map<Integer, Float> outputValues = new HashMap<>();
179
		for (final Integer outputNodeIndex : outputNodeIndices) {
180 2 1. buildOutputValues : removed call to java/util/Map::get → KILLED
2. buildOutputValues : replaced call to java/util/Map::get with argument → KILLED
			final Float value = nodeValues.get(outputNodeIndex);
181 3 1. buildOutputValues : removed conditional - replaced equality check with false → SURVIVED
2. buildOutputValues : removed conditional - replaced equality check with true → KILLED
3. buildOutputValues : negated conditional → KILLED
			if (value == null) {
182 1 1. buildOutputValues : removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE
				throw new IllegalArgumentException("Missing output value for node " + outputNodeIndex);
183
			}
184 2 1. buildOutputValues : removed call to java/util/Map::put → KILLED
2. buildOutputValues : replaced call to java/util/Map::put with argument → KILLED
			outputValues.put(outputNodeIndex, value);
185
		}
186 1 1. buildOutputValues : replaced return value with Collections.emptyMap for net/bmahe/genetics4j/neat/RecurrentNetwork::buildOutputValues → KILLED
		return outputValues;
187
	}
188
}

Mutations

56

1.1
Location : <init>
Killed by : none
Substituted 12 with 13 → NO_COVERAGE

2.2
Location : <init>
Killed by : none
Substituted 0.001 with 1.0 → NO_COVERAGE

3.3
Location : <init>
Killed by : none
Substituted 0.0 with 1.0 → NO_COVERAGE

79

1.1
Location : <init>
Killed by : none
replaced call to java/util/Collections::unmodifiableSet with argument → SURVIVED
Covering tests

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Collections::unmodifiableSet → KILLED

3.3
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/HashSet::<init> → KILLED

4.4
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Removed assignment to member variable inputNodeIndices → KILLED

80

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

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/HashSet::<init> → KILLED

3.3
Location : <init>
Killed by : none
replaced call to java/util/Collections::unmodifiableSet with argument → SURVIVED
Covering tests

4.4
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Collections::unmodifiableSet → KILLED

81

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Collections::unmodifiableList → KILLED

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Removed assignment to member variable connections → KILLED

3.3
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/ArrayList::<init> → KILLED

4.4
Location : <init>
Killed by : none
replaced call to java/util/Collections::unmodifiableList with argument → SURVIVED
Covering tests

82

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

83

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

84

1.1
Location : <init>
Killed by : none
Removed assignment to member variable convergenceThreshold → SURVIVED
Covering tests

85

1.1
Location : <init>
Killed by : none
Removed assignment to member variable initialStateValue → SURVIVED
Covering tests

87

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to net/bmahe/genetics4j/neat/NeatUtils::computeBackwardConnections → KILLED

88

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

2.2
Location : <init>
Killed by : none
replaced call to java/util/Collections::unmodifiableMap with argument → SURVIVED
Covering tests

3.3
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Collections::unmodifiableMap → KILLED

90

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/HashSet::<init> → KILLED

91

1.1
Location : <init>
Killed by : none
removed call to java/util/Set::addAll → SURVIVED
Covering tests

93

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

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Integer::valueOf → KILLED

3.3
Location : <init>
Killed by : none
removed call to java/util/Set::add → SURVIVED Covering tests

94

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

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Integer::valueOf → KILLED

3.3
Location : <init>
Killed by : none
removed call to java/util/Set::add → SURVIVED Covering tests

97

1.1
Location : <init>
Killed by : none
replaced call to java/util/Collections::unmodifiableSet with argument → SURVIVED
Covering tests

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Collections::unmodifiableSet → KILLED

3.3
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Removed assignment to member variable allNodeIndices → KILLED

98

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

2.2
Location : <init>
Killed by : none
replaced call to java/util/Collections::unmodifiableList with argument → SURVIVED
Covering tests

3.3
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Collections::unmodifiableList → KILLED

99

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Set::stream → KILLED

100

1.1
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

2.2
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Substituted 0 with 1 → KILLED

3.3
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/stream/Stream::filter → KILLED

4.4
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Set::contains → KILLED

5.5
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed conditional - replaced equality check with true → KILLED

6.6
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Substituted 1 with 0 → KILLED

7.7
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed conditional - replaced equality check with false → KILLED

8.8
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/stream/Stream::filter with receiver → KILLED

9.9
Location : lambda$new$0
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced boolean return with true for net/bmahe/genetics4j/neat/RecurrentNetwork::lambda$new$0 → KILLED

101

1.1
Location : <init>
Killed by : none
replaced call to java/util/stream/Stream::sorted with receiver → SURVIVED
Covering tests

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

102

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

103

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

2.2
Location : <init>
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Removed assignment to member variable nodeState → KILLED

104

1.1
Location : <init>
Killed by : none
removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::resetState → SURVIVED
Covering tests

108

1.1
Location : compute
Killed by : none
removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::resetState → SURVIVED
Covering tests

109

1.1
Location : compute
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to net/bmahe/genetics4j/neat/RecurrentNetwork::step with argument → KILLED

2.2
Location : compute
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced return value with Collections.emptyMap for net/bmahe/genetics4j/neat/RecurrentNetwork::compute → KILLED

3.3
Location : compute
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::step → KILLED

115

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Set::size → KILLED

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

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

4.4
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Substituted 1 with 0 → KILLED

5.5
Location : step
Killed by : none
Substituted 2 with 3 → SURVIVED
Covering tests

6.6
Location : step
Killed by : none
Substituted 0 with 1 → SURVIVED Covering tests

7.7
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::size → KILLED

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

9.9
Location : step
Killed by : none
Substituted 0 with 1 → NO_COVERAGE

117

1.1
Location : step
Killed by : none
removed call to java/util/Set::size → SURVIVED
Covering tests

2.2
Location : step
Killed by : none
Substituted 1 with 0 → SURVIVED Covering tests

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

118

1.1
Location : step
Killed by : none
removed call to java/util/Map::size → SURVIVED
Covering tests

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

121

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

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed conditional - replaced equality check with true → KILLED

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

4.4
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::containsKey → KILLED

122

1.1
Location : step
Killed by : none
removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE

126

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

128

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::put → KILLED

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

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::put with argument → KILLED

4.4
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::get with argument → KILLED

133

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:stepMaintainsStateAcrossTimesteps()]
changed conditional boundary → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:stepMaintainsStateAcrossTimesteps()]
Substituted 0 with 1 → KILLED

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

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

5.5
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed conditional - replaced comparison check with false → KILLED

134

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

136

1.1
Location : step
Killed by : none
Substituted 0.0 with 1.0 → SURVIVED
Covering tests

138

1.1
Location : step
Killed by : none
removed call to java/util/Set::of → SURVIVED
Covering tests

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::getOrDefault → KILLED

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::getOrDefault with argument → KILLED

140

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Substituted 0.0 with 1.0 → KILLED

142

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to net/bmahe/genetics4j/neat/Connection::weight → KILLED

144

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to net/bmahe/genetics4j/neat/Connection::fromNodeIndex → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Integer::valueOf → KILLED

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Float::floatValue → KILLED

4.4
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::getOrDefault → KILLED

5.5
Location : step
Killed by : none
removed call to java/lang/Float::valueOf → SURVIVED
Covering tests

6.6
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::getOrDefault with argument → KILLED

145

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:stepMaintainsStateAcrossTimesteps()]
Replaced float addition with subtraction → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
Replaced float multiplication with division → KILLED

148

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkMatchesFeedForwardOnAcyclicGraphs()]
replaced call to java/util/function/Function::apply with argument → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Float::valueOf → KILLED

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Float::floatValue → KILLED

4.4
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/function/Function::apply → KILLED

149

1.1
Location : step
Killed by : none
removed call to java/lang/Float::floatValue → SURVIVED
Covering tests

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::getOrDefault → KILLED

3.3
Location : step
Killed by : none
replaced call to java/util/Map::getOrDefault with argument → SURVIVED Covering tests

4.4
Location : step
Killed by : none
removed call to java/lang/Float::valueOf → SURVIVED Covering tests

150

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::put → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::put with argument → KILLED

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Float::valueOf → KILLED

151

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Math::abs → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkMatchesFeedForwardOnAcyclicGraphs()]
replaced call to java/lang/Math::abs with argument → KILLED

3.3
Location : step
Killed by : none
Replaced float subtraction with addition → SURVIVED
Covering tests

152

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

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

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed conditional - replaced comparison check with true → KILLED

4.4
Location : step
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

159

1.1
Location : step
Killed by : none
changed conditional boundary → SURVIVED
Covering tests

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

3.3
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

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

164

1.1
Location : step
Killed by : none
removed call to java/util/Map::clear → SURVIVED
Covering tests

165

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:stepMaintainsStateAcrossTimesteps()]
removed call to java/util/Map::putAll → KILLED

167

1.1
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced return value with Collections.emptyMap for net/bmahe/genetics4j/neat/RecurrentNetwork::step → KILLED

2.2
Location : step
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to net/bmahe/genetics4j/neat/RecurrentNetwork::buildOutputValues → KILLED

3.3
Location : step
Killed by : none
replaced call to net/bmahe/genetics4j/neat/RecurrentNetwork::buildOutputValues with argument → SURVIVED
Covering tests

171

1.1
Location : resetState
Killed by : none
removed call to java/util/Map::clear → SURVIVED
Covering tests

173

1.1
Location : resetState
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/lang/Float::valueOf → KILLED

2.2
Location : resetState
Killed by : none
replaced call to java/util/Map::put with argument → SURVIVED
Covering tests

3.3
Location : resetState
Killed by : none
removed call to java/util/Map::put → SURVIVED Covering tests

178

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

180

1.1
Location : buildOutputValues
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::get → KILLED

2.2
Location : buildOutputValues
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::get with argument → KILLED

181

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

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

3.3
Location : buildOutputValues
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
negated conditional → KILLED

182

1.1
Location : buildOutputValues
Killed by : none
removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE

184

1.1
Location : buildOutputValues
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
removed call to java/util/Map::put → KILLED

2.2
Location : buildOutputValues
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced call to java/util/Map::put with argument → KILLED

186

1.1
Location : buildOutputValues
Killed by : net.bmahe.genetics4j.neat.RecurrentNetworkTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.RecurrentNetworkTest]/[method:recurrentNetworkResetsBetweenComputations()]
replaced return value with Collections.emptyMap for net/bmahe/genetics4j/neat/RecurrentNetwork::buildOutputValues → KILLED

Active mutators

Tests examined


Report generated by PIT 1.20.3