FloatChromosomeMultiPointCrossover.java

1
package net.bmahe.genetics4j.core.combination.multipointcrossover;
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.chromosomes.Chromosome;
9
import net.bmahe.genetics4j.core.chromosomes.FloatChromosome;
10
import net.bmahe.genetics4j.core.combination.ChromosomeCombinator;
11
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
12
import net.bmahe.genetics4j.core.spec.combination.MultiPointCrossover;
13
14
public class FloatChromosomeMultiPointCrossover<T extends Comparable<T>> implements ChromosomeCombinator<T> {
15
16
	private final RandomGenerator randomGenerator;
17
18
	private final MultiPointCrossover multiPointCrossoverPolicy;
19
20
	public FloatChromosomeMultiPointCrossover(final RandomGenerator _randomGenerator,
21
			final MultiPointCrossover _multiPointCrossoverPolicy) {
22
		Validate.notNull(_randomGenerator);
23
		Validate.notNull(_multiPointCrossoverPolicy);
24
25 1 1. <init> : Removed assignment to member variable randomGenerator → KILLED
		this.randomGenerator = _randomGenerator;
26 1 1. <init> : Removed assignment to member variable multiPointCrossoverPolicy → KILLED
		this.multiPointCrossoverPolicy = _multiPointCrossoverPolicy;
27
	}
28
29
	@Override
30
	public List<Chromosome> combine(final AbstractEAConfiguration<T> eaConfiguration, final Chromosome chromosome1,
31
			final T firstParentFitness, final Chromosome chromosome2, final T secondParentFitness) {
32
		Validate.notNull(chromosome1);
33
		Validate.notNull(chromosome2);
34
		Validate.isInstanceOf(FloatChromosome.class, chromosome1);
35
		Validate.isInstanceOf(FloatChromosome.class, chromosome2);
36
		Validate.isTrue(chromosome1.getNumAlleles() == chromosome2.getNumAlleles());
37
38
		Validate.isTrue(multiPointCrossoverPolicy.numCrossovers() < chromosome1.getNumAlleles());
39
		Validate.isTrue(multiPointCrossoverPolicy.numCrossovers() < chromosome2.getNumAlleles());
40
41 3 1. combine : Substituted 0 with 1 → SURVIVED
2. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → SURVIVED
3. combine : removed call to java/util/random/RandomGenerator::ints → KILLED
		final int[] alleleSplits = randomGenerator.ints(0, chromosome1.getNumAlleles())
42 2 1. combine : replaced call to java/util/stream/IntStream::distinct with receiver → SURVIVED
2. combine : removed call to java/util/stream/IntStream::distinct → KILLED
				.distinct()
43 3 1. combine : replaced call to java/util/stream/IntStream::limit with receiver → SURVIVED
2. combine : removed call to java/util/stream/IntStream::limit → KILLED
3. combine : removed call to net/bmahe/genetics4j/core/spec/combination/MultiPointCrossover::numCrossovers → KILLED
				.limit(multiPointCrossoverPolicy.numCrossovers())
44 2 1. combine : replaced call to java/util/stream/IntStream::sorted with receiver → SURVIVED
2. combine : removed call to java/util/stream/IntStream::sorted → KILLED
				.sorted()
45 1 1. combine : removed call to java/util/stream/IntStream::toArray → KILLED
				.toArray();
46
47
		final FloatChromosome floatChromosome1 = (FloatChromosome) chromosome1;
48
		final FloatChromosome floatChromosome2 = (FloatChromosome) chromosome2;
49
50 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED
		final int numAlleles = chromosome1.getNumAlleles();
51
		final float[] firstChildValues = new float[numAlleles];
52
		final float[] secondChildValues = new float[numAlleles];
53
54 1 1. combine : Substituted 1 with 0 → KILLED
		boolean useChromosome1 = true;
55 1 1. combine : Substituted 0 with 1 → KILLED
		int splitIndex = 0;
56 6 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getNumAlleles → KILLED
2. combine : removed conditional - replaced comparison check with true → KILLED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced comparison check with false → KILLED
5. combine : changed conditional boundary → KILLED
6. combine : Substituted 0 with 1 → KILLED
		for (int i = 0; i < floatChromosome1.getNumAlleles(); i++) {
57
58 7 1. combine : removed conditional - replaced comparison check with true → SURVIVED
2. combine : changed conditional boundary → SURVIVED
3. combine : removed conditional - replaced equality check with false → KILLED
4. combine : negated conditional → KILLED
5. combine : negated conditional → KILLED
6. combine : removed conditional - replaced equality check with true → KILLED
7. combine : removed conditional - replaced comparison check with false → KILLED
			if (splitIndex < alleleSplits.length && i == alleleSplits[splitIndex]) {
59 2 1. combine : Removed increment 1 → KILLED
2. combine : Changed increment from 1 to -1 → KILLED
				splitIndex++;
60 5 1. combine : removed conditional - replaced equality check with true → KILLED
2. combine : removed conditional - replaced equality check with false → KILLED
3. combine : Substituted 1 with 0 → KILLED
4. combine : Substituted 0 with 1 → KILLED
5. combine : negated conditional → KILLED
				useChromosome1 = !useChromosome1;
61
			}
62
63 3 1. combine : removed conditional - replaced equality check with false → KILLED
2. combine : negated conditional → KILLED
3. combine : removed conditional - replaced equality check with true → KILLED
			if (useChromosome1) {
64 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED
				firstChildValues[i] = floatChromosome1.getAllele(i);
65 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED
				secondChildValues[i] = floatChromosome2.getAllele(i);
66
			} else {
67 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED
				firstChildValues[i] = floatChromosome2.getAllele(i);
68 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED
				secondChildValues[i] = floatChromosome1.getAllele(i);
69
			}
70
		}
71
72
		/**
73
		 * TODO Should the min/max values be extended based on the lowest/highest
74
		 * values?
75
		 */
76 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getMinValue → SURVIVED
		final float minValue = floatChromosome1.getMinValue();
77 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getMaxValue → SURVIVED
		final float maxValue = floatChromosome2.getMaxValue();
78
79 4 1. combine : removed call to java/util/List::of → KILLED
2. combine : replaced return value with Collections.emptyList for net/bmahe/genetics4j/core/combination/multipointcrossover/FloatChromosomeMultiPointCrossover::combine → KILLED
3. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::<init> → KILLED
4. combine : removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::<init> → KILLED
		return List.of(new FloatChromosome(numAlleles, minValue, maxValue, firstChildValues),
80
				new FloatChromosome(numAlleles, minValue, maxValue, secondChildValues));
81
	}
82
}

