NodeReplacementMutator.java

1
package net.bmahe.genetics4j.gp.mutation;
2
3
import java.util.List;
4
import java.util.Objects;
5
import java.util.Set;
6
import java.util.random.RandomGenerator;
7
import java.util.stream.Collectors;
8
import java.util.stream.Stream;
9
10
import org.apache.commons.lang3.Validate;
11
12
import net.bmahe.genetics4j.core.Genotype;
13
import net.bmahe.genetics4j.core.chromosomes.Chromosome;
14
import net.bmahe.genetics4j.core.chromosomes.TreeChromosome;
15
import net.bmahe.genetics4j.core.chromosomes.TreeNode;
16
import net.bmahe.genetics4j.core.mutation.Mutator;
17
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
18
import net.bmahe.genetics4j.core.spec.chromosome.ChromosomeSpec;
19
import net.bmahe.genetics4j.gp.Operation;
20
import net.bmahe.genetics4j.gp.OperationFactory;
21
import net.bmahe.genetics4j.gp.program.Program;
22
import net.bmahe.genetics4j.gp.program.ProgramHelper;
23
import net.bmahe.genetics4j.gp.spec.chromosome.ProgramTreeChromosomeSpec;
24
25
public class NodeReplacementMutator implements Mutator {
26
27
	private final ProgramHelper programHelper;
28
	private final RandomGenerator randomGenerator;
29
	private final AbstractEAConfiguration eaConfiguration;
30
	private final double populationMutationProbability;
31
32
	public NodeReplacementMutator(final ProgramHelper _programHelper, final RandomGenerator _randomGenerator,
33
			final AbstractEAConfiguration _eaConfiguration, final double populationMutationProbability) {
34
		Objects.requireNonNull(_programHelper);
35
		Objects.requireNonNull(_randomGenerator);
36
		Objects.requireNonNull(_eaConfiguration);
37
		Validate.inclusiveBetween(0.0, 1.0, populationMutationProbability);
38
39 1 1. <init> : Removed assignment to member variable programHelper → SURVIVED
		this.programHelper = _programHelper;
40 1 1. <init> : Removed assignment to member variable randomGenerator → KILLED
		this.randomGenerator = _randomGenerator;
41 1 1. <init> : Removed assignment to member variable eaConfiguration → SURVIVED
		this.eaConfiguration = _eaConfiguration;
42 1 1. <init> : Removed assignment to member variable populationMutationProbability → SURVIVED
		this.populationMutationProbability = populationMutationProbability;
43
	}
44
45
	protected TreeNode<Operation<?>> duplicateNode(final Program program, final TreeNode<Operation<?>> root,
46
			final int cutPoint, final int nodeIndex) {
47
		Objects.requireNonNull(root);
48
		Validate.isTrue(cutPoint >= 0);
49
50 1 1. duplicateNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → KILLED
		final Operation<?> rootData = root.getData();
51 1 1. duplicateNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getChildren → KILLED
		final List<TreeNode<Operation<?>>> children = root.getChildren();
52
53 1 1. duplicateNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
		final TreeNode<Operation<?>> duplicateRoot = new TreeNode<Operation<?>>(rootData);
54
55 2 1. duplicateNode : Substituted 1 with 0 → SURVIVED
2. duplicateNode : Replaced integer addition with subtraction → SURVIVED
		int currentIndex = nodeIndex + 1;
56 6 1. duplicateNode : negated conditional → KILLED
2. duplicateNode : removed conditional - replaced comparison check with true → KILLED
3. duplicateNode : removed conditional - replaced comparison check with false → KILLED
4. duplicateNode : removed call to java/util/List::size → KILLED
5. duplicateNode : Substituted 0 with 1 → KILLED
6. duplicateNode : changed conditional boundary → KILLED
		for (int i = 0; i < children.size(); i++) {
57 1 1. duplicateNode : removed call to java/util/List::get → KILLED
			final TreeNode<Operation<?>> treeNode = children.get(i);
58 1 1. duplicateNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getSize → SURVIVED
			final int childSize = treeNode.getSize();
59
60 2 1. duplicateNode : replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode with argument → SURVIVED
2. duplicateNode : removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED
			final TreeNode<Operation<?>> childCopy = duplicateAndReplaceNode(program, treeNode, cutPoint, currentIndex);
61 1 1. duplicateNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → KILLED
			duplicateRoot.addChild(childCopy);
62 1 1. duplicateNode : Replaced integer addition with subtraction → SURVIVED
			currentIndex += childSize;
63
		}
64
65 1 1. duplicateNode : replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode → KILLED
		return duplicateRoot;
66
	}
67
68
	protected List<OperationFactory> findReplacementCandidates(final Program program,
69
			final TreeNode<Operation<?>> root) {
70
		Objects.requireNonNull(root);
71
72 1 1. findReplacementCandidates : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → KILLED
		final Operation<?> rootData = root.getData();
73
74 1 1. findReplacementCandidates : removed call to net/bmahe/genetics4j/gp/Operation::returnedType → KILLED
		final Class returnedType = rootData.returnedType();
75 1 1. findReplacementCandidates : removed call to net/bmahe/genetics4j/gp/Operation::acceptedTypes → KILLED
		final List<Class> acceptedTypes = rootData.acceptedTypes();
76
77 1 1. findReplacementCandidates : removed call to net/bmahe/genetics4j/gp/program/Program::functions → KILLED
		final Set<OperationFactory> functions = program.functions();
78 1 1. findReplacementCandidates : removed call to net/bmahe/genetics4j/gp/program/Program::terminal → KILLED
		final Set<OperationFactory> terminals = program.terminal();
79
80 4 1. findReplacementCandidates : replaced call to java/util/stream/Stream::concat with argument → SURVIVED
2. findReplacementCandidates : removed call to java/util/stream/Stream::concat → KILLED
3. findReplacementCandidates : removed call to java/util/Set::stream → KILLED
4. findReplacementCandidates : removed call to java/util/Set::stream → KILLED
		final List<OperationFactory> candidates = Stream.concat(functions.stream(), terminals.stream())
81 2 1. findReplacementCandidates : replaced call to java/util/stream/Stream::filter with receiver → SURVIVED
2. findReplacementCandidates : removed call to java/util/stream/Stream::filter → KILLED
				.filter(opFactory -> {
82 2 1. lambda$findReplacementCandidates$0 : removed call to net/bmahe/genetics4j/gp/OperationFactory::returnedType → KILLED
2. lambda$findReplacementCandidates$0 : removed call to java/lang/Class::isAssignableFrom → KILLED
					final boolean b = returnedType.isAssignableFrom(opFactory.returnedType());
83 2 1. lambda$findReplacementCandidates$0 : replaced boolean return with true for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$0 → SURVIVED
2. lambda$findReplacementCandidates$0 : replaced boolean return with false for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$0 → KILLED
					return b;
84
				})
85 2 1. findReplacementCandidates : replaced call to java/util/stream/Stream::filter with receiver → KILLED
2. findReplacementCandidates : removed call to java/util/stream/Stream::filter → KILLED
				.filter(opFactory -> {
86
87 5 1. lambda$findReplacementCandidates$1 : removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED
2. lambda$findReplacementCandidates$1 : removed conditional - replaced equality check with false → KILLED
3. lambda$findReplacementCandidates$1 : negated conditional → KILLED
4. lambda$findReplacementCandidates$1 : removed conditional - replaced equality check with true → KILLED
5. lambda$findReplacementCandidates$1 : removed call to java/util/List::size → KILLED
					if (opFactory.acceptedTypes().length != acceptedTypes.size()) {
88 2 1. lambda$findReplacementCandidates$1 : Substituted 0 with 1 → KILLED
2. lambda$findReplacementCandidates$1 : replaced boolean return with true for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$1 → KILLED
						return false;
89
					}
90
91 6 1. lambda$findReplacementCandidates$1 : removed conditional - replaced comparison check with false → KILLED
2. lambda$findReplacementCandidates$1 : changed conditional boundary → KILLED
3. lambda$findReplacementCandidates$1 : removed call to java/util/List::size → KILLED
4. lambda$findReplacementCandidates$1 : Substituted 0 with 1 → KILLED
5. lambda$findReplacementCandidates$1 : removed conditional - replaced comparison check with true → KILLED
6. lambda$findReplacementCandidates$1 : negated conditional → KILLED
					for (int i = 0; i < acceptedTypes.size(); i++) {
92
93 1 1. lambda$findReplacementCandidates$1 : removed call to java/util/List::get → KILLED
						if (acceptedTypes.get(i)
94 5 1. lambda$findReplacementCandidates$1 : removed conditional - replaced equality check with true → SURVIVED
2. lambda$findReplacementCandidates$1 : removed call to java/lang/Class::isAssignableFrom → SURVIVED
3. lambda$findReplacementCandidates$1 : removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED
4. lambda$findReplacementCandidates$1 : removed conditional - replaced equality check with false → KILLED
5. lambda$findReplacementCandidates$1 : negated conditional → KILLED
								.isAssignableFrom(opFactory.acceptedTypes()[i]) == false) {
95 2 1. lambda$findReplacementCandidates$1 : replaced boolean return with true for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$1 → KILLED
2. lambda$findReplacementCandidates$1 : Substituted 0 with 1 → KILLED
							return false;
96
						}
97
					}
98
99 2 1. lambda$findReplacementCandidates$1 : replaced boolean return with false for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$1 → KILLED
2. lambda$findReplacementCandidates$1 : Substituted 1 with 0 → KILLED
					return true;
100
				})
101 2 1. findReplacementCandidates : removed call to java/util/stream/Collectors::toList → KILLED
2. findReplacementCandidates : removed call to java/util/stream/Stream::collect → KILLED
				.collect(Collectors.toList());
102
103 1 1. findReplacementCandidates : replaced return value with Collections.emptyList for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::findReplacementCandidates → KILLED
		return candidates;
104
	}
105
106
	protected TreeNode<Operation<?>> duplicateAndReplaceNode(final Program program, final TreeNode<Operation<?>> root,
107
			final int cutPoint, final int nodeIndex) {
108
		Objects.requireNonNull(root);
109
		Validate.isTrue(cutPoint >= 0);
110
111 1 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → SURVIVED
		final Operation<?> rootData = root.getData();
112
113 3 1. duplicateAndReplaceNode : removed conditional - replaced equality check with false → SURVIVED
2. duplicateAndReplaceNode : removed conditional - replaced equality check with true → KILLED
3. duplicateAndReplaceNode : negated conditional → KILLED
		if (nodeIndex == cutPoint) {
114
115 1 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::findReplacementCandidates → KILLED
			final List<OperationFactory> candidates = findReplacementCandidates(program, root);
116
117 5 1. duplicateAndReplaceNode : removed conditional - replaced comparison check with true → SURVIVED
2. duplicateAndReplaceNode : negated conditional → SURVIVED
3. duplicateAndReplaceNode : changed conditional boundary → SURVIVED
4. duplicateAndReplaceNode : removed call to java/util/List::size → SURVIVED
5. duplicateAndReplaceNode : removed conditional - replaced comparison check with false → SURVIVED
			if (candidates.size() > 0) {
118
119 4 1. duplicateAndReplaceNode : removed call to java/util/random/RandomGenerator::nextInt → SURVIVED
2. duplicateAndReplaceNode : removed call to java/util/List::size → KILLED
3. duplicateAndReplaceNode : removed call to java/util/List::get → KILLED
4. duplicateAndReplaceNode : replaced call to java/util/random/RandomGenerator::nextInt with argument → KILLED
				final OperationFactory chosenOperationFactory = candidates.get(randomGenerator.nextInt(candidates.size()));
120 2 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
2. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED
				final Operation operation = chosenOperationFactory.build(program.inputSpec());
121
122 1 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
				final TreeNode<Operation<?>> replacedNode = new TreeNode<Operation<?>>(operation);
123 2 1. duplicateAndReplaceNode : Substituted 1 with 0 → SURVIVED
2. duplicateAndReplaceNode : Replaced integer addition with subtraction → SURVIVED
				int currentIndex = nodeIndex + 1;
124 1 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getChildren → KILLED
				for (final TreeNode<Operation<?>> child : root.getChildren()) {
125 1 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getSize → SURVIVED
					final int childSize = child.getSize();
126
127 2 1. duplicateAndReplaceNode : replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode with argument → SURVIVED
2. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED
					final TreeNode<Operation<?>> childCopy = duplicateAndReplaceNode(program, child, cutPoint, currentIndex);
128 1 1. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
					replacedNode.addChild(childCopy);
129 1 1. duplicateAndReplaceNode : Replaced integer addition with subtraction → SURVIVED
					currentIndex += childSize;
130
131
				}
132
133 1 1. duplicateAndReplaceNode : replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED
				return replacedNode;
134
			} else {
135 3 1. duplicateAndReplaceNode : replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode with argument → NO_COVERAGE
2. duplicateAndReplaceNode : replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → NO_COVERAGE
3. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode → NO_COVERAGE
				return duplicateNode(program, root, cutPoint, nodeIndex);
136
			}
137
		} else {
138 3 1. duplicateAndReplaceNode : replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode with argument → SURVIVED
2. duplicateAndReplaceNode : replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED
3. duplicateAndReplaceNode : removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode → KILLED
			return duplicateNode(program, root, cutPoint, nodeIndex);
139
		}
140
	}
141
142
	@Override
143
	public Genotype mutate(final long generation, final Genotype original) {
144
		Validate.isTrue(generation >= 0);
145
		Objects.requireNonNull(original);
146
147 10 1. mutate : removed call to java/util/random/RandomGenerator::nextDouble → SURVIVED
2. mutate : removed conditional - replaced comparison check with false → SURVIVED
3. mutate : removed conditional - replaced equality check with true → SURVIVED
4. mutate : Substituted 1 with 0 → NO_COVERAGE
5. mutate : changed conditional boundary → SURVIVED
6. mutate : negated conditional → KILLED
7. mutate : negated conditional → KILLED
8. mutate : removed conditional - replaced comparison check with true → KILLED
9. mutate : Substituted 0 with 1 → KILLED
10. mutate : removed conditional - replaced equality check with false → KILLED
		if (randomGenerator.nextDouble() < populationMutationProbability == false) {
148 1 1. mutate : replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::mutate → KILLED
			return original;
149
		}
150
151 1 1. mutate : removed call to net/bmahe/genetics4j/core/Genotype::getSize → NO_COVERAGE
		final Chromosome[] newChromosomes = new Chromosome[original.getSize()];
152 1 1. mutate : removed call to net/bmahe/genetics4j/core/Genotype::getChromosomes → NO_COVERAGE
		final Chromosome[] chromosomes = original.getChromosomes();
153 5 1. mutate : negated conditional → NO_COVERAGE
2. mutate : removed conditional - replaced comparison check with true → NO_COVERAGE
3. mutate : Substituted 0 with 1 → NO_COVERAGE
4. mutate : removed conditional - replaced comparison check with false → NO_COVERAGE
5. mutate : changed conditional boundary → NO_COVERAGE
		for (int chromosomeIndex = 0; chromosomeIndex < chromosomes.length; chromosomeIndex++) {
154 1 1. mutate : removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::getChromosomeSpec → NO_COVERAGE
			final ChromosomeSpec chromosomeSpec = eaConfiguration.getChromosomeSpec(chromosomeIndex);
155
			final Chromosome chromosome = chromosomes[chromosomeIndex];
156
157 3 1. mutate : negated conditional → NO_COVERAGE
2. mutate : removed conditional - replaced equality check with true → NO_COVERAGE
3. mutate : removed conditional - replaced equality check with false → NO_COVERAGE
			if (chromosomeSpec instanceof ProgramTreeChromosomeSpec == false) {
158 2 1. mutate : removed call to java/lang/String::valueOf → NO_COVERAGE
2. mutate : removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE
				throw new IllegalArgumentException("This mutator does not support chromosome specs " + chromosomeSpec);
159
			}
160
161 3 1. mutate : negated conditional → NO_COVERAGE
2. mutate : removed conditional - replaced equality check with false → NO_COVERAGE
3. mutate : removed conditional - replaced equality check with true → NO_COVERAGE
			if (chromosome instanceof TreeChromosome<?> == false) {
162
				throw new IllegalArgumentException(
163 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getClass → NO_COVERAGE
						"This mutator does not support chromosome of type " + chromosome.getClass()
164 2 1. mutate : removed call to java/lang/Class::getSimpleName → NO_COVERAGE
2. mutate : removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE
								.getSimpleName());
165
			}
166
167
			final ProgramTreeChromosomeSpec programTreeChromosomeSpec = (ProgramTreeChromosomeSpec) chromosomeSpec;
168
169
			final TreeChromosome<Operation<?>> treeChromosome = (TreeChromosome<Operation<?>>) chromosome;
170 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::getSize → NO_COVERAGE
			final int chromosomeSize = treeChromosome.getSize();
171
172 5 1. mutate : removed conditional - replaced comparison check with true → NO_COVERAGE
2. mutate : negated conditional → NO_COVERAGE
3. mutate : changed conditional boundary → NO_COVERAGE
4. mutate : removed conditional - replaced comparison check with false → NO_COVERAGE
5. mutate : Substituted 2 with 3 → NO_COVERAGE
			if (chromosomeSize > 2) {
173 6 1. mutate : Replaced integer subtraction with addition → NO_COVERAGE
2. mutate : removed call to java/util/random/RandomGenerator::nextInt → NO_COVERAGE
3. mutate : Substituted 1 with 0 → NO_COVERAGE
4. mutate : Substituted 1 with 0 → NO_COVERAGE
5. mutate : replaced call to java/util/random/RandomGenerator::nextInt with argument → NO_COVERAGE
6. mutate : Replaced integer addition with subtraction → NO_COVERAGE
				final int cutPoint = randomGenerator.nextInt(chromosomeSize - 1) + 1;
174
175 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::getRoot → NO_COVERAGE
				final TreeNode<Operation<?>> root = treeChromosome.getRoot();
176 4 1. mutate : removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → NO_COVERAGE
2. mutate : replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode with argument → NO_COVERAGE
3. mutate : removed call to net/bmahe/genetics4j/gp/spec/chromosome/ProgramTreeChromosomeSpec::program → NO_COVERAGE
4. mutate : Substituted 0 with 1 → NO_COVERAGE
				final TreeNode<Operation<?>> newRoot = duplicateAndReplaceNode(programTreeChromosomeSpec.program(),
177
						root,
178
						cutPoint,
179
						0);
180
181 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::<init> → NO_COVERAGE
				final TreeChromosome<Operation<?>> newTreeChromosome = new TreeChromosome<>(newRoot);
182
				newChromosomes[chromosomeIndex] = newTreeChromosome;
183
			} else {
184
				newChromosomes[chromosomeIndex] = chromosome;
185
			}
186
187
		}
188
189 2 1. mutate : removed call to net/bmahe/genetics4j/core/Genotype::<init> → NO_COVERAGE
2. mutate : replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::mutate → NO_COVERAGE
		return new Genotype(newChromosomes);
190
	}
191
}

