ProgramRandomPruneMutator.java

1
package net.bmahe.genetics4j.gp.mutation;
2
3
import java.util.List;
4
import java.util.random.RandomGenerator;
5
6
import org.apache.commons.lang3.Validate;
7
8
import net.bmahe.genetics4j.core.Genotype;
9
import net.bmahe.genetics4j.core.chromosomes.Chromosome;
10
import net.bmahe.genetics4j.core.chromosomes.TreeChromosome;
11
import net.bmahe.genetics4j.core.chromosomes.TreeNode;
12
import net.bmahe.genetics4j.core.mutation.Mutator;
13
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
14
import net.bmahe.genetics4j.core.spec.chromosome.ChromosomeSpec;
15
import net.bmahe.genetics4j.gp.Operation;
16
import net.bmahe.genetics4j.gp.OperationFactory;
17
import net.bmahe.genetics4j.gp.program.Program;
18
import net.bmahe.genetics4j.gp.program.ProgramHelper;
19
import net.bmahe.genetics4j.gp.spec.chromosome.ProgramTreeChromosomeSpec;
20
21
public class ProgramRandomPruneMutator implements Mutator {
22
23
	private final ProgramHelper programHelper;
24
	private final RandomGenerator randomGenerator;
25
	private final AbstractEAConfiguration eaConfiguration;
26
	private final double populationMutationProbability;
27
28
	public ProgramRandomPruneMutator(final ProgramHelper _programHelper, final RandomGenerator _randomGenerator,
29
			final AbstractEAConfiguration _eaConfiguration, final double populationMutationProbability) {
30
		Validate.notNull(_programHelper);
31
		Validate.notNull(_randomGenerator);
32
		Validate.notNull(_eaConfiguration);
33
		Validate.inclusiveBetween(0.0, 1.0, populationMutationProbability);
34
35 1 1. <init> : Removed assignment to member variable programHelper → KILLED
		this.programHelper = _programHelper;
36 1 1. <init> : Removed assignment to member variable randomGenerator → KILLED
		this.randomGenerator = _randomGenerator;
37 1 1. <init> : Removed assignment to member variable eaConfiguration → SURVIVED
		this.eaConfiguration = _eaConfiguration;
38 1 1. <init> : Removed assignment to member variable populationMutationProbability → SURVIVED
		this.populationMutationProbability = populationMutationProbability;
39
	}
40
41
	protected TreeNode<Operation<?>> duplicateAndCut(final Program program, final TreeNode<Operation<?>> root,
42
			final int cutPoint, final int nodeIndex) {
43
		Validate.notNull(root);
44
		Validate.isTrue(cutPoint >= 0);
45
46 1 1. duplicateAndCut : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getData → KILLED
		final Operation<?> rootData = root.getData();
47
48 3 1. duplicateAndCut : removed conditional - replaced equality check with true → KILLED
2. duplicateAndCut : negated conditional → KILLED
3. duplicateAndCut : removed conditional - replaced equality check with false → KILLED
		if (nodeIndex == cutPoint) {
49 2 1. duplicateAndCut : removed call to net/bmahe/genetics4j/gp/Operation::returnedType → KILLED
2. duplicateAndCut : removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomTerminal → KILLED
			final OperationFactory randomTerminal = programHelper.pickRandomTerminal(program, rootData.returnedType());
50 2 1. duplicateAndCut : removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → KILLED
2. duplicateAndCut : removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED
			final Operation<?> operation = randomTerminal.build(program.inputSpec());
51 2 1. duplicateAndCut : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
2. duplicateAndCut : replaced return value with null for net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut → KILLED
			return new TreeNode<Operation<?>>(operation);
52
		} else {
53 1 1. duplicateAndCut : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getChildren → KILLED
			final List<TreeNode<Operation<?>>> children = root.getChildren();
54
55 1 1. duplicateAndCut : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
			final TreeNode<Operation<?>> duplicateRoot = new TreeNode<Operation<?>>(rootData);
56
57 2 1. duplicateAndCut : Replaced integer addition with subtraction → KILLED
2. duplicateAndCut : Substituted 1 with 0 → KILLED
			int currentIndex = nodeIndex + 1;
58 6 1. duplicateAndCut : removed conditional - replaced comparison check with true → KILLED
2. duplicateAndCut : removed call to java/util/List::size → KILLED
3. duplicateAndCut : Substituted 0 with 1 → KILLED
4. duplicateAndCut : removed conditional - replaced comparison check with false → KILLED
5. duplicateAndCut : negated conditional → KILLED
6. duplicateAndCut : changed conditional boundary → KILLED
			for (int i = 0; i < children.size(); i++) {
59 1 1. duplicateAndCut : removed call to java/util/List::get → KILLED
				final TreeNode<Operation<?>> treeNode = children.get(i);
60 1 1. duplicateAndCut : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::getSize → KILLED
				final int childSize = treeNode.getSize();
61
62 2 1. duplicateAndCut : removed call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut → KILLED
2. duplicateAndCut : replaced call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut with argument → KILLED
				final TreeNode<Operation<?>> childCopy = duplicateAndCut(program, treeNode, cutPoint, currentIndex);
63 1 1. duplicateAndCut : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → KILLED
				duplicateRoot.addChild(childCopy);
64 1 1. duplicateAndCut : Replaced integer addition with subtraction → KILLED
				currentIndex += childSize;
65
			}
66
67 1 1. duplicateAndCut : replaced return value with null for net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut → KILLED
			return duplicateRoot;
68
		}
69
	}
70
71
	@Override
72
	public Genotype mutate(final Genotype original) {
73
		Validate.notNull(original);
74
75 10 1. mutate : removed conditional - replaced equality check with true → SURVIVED
2. mutate : Substituted 1 with 0 → NO_COVERAGE
3. mutate : changed conditional boundary → SURVIVED
4. mutate : removed conditional - replaced comparison check with false → SURVIVED
5. mutate : removed call to java/util/random/RandomGenerator::nextDouble → SURVIVED
6. mutate : negated conditional → KILLED
7. mutate : removed conditional - replaced comparison check with true → KILLED
8. mutate : negated conditional → KILLED
9. mutate : removed conditional - replaced equality check with false → KILLED
10. mutate : Substituted 0 with 1 → KILLED
		if (randomGenerator.nextDouble() < populationMutationProbability == false) {
76 1 1. mutate : replaced return value with null for net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::mutate → KILLED
			return original;
77
		}
78
79 1 1. mutate : removed call to net/bmahe/genetics4j/core/Genotype::getSize → NO_COVERAGE
		final Chromosome[] newChromosomes = new Chromosome[original.getSize()];
80 1 1. mutate : removed call to net/bmahe/genetics4j/core/Genotype::getChromosomes → NO_COVERAGE
		final Chromosome[] chromosomes = original.getChromosomes();
81 5 1. mutate : removed conditional - replaced comparison check with false → NO_COVERAGE
2. mutate : Substituted 0 with 1 → NO_COVERAGE
3. mutate : changed conditional boundary → NO_COVERAGE
4. mutate : removed conditional - replaced comparison check with true → NO_COVERAGE
5. mutate : negated conditional → NO_COVERAGE
		for (int chromosomeIndex = 0; chromosomeIndex < chromosomes.length; chromosomeIndex++) {
82 1 1. mutate : removed call to net/bmahe/genetics4j/core/spec/AbstractEAConfiguration::getChromosomeSpec → NO_COVERAGE
			final ChromosomeSpec chromosomeSpec = eaConfiguration.getChromosomeSpec(chromosomeIndex);
83
			final Chromosome chromosome = chromosomes[chromosomeIndex];
84
85 3 1. mutate : removed conditional - replaced equality check with false → NO_COVERAGE
2. mutate : removed conditional - replaced equality check with true → NO_COVERAGE
3. mutate : negated conditional → NO_COVERAGE
			if (chromosomeSpec instanceof ProgramTreeChromosomeSpec == false) {
86 2 1. mutate : removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE
2. mutate : removed call to java/lang/String::valueOf → NO_COVERAGE
				throw new IllegalArgumentException("This mutator does not support chromosome specs " + chromosomeSpec);
87
			}
88
89 3 1. mutate : removed conditional - replaced equality check with true → NO_COVERAGE
2. mutate : negated conditional → NO_COVERAGE
3. mutate : removed conditional - replaced equality check with false → NO_COVERAGE
			if (chromosome instanceof TreeChromosome<?> == false) {
90
				throw new IllegalArgumentException(
91 3 1. mutate : removed call to java/lang/Class::getSimpleName → NO_COVERAGE
2. mutate : removed call to java/lang/IllegalArgumentException::<init> → NO_COVERAGE
3. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getClass → NO_COVERAGE
						"This mutator does not support chromosome of type " + chromosome.getClass().getSimpleName());
92
			}
93
94
			final ProgramTreeChromosomeSpec programTreeChromosomeSpec = (ProgramTreeChromosomeSpec) chromosomeSpec;
95
96
			final TreeChromosome<Operation<?>> treeChromosome = (TreeChromosome<Operation<?>>) chromosome;
97 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::getSize → NO_COVERAGE
			final int chromosomeSize = treeChromosome.getSize();
98
99 5 1. mutate : removed conditional - replaced comparison check with false → NO_COVERAGE
2. mutate : changed conditional boundary → NO_COVERAGE
3. mutate : removed conditional - replaced comparison check with true → NO_COVERAGE
4. mutate : negated conditional → NO_COVERAGE
5. mutate : Substituted 2 with 3 → NO_COVERAGE
			if (chromosomeSize > 2) {
100 6 1. mutate : Substituted 1 with 0 → NO_COVERAGE
2. mutate : Substituted 1 with 0 → NO_COVERAGE
3. mutate : Replaced integer subtraction with addition → NO_COVERAGE
4. mutate : removed call to java/util/random/RandomGenerator::nextInt → NO_COVERAGE
5. mutate : Replaced integer addition with subtraction → NO_COVERAGE
6. mutate : replaced call to java/util/random/RandomGenerator::nextInt with argument → NO_COVERAGE
				final int cutPoint = randomGenerator.nextInt(chromosomeSize - 1) + 1;
101
102 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::getRoot → NO_COVERAGE
				final TreeNode<Operation<?>> root = treeChromosome.getRoot();
103 4 1. mutate : replaced call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut with argument → NO_COVERAGE
2. mutate : removed call to net/bmahe/genetics4j/gp/spec/chromosome/ProgramTreeChromosomeSpec::program → NO_COVERAGE
3. mutate : removed call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut → NO_COVERAGE
4. mutate : Substituted 0 with 1 → NO_COVERAGE
				final TreeNode<Operation<?>> newRoot = duplicateAndCut(programTreeChromosomeSpec.program(),
104
						root,
105
						cutPoint,
106
						0);
107 1 1. mutate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeChromosome::<init> → NO_COVERAGE
				final TreeChromosome<Operation<?>> newTreeChromosome = new TreeChromosome<>(newRoot);
108
				newChromosomes[chromosomeIndex] = newTreeChromosome;
109
			} else {
110
				newChromosomes[chromosomeIndex] = chromosome;
111
			}
112
113
		}
114
115 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/ProgramRandomPruneMutator::mutate → NO_COVERAGE
		return new Genotype(newChromosomes);
116
	}
117
}

