NeatNodeLayout.java

1
package net.bmahe.genetics4j.neat.spec;
2
3
import java.util.List;
4
5
/**
6
 * Describes the stable external node identities and hidden-node namespace of a NEAT chromosome.
7
 *
8
 * <p>Input and output lists preserve declaration order. That order defines the mapping between external vectors and
9
 * node IDs, while the IDs themselves are opaque and may be sparse. The hidden-node range is half-open: its lower bound
10
 * is inclusive and its upper bound is exclusive.
11
 *
12
 * <p>Implementations must provide non-empty input and output lists containing unique, non-negative, disjoint IDs. No
13
 * external ID may fall inside the hidden-node range. Implementations should also provide value semantics when they are
14
 * used as chromosome layouts.
15
 *
16
 * @see ContiguousNeatNodeLayout
17
 * @see ExplicitNeatNodeLayout
18
 */
19
public interface NeatNodeLayout {
20
21
	/** Exclusive upper bound of the non-negative {@code int} node-ID domain. */
22
	long MAX_NODE_ID_EXCLUSIVE = (long) Integer.MAX_VALUE + 1L;
23
24
	/**
25
	 * Returns input node IDs in external vector order.
26
	 *
27
	 * @return an ordered, non-empty list of input node IDs
28
	 */
29
	List<Integer> inputNodeIds();
30
31
	/**
32
	 * Returns output node IDs in external vector order.
33
	 *
34
	 * @return an ordered, non-empty list of output node IDs
35
	 */
36
	List<Integer> outputNodeIds();
37
38
	/**
39
	 * Returns the first ID reserved for hidden nodes.
40
	 *
41
	 * @return the inclusive hidden-node range start
42
	 */
43
	long hiddenNodeIdStartInclusive();
44
45
	/**
46
	 * Returns the exclusive end of the hidden-node namespace.
47
	 *
48
	 * @return the exclusive hidden-node range end
49
	 */
50
	long hiddenNodeIdEndExclusive();
51
52
	/** @return the number of declared input nodes */
53
	default int numInputs() {
54 3 1. numInputs : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → NO_COVERAGE
2. numInputs : removed call to java/util/List::size → NO_COVERAGE
3. numInputs : replaced int return with 0 for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::numInputs → NO_COVERAGE
		return inputNodeIds().size();
55
	}
56
57
	/** @return the number of declared output nodes */
58
	default int numOutputs() {
59 3 1. numOutputs : removed call to java/util/List::size → NO_COVERAGE
2. numOutputs : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → NO_COVERAGE
3. numOutputs : replaced int return with 0 for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::numOutputs → NO_COVERAGE
		return outputNodeIds().size();
60
	}
61
62
	/**
63
	 * Tests whether an ID identifies an input node.
64
	 *
65
	 * @param nodeId node ID to test
66
	 * @return {@code true} when the ID is a declared input
67
	 */
68
	default boolean isInput(final int nodeId) {
69 5 1. isInput : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → KILLED
2. isInput : replaced boolean return with false for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isInput → KILLED
3. isInput : replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isInput → KILLED
4. isInput : removed call to java/lang/Integer::valueOf → KILLED
5. isInput : removed call to java/util/List::contains → KILLED
		return inputNodeIds().contains(nodeId);
70
	}
71
72
	/**
73
	 * Tests whether an ID identifies an output node.
74
	 *
75
	 * @param nodeId node ID to test
76
	 * @return {@code true} when the ID is a declared output
77
	 */
78
	default boolean isOutput(final int nodeId) {
79 5 1. isOutput : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → KILLED
2. isOutput : removed call to java/util/List::contains → KILLED
3. isOutput : replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isOutput → KILLED
4. isOutput : removed call to java/lang/Integer::valueOf → KILLED
5. isOutput : replaced boolean return with false for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isOutput → KILLED
		return outputNodeIds().contains(nodeId);
80
	}
81
82
	/**
83
	 * Tests whether an ID identifies either an input or output node.
84
	 *
85
	 * @param nodeId node ID to test
86
	 * @return {@code true} when the ID is external
87
	 */
88
	default boolean isExternal(final int nodeId) {
89 11 1. isExternal : removed conditional - replaced equality check with true → KILLED
2. isExternal : Substituted 1 with 0 → KILLED
3. isExternal : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isInput → KILLED
4. isExternal : Substituted 0 with 1 → KILLED
5. isExternal : removed conditional - replaced equality check with false → KILLED
6. isExternal : removed conditional - replaced equality check with false → KILLED
7. isExternal : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isOutput → KILLED
8. isExternal : negated conditional → KILLED
9. isExternal : negated conditional → KILLED
10. isExternal : removed conditional - replaced equality check with true → KILLED
11. isExternal : replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isExternal → KILLED
		return isInput(nodeId) || isOutput(nodeId);
90
	}
91
92
	/**
93
	 * Tests whether an ID belongs to the reserved hidden-node range.
94
	 *
95
	 * @param nodeId node ID to test
96
	 * @return {@code true} when the ID is in the hidden-node namespace
97
	 */
98
	default boolean isHidden(final int nodeId) {
99 13 1. isHidden : removed conditional - replaced comparison check with true → SURVIVED
2. isHidden : changed conditional boundary → SURVIVED
3. isHidden : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdEndExclusive → KILLED
4. isHidden : Substituted 1 with 0 → KILLED
5. isHidden : Substituted 0 with 1 → KILLED
6. isHidden : negated conditional → KILLED
7. isHidden : replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isHidden → KILLED
8. isHidden : removed conditional - replaced comparison check with true → KILLED
9. isHidden : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdStartInclusive → KILLED
10. isHidden : removed conditional - replaced comparison check with false → KILLED
11. isHidden : removed conditional - replaced comparison check with false → KILLED
12. isHidden : changed conditional boundary → KILLED
13. isHidden : negated conditional → KILLED
		return nodeId >= hiddenNodeIdStartInclusive() && nodeId < hiddenNodeIdEndExclusive();
100
	}
101
102
	/**
103
	 * Tests semantic compatibility with another layout.
104
	 *
105
	 * <p>Compatible layouts declare identical ordered input and output IDs and the same hidden-node range. Their
106
	 * concrete
107
	 * implementation classes do not need to match.
108
	 *
109
	 * @param other layout to compare
110
	 * @return {@code true} when chromosomes using the layouts can safely be combined
111
	 */
112
	default boolean isCompatibleWith(final NeatNodeLayout other) {
113 10 1. isCompatibleWith : removed conditional - replaced equality check with true → SURVIVED
2. isCompatibleWith : removed conditional - replaced equality check with false → KILLED
3. isCompatibleWith : removed call to java/util/List::equals → KILLED
4. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → KILLED
5. isCompatibleWith : negated conditional → KILLED
6. isCompatibleWith : replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isCompatibleWith → KILLED
7. isCompatibleWith : removed conditional - replaced equality check with false → KILLED
8. isCompatibleWith : removed conditional - replaced equality check with true → KILLED
9. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → KILLED
10. isCompatibleWith : negated conditional → KILLED
		return other != null && inputNodeIds().equals(other.inputNodeIds())
114 6 1. isCompatibleWith : removed conditional - replaced equality check with true → SURVIVED
2. isCompatibleWith : negated conditional → KILLED
3. isCompatibleWith : removed call to java/util/List::equals → KILLED
4. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → KILLED
5. isCompatibleWith : removed conditional - replaced equality check with false → KILLED
6. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → KILLED
				&& outputNodeIds().equals(other.outputNodeIds())
115 5 1. isCompatibleWith : removed conditional - replaced equality check with true → SURVIVED
2. isCompatibleWith : negated conditional → KILLED
3. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdStartInclusive → KILLED
4. isCompatibleWith : removed conditional - replaced equality check with false → KILLED
5. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdStartInclusive → KILLED
				&& hiddenNodeIdStartInclusive() == other.hiddenNodeIdStartInclusive()
116 7 1. isCompatibleWith : removed conditional - replaced equality check with true → SURVIVED
2. isCompatibleWith : negated conditional → KILLED
3. isCompatibleWith : Substituted 1 with 0 → KILLED
4. isCompatibleWith : Substituted 0 with 1 → KILLED
5. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdEndExclusive → KILLED
6. isCompatibleWith : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdEndExclusive → KILLED
7. isCompatibleWith : removed conditional - replaced equality check with false → KILLED
				&& hiddenNodeIdEndExclusive() == other.hiddenNodeIdEndExclusive();
117
	}
118
119
	/**
120
	 * Creates a traditional contiguous layout with the remainder of the non-negative {@code int} domain reserved for
121
	 * hidden nodes.
122
	 *
123
	 * @param numInputs  number of input nodes; must be positive
124
	 * @param numOutputs number of output nodes; must be positive
125
	 * @return a validated contiguous layout
126
	 */
127
	static NeatNodeLayout contiguous(final int numInputs, final int numOutputs) {
128 1 1. contiguous : Replaced long addition with subtraction → KILLED
		final long hiddenStart = (long) numInputs + numOutputs;
129 3 1. contiguous : replaced return value with null for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::contiguous → KILLED
2. contiguous : Substituted 2147483648 with 2147483649 → KILLED
3. contiguous : removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::contiguous → KILLED
		return contiguous(numInputs, numOutputs, hiddenStart, MAX_NODE_ID_EXCLUSIVE);
130
	}
131
132
	/**
133
	 * Creates a contiguous external layout with an explicit hidden-node range.
134
	 *
135
	 * @param numInputs                  number of input nodes; must be positive
136
	 * @param numOutputs                 number of output nodes; must be positive
137
	 * @param hiddenNodeIdStartInclusive inclusive hidden-node range start
138
	 * @param hiddenNodeIdEndExclusive   exclusive hidden-node range end
139
	 * @return a validated contiguous layout
140
	 */
141
	static NeatNodeLayout contiguous(final int numInputs, final int numOutputs, final long hiddenNodeIdStartInclusive,
142
			final long hiddenNodeIdEndExclusive) {
143 2 1. contiguous : removed call to net/bmahe/genetics4j/neat/spec/ContiguousNeatNodeLayout::<init> → KILLED
2. contiguous : replaced return value with null for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::contiguous → KILLED
		return new ContiguousNeatNodeLayout(numInputs, numOutputs, hiddenNodeIdStartInclusive, hiddenNodeIdEndExclusive);
144
	}
145
146
	/**
147
	 * Creates a layout with explicitly ordered external IDs and a dedicated hidden-node range.
148
	 *
149
	 * @param inputNodeIds               input IDs in vector order
150
	 * @param outputNodeIds              output IDs in vector order
151
	 * @param hiddenNodeIdStartInclusive inclusive hidden-node range start
152
	 * @param hiddenNodeIdEndExclusive   exclusive hidden-node range end
153
	 * @return a validated explicit layout
154
	 */
155
	static NeatNodeLayout explicit(final List<Integer> inputNodeIds, final List<Integer> outputNodeIds,
156
			final long hiddenNodeIdStartInclusive, final long hiddenNodeIdEndExclusive) {
157 2 1. explicit : replaced return value with null for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::explicit → KILLED
2. explicit : removed call to net/bmahe/genetics4j/neat/spec/ExplicitNeatNodeLayout::<init> → KILLED
		return new ExplicitNeatNodeLayout(inputNodeIds,
158
				outputNodeIds,
159
				hiddenNodeIdStartInclusive,
160
				hiddenNodeIdEndExclusive);
161
	}
162
}