Mutations

39

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

40

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
Removed assignment to member variable randomGenerator → KILLED

41

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

42

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

50

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → KILLED

51

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getChildren → KILLED

53

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED

55

1.1
Location : duplicateNode
Killed by : none
Substituted 1 with 0 → SURVIVED
Covering tests

2.2
Location : duplicateNode
Killed by : none
Replaced integer addition with subtraction → SURVIVED Covering tests

56

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
negated conditional → KILLED

2.2
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed conditional - replaced comparison check with true → KILLED

3.3
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed conditional - replaced comparison check with false → KILLED

4.4
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to java/util/List::size → KILLED

5.5
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
Substituted 0 with 1 → KILLED

6.6
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
changed conditional boundary → KILLED

57

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to java/util/List::get → KILLED

58

1.1
Location : duplicateNode
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getSize → SURVIVED
Covering tests

60

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED

2.2
Location : duplicateNode
Killed by : none
replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode with argument → SURVIVED
Covering tests

61

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → KILLED

62

1.1
Location : duplicateNode
Killed by : none
Replaced integer addition with subtraction → SURVIVED
Covering tests

65

1.1
Location : duplicateNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode → KILLED

72

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → KILLED

74

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/Operation::returnedType → KILLED

75

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/Operation::acceptedTypes → KILLED