Mutations

35

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

36

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

37

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

38

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

46

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

48

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

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

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

49

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

2.2
Location : duplicateAndCut
Killed by : net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest]/[method:simple()]
removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomTerminal → KILLED

50

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

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

51

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

2.2
Location : duplicateAndCut
Killed by : net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest]/[method:simple()]
replaced return value with null for net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut → KILLED

53

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

55

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

57

1.1
Location : duplicateAndCut
Killed by : net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest]/[method:simple()]
Replaced integer addition with subtraction → KILLED

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

58

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

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

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

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

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

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

59

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

60

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

62

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

2.2
Location : duplicateAndCut
Killed by : net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest]/[method:simple()]
replaced call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut with argument → KILLED

63

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

64

1.1
Location : duplicateAndCut
Killed by : net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.mutation.ProgramRandomPruneMutatorTest]/[method:simple()]
Replaced integer addition with subtraction → KILLED

67

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

75

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

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

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

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

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

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

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

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

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

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

76

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

79

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

80

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

81

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

2.2
Location : mutate
Killed by : none
Substituted 0 with 1 → 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 true → NO_COVERAGE

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

82

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

85

1.1
Location : mutate
Killed by : none
removed conditional - replaced equality check with false → 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
negated conditional → NO_COVERAGE

86

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

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

89

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

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

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

91

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

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

97

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

99

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

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

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

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

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

100

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

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

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

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

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

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

102

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

103

1.1
Location : mutate
Killed by : none
replaced call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut with argument → NO_COVERAGE

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

3.3
Location : mutate
Killed by : none
removed call to net/bmahe/genetics4j/gp/mutation/ProgramRandomPruneMutator::duplicateAndCut → NO_COVERAGE

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

107

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

115

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/ProgramRandomPruneMutator::mutate → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.19.6