Mutations

54

1.1
Location : numInputs
Killed by : none
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → NO_COVERAGE

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

3.3
Location : numInputs
Killed by : none
replaced int return with 0 for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::numInputs → NO_COVERAGE

59

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

2.2
Location : numOutputs
Killed by : none
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → NO_COVERAGE

3.3
Location : numOutputs
Killed by : none
replaced int return with 0 for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::numOutputs → NO_COVERAGE

69

1.1
Location : isInput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → KILLED

2.2
Location : isInput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
replaced boolean return with false for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isInput → KILLED

3.3
Location : isInput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isInput → KILLED

4.4
Location : isInput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to java/lang/Integer::valueOf → KILLED

5.5
Location : isInput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to java/util/List::contains → KILLED

79

1.1
Location : isOutput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → KILLED

2.2
Location : isOutput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to java/util/List::contains → KILLED

3.3
Location : isOutput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isOutput → KILLED

4.4
Location : isOutput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to java/lang/Integer::valueOf → KILLED

5.5
Location : isOutput
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
replaced boolean return with false for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isOutput → KILLED

89

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

2.2
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest]/[method:doesNotSplitDisabledConnection()]
Substituted 1 with 0 → KILLED

3.3
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest]/[method:doesNotSplitDisabledConnection()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isInput → KILLED

4.4
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
Substituted 0 with 1 → KILLED

5.5
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest]/[method:doesNotSplitDisabledConnection()]
removed conditional - replaced equality check with false → KILLED