77

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/program/Program::functions → KILLED

78

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/program/Program::terminal → KILLED

80

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/stream/Stream::concat → KILLED

2.2
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/Set::stream → KILLED

3.3
Location : findReplacementCandidates
Killed by : none
replaced call to java/util/stream/Stream::concat with argument → SURVIVED
Covering tests

4.4
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/Set::stream → KILLED

81

1.1
Location : findReplacementCandidates
Killed by : none
replaced call to java/util/stream/Stream::filter with receiver → SURVIVED
Covering tests

2.2
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/stream/Stream::filter → KILLED

82

1.1
Location : lambda$findReplacementCandidates$0
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::returnedType → KILLED

2.2
Location : lambda$findReplacementCandidates$0
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/lang/Class::isAssignableFrom → KILLED

83

1.1
Location : lambda$findReplacementCandidates$0
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
replaced boolean return with false for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$0 → KILLED

2.2
Location : lambda$findReplacementCandidates$0
Killed by : none
replaced boolean return with true for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$0 → SURVIVED
Covering tests

85

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
replaced call to java/util/stream/Stream::filter with receiver → KILLED

2.2
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/stream/Stream::filter → KILLED

87

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED

2.2
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed conditional - replaced equality check with false → KILLED

3.3
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
negated conditional → KILLED