Mutations

25

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

26

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
Removed assignment to member variable multiPointCrossoverPolicy → KILLED

41

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

2.2
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → SURVIVED Covering tests

3.3
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to java/util/random/RandomGenerator::ints → KILLED

42

1.1
Location : combine
Killed by : none
replaced call to java/util/stream/IntStream::distinct with receiver → SURVIVED
Covering tests

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to java/util/stream/IntStream::distinct → KILLED

43

1.1
Location : combine
Killed by : none
replaced call to java/util/stream/IntStream::limit with receiver → SURVIVED
Covering tests

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to java/util/stream/IntStream::limit → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/spec/combination/MultiPointCrossover::numCrossovers → KILLED

44

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to java/util/stream/IntStream::sorted → KILLED

2.2
Location : combine
Killed by : none
replaced call to java/util/stream/IntStream::sorted with receiver → SURVIVED
Covering tests

45

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to java/util/stream/IntStream::toArray → KILLED

50

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED

54

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

55

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

56

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getNumAlleles → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed conditional - replaced comparison check with true → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
negated conditional → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed conditional - replaced comparison check with false → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
changed conditional boundary → KILLED

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

58

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
negated conditional → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
negated conditional → KILLED

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

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

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

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

59

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
Removed increment 1 → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
Changed increment from 1 to -1 → KILLED

60

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed conditional - replaced equality check with true → KILLED

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

3.3
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
Substituted 1 with 0 → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
Substituted 0 with 1 → KILLED

5.5
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
negated conditional → KILLED

63

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed conditional - replaced equality check with false → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
negated conditional → KILLED

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

64

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED

65

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED

67

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED

68

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getAllele → KILLED

76

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getMinValue → SURVIVED
Covering tests

77

1.1
Location : combine
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::getMaxValue → SURVIVED
Covering tests

79

1.1
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to java/util/List::of → KILLED

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
replaced return value with Collections.emptyList for net/bmahe/genetics4j/core/combination/multipointcrossover/FloatChromosomeMultiPointCrossover::combine → KILLED

3.3
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::<init> → KILLED

4.4
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.multipointcrossover.FloatChromosomeMultiPointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/FloatChromosome::<init> → KILLED

Active mutators

Tests examined


Report generated by PIT 1.19.6