6.6
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed conditional - replaced equality check with false → KILLED

7.7
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest]/[method:doesNotSplitDisabledConnection()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isOutput → KILLED

8.8
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
negated conditional → KILLED

9.9
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
negated conditional → KILLED

10.10
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.mutation.chromosome.NeatChromosomeAddNodeMutationHandlerTest]/[method:doesNotSplitDisabledConnection()]
removed conditional - replaced equality check with true → KILLED

11.11
Location : isExternal
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isExternal → KILLED

99

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

2.2
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.NodeIdManagerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.NodeIdManagerTest]/[method:skipsExistingIdsAndReportsExhaustion()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdEndExclusive → KILLED

3.3
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.NodeIdManagerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.NodeIdManagerTest]/[method:skipsExistingIdsAndReportsExhaustion()]
Substituted 1 with 0 → KILLED

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

5.5
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.NodeIdManagerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.NodeIdManagerTest]/[method:skipsExistingIdsAndReportsExhaustion()]
negated conditional → KILLED

6.6
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.SparseNodeLayoutIntegrationTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.SparseNodeLayoutIntegrationTest]/[method:chromosomeRejectsNodesOutsideTheLayoutNamespaces()]
replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isHidden → KILLED

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

8.8
Location : isHidden
Killed by : none
changed conditional boundary → SURVIVED Covering tests