4.4
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed conditional - replaced equality check with true → KILLED

5.5
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/List::size → KILLED

88

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
Substituted 0 with 1 → KILLED

2.2
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
replaced boolean return with true for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$1 → KILLED

91

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed conditional - replaced comparison check with false → KILLED

2.2
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
changed conditional boundary → KILLED

3.3
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/List::size → KILLED

4.4
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
Substituted 0 with 1 → KILLED

5.5
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed conditional - replaced comparison check with true → KILLED

6.6
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
negated conditional → KILLED

93

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/List::get → KILLED

94

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED

2.2
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed conditional - replaced equality check with false → KILLED

3.3
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
negated conditional → KILLED

4.4
Location : lambda$findReplacementCandidates$1
Killed by : none
removed conditional - replaced equality check with true → SURVIVED
Covering tests

5.5
Location : lambda$findReplacementCandidates$1
Killed by : none
removed call to java/lang/Class::isAssignableFrom → SURVIVED Covering tests

95

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
replaced boolean return with true for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$1 → KILLED

2.2
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
Substituted 0 with 1 → KILLED

99

1.1
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
replaced boolean return with false for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::lambda$findReplacementCandidates$1 → KILLED

2.2
Location : lambda$findReplacementCandidates$1
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
Substituted 1 with 0 → KILLED

101

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/stream/Collectors::toList → KILLED

2.2
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
removed call to java/util/stream/Stream::collect → KILLED

103

1.1
Location : findReplacementCandidates
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:findReplacementCandidates()]
replaced return value with Collections.emptyList for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::findReplacementCandidates → KILLED

111

1.1
Location : duplicateAndReplaceNode
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → SURVIVED
Covering tests

113

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed conditional - replaced equality check with true → KILLED

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

3.3
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
negated conditional → KILLED

115

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::findReplacementCandidates → KILLED

117

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

2.2
Location : duplicateAndReplaceNode
Killed by : none
negated conditional → SURVIVED Covering tests

3.3
Location : duplicateAndReplaceNode
Killed by : none
changed conditional boundary → SURVIVED Covering tests

4.4
Location : duplicateAndReplaceNode
Killed by : none
removed call to java/util/List::size → SURVIVED Covering tests

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

119

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to java/util/List::size → KILLED

2.2
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to java/util/List::get → KILLED

3.3
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
replaced call to java/util/random/RandomGenerator::nextInt with argument → KILLED

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

120

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED

2.2
Location : duplicateAndReplaceNode
Killed by : none
removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
Covering tests

122

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED

123

1.1
Location : duplicateAndReplaceNode
Killed by : none
Substituted 1 with 0 → SURVIVED
Covering tests