9.9
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.SparseNodeLayoutIntegrationTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.SparseNodeLayoutIntegrationTest]/[method:chromosomeRejectsNodesOutsideTheLayoutNamespaces()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdStartInclusive → KILLED

10.10
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.NodeIdManagerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.NodeIdManagerTest]/[method:skipsExistingIdsAndReportsExhaustion()]
removed conditional - replaced comparison check with false → KILLED

11.11
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.NodeIdManagerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.NodeIdManagerTest]/[method:skipsExistingIdsAndReportsExhaustion()]
removed conditional - replaced comparison check with false → KILLED

12.12
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.NodeIdManagerTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.NodeIdManagerTest]/[method:skipsExistingIdsAndReportsExhaustion()]
changed conditional boundary → KILLED

13.13
Location : isHidden
Killed by : net.bmahe.genetics4j.neat.SparseNodeLayoutIntegrationTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.SparseNodeLayoutIntegrationTest]/[method:chromosomeRejectsNodesOutsideTheLayoutNamespaces()]
negated conditional → KILLED

113

1.1
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to java/util/List::equals → KILLED

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

4.4
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → KILLED

5.5
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
negated conditional → KILLED

6.6
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.combination.NeatChromosomeCombinatorTest]/[method:rejectsIncompatibleNodeLayouts()]
replaced boolean return with true for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::isCompatibleWith → KILLED

7.7
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed conditional - replaced equality check with false → KILLED

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

9.9
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::inputNodeIds → KILLED

10.10
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
negated conditional → KILLED

114

1.1
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
negated conditional → KILLED

2.2
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to java/util/List::equals → KILLED

3.3
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → KILLED

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

5.5
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed conditional - replaced equality check with false → KILLED

6.6
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::outputNodeIds → KILLED

115

1.1
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
negated conditional → KILLED

2.2
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdStartInclusive → KILLED

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

4.4
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed conditional - replaced equality check with false → KILLED

5.5
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdStartInclusive → KILLED

116

1.1
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
negated conditional → KILLED

2.2
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
Substituted 1 with 0 → KILLED

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

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

5.5
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdEndExclusive → KILLED

6.6
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::hiddenNodeIdEndExclusive → KILLED

7.7
Location : isCompatibleWith
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:compatibilityIsSemanticAcrossImplementations()]
removed conditional - replaced equality check with false → KILLED

128

1.1
Location : contiguous
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:contiguousLayoutPreservesTraditionalIds()]
Replaced long addition with subtraction → KILLED

129

1.1
Location : contiguous
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:contiguousLayoutPreservesTraditionalIds()]
replaced return value with null for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::contiguous → KILLED

2.2
Location : contiguous
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:contiguousLayoutPreservesTraditionalIds()]
Substituted 2147483648 with 2147483649 → KILLED

3.3
Location : contiguous
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:contiguousLayoutPreservesTraditionalIds()]
removed call to net/bmahe/genetics4j/neat/spec/NeatNodeLayout::contiguous → KILLED

143

1.1
Location : contiguous
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:contiguousLayoutPreservesTraditionalIds()]
removed call to net/bmahe/genetics4j/neat/spec/ContiguousNeatNodeLayout::<init> → KILLED

2.2
Location : contiguous
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:contiguousLayoutPreservesTraditionalIds()]
replaced return value with null for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::contiguous → KILLED

157

1.1
Location : explicit
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
replaced return value with null for net/bmahe/genetics4j/neat/spec/NeatNodeLayout::explicit → KILLED

2.2
Location : explicit
Killed by : net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.neat.spec.NeatNodeLayoutTest]/[method:explicitLayoutPreservesDeclarationOrder()]
removed call to net/bmahe/genetics4j/neat/spec/ExplicitNeatNodeLayout::<init> → KILLED

Active mutators

Tests examined


Report generated by PIT 1.23.1 support