2.2
Location : duplicateAndReplaceNode
Killed by : none
Replaced integer addition with subtraction → SURVIVED Covering tests

124

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getChildren → KILLED

125

1.1
Location : duplicateAndReplaceNode
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getSize → SURVIVED
Covering tests

127

1.1
Location : duplicateAndReplaceNode
Killed by : none
replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode with argument → SURVIVED
Covering tests

2.2
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED

128

1.1
Location : duplicateAndReplaceNode
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
Covering tests

129

1.1
Location : duplicateAndReplaceNode
Killed by : none
Replaced integer addition with subtraction → SURVIVED
Covering tests

133

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED

135

1.1
Location : duplicateAndReplaceNode
Killed by : none
replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode with argument → NO_COVERAGE

2.2
Location : duplicateAndReplaceNode
Killed by : none
replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → NO_COVERAGE

3.3
Location : duplicateAndReplaceNode
Killed by : none
removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode → NO_COVERAGE

138

1.1
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → KILLED

2.2
Location : duplicateAndReplaceNode
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode → KILLED

3.3
Location : duplicateAndReplaceNode
Killed by : none
replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateNode with argument → SURVIVED
Covering tests

147

1.1
Location : mutate
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
negated conditional → KILLED

2.2
Location : mutate
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
negated conditional → KILLED

3.3
Location : mutate
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
removed conditional - replaced comparison check with true → KILLED

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

5.5
Location : mutate
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
Substituted 0 with 1 → KILLED

6.6
Location : mutate
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
removed conditional - replaced equality check with false → KILLED

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

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

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

10.10
Location : mutate
Killed by : none
changed conditional boundary → SURVIVED Covering tests

148

1.1
Location : mutate
Killed by : net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.NodeReplacementMutatorTest]/[method:noMutate()]
replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::mutate → KILLED

151

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/Genotype::getSize → NO_COVERAGE

152

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/Genotype::getChromosomes → NO_COVERAGE

153

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

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

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

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

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

154

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::getChromosomeSpec → NO_COVERAGE

157

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

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

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

158

1.1
Location : mutate
Killed by : none
removed call to java/lang/String::valueOf → NO_COVERAGE

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

161

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

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

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

163

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getClass → NO_COVERAGE

164

1.1
Location : mutate
Killed by : none
removed call to java/lang/Class::getSimpleName → NO_COVERAGE

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

170

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::getSize → NO_COVERAGE

172

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

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

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

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

5.5
Location : mutate
Killed by : none
Substituted 2 with 3 → NO_COVERAGE

173

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

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

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

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

5.5
Location : mutate
Killed by : none
replaced call to java/util/random/RandomGenerator::nextInt with argument → NO_COVERAGE

6.6
Location : mutate
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

175

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::getRoot → NO_COVERAGE

176

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode → NO_COVERAGE

2.2
Location : mutate
Killed by : none
replaced call to net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::duplicateAndReplaceNode with argument → NO_COVERAGE

3.3
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/gp/spec/chromosome/ProgramTreeChromosomeSpec::program → NO_COVERAGE

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

181

1.1
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::<init> → NO_COVERAGE

189

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

2.2
Location : mutate
Killed by : none
replaced return value with null for net/bmahe/genetics4j/gp/mutation/NodeReplacementMutator::mutate → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.20.3