DoubleChromosomeSinglePointCrossover.java

1
package net.bmahe.genetics4j.core.combination.singlepointcrossover;
2
3
import java.util.List;
4
import java.util.Objects;
5
import java.util.random.RandomGenerator;
6
7
import org.apache.commons.lang3.Validate;
8
9
import net.bmahe.genetics4j.core.chromosomes.Chromosome;
10
import net.bmahe.genetics4j.core.chromosomes.DoubleChromosome;
11
import net.bmahe.genetics4j.core.combination.ChromosomeCombinator;
12
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
13
14
public class DoubleChromosomeSinglePointCrossover<T extends Comparable<T>> implements ChromosomeCombinator<T> {
15
16
	private final RandomGenerator randomGenerator;
17
18
	public DoubleChromosomeSinglePointCrossover(final RandomGenerator _randomGenerator) {
19
		Objects.requireNonNull(_randomGenerator);
20
21 1 1. <init> : Removed assignment to member variable randomGenerator → KILLED
		this.randomGenerator = _randomGenerator;
22
	}
23
24
	@Override
25
	public List<Chromosome> combine(final AbstractEAConfiguration<T> eaConfiguration, final Chromosome chromosome1,
26
			final T firstParentFitness, final Chromosome chromosome2, final T secondParentFitness) {
27
		Objects.requireNonNull(chromosome1);
28
		Objects.requireNonNull(chromosome2);
29
		Validate.isInstanceOf(DoubleChromosome.class, chromosome1);
30
		Validate.isInstanceOf(DoubleChromosome.class, chromosome2);
31
		Validate.isTrue(chromosome1.getNumAlleles() == chromosome2.getNumAlleles());
32
33 3 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → SURVIVED
2. combine : removed call to java/util/random/RandomGenerator::nextInt → KILLED
3. combine : replaced call to java/util/random/RandomGenerator::nextInt with argument → KILLED
		final int alleleSplit = randomGenerator.nextInt(chromosome1.getNumAlleles());
34
35
		final var doubleChromosome1 = (DoubleChromosome) chromosome1;
36
		final var doubleChromosome2 = (DoubleChromosome) chromosome2;
37
38 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED
		final int numAlleles = chromosome1.getNumAlleles();
39
		final double[] firstChildValues = new double[numAlleles];
40
		final double[] secondChildValues = new double[numAlleles];
41
42 5 1. combine : removed conditional - replaced comparison check with false → KILLED
2. combine : Substituted 0 with 1 → KILLED
3. combine : changed conditional boundary → KILLED
4. combine : removed conditional - replaced comparison check with true → KILLED
5. combine : negated conditional → KILLED
		for (int i = 0; i < numAlleles; i++) {
43
44 4 1. combine : removed conditional - replaced comparison check with true → KILLED
2. combine : changed conditional boundary → KILLED
3. combine : negated conditional → KILLED
4. combine : removed conditional - replaced comparison check with false → KILLED
			if (i < alleleSplit) {
45 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::getAllele → KILLED
				firstChildValues[i] = doubleChromosome1.getAllele(i);
46 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::getAllele → KILLED
				secondChildValues[i] = doubleChromosome2.getAllele(i);
47
			} else {
48 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::getAllele → KILLED
				firstChildValues[i] = doubleChromosome2.getAllele(i);
49 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::getAllele → KILLED
				secondChildValues[i] = doubleChromosome1.getAllele(i);
50
			}
51
		}
52
53
		/**
54
		 * TODO Should the min/max values be extended based on the lowest/highest values?
55
		 */
56 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::getMinValue → SURVIVED
		final double minValue = doubleChromosome1.getMinValue();
57 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::getMaxValue → SURVIVED
		final double maxValue = doubleChromosome2.getMaxValue();
58
59 4 1. combine : removed call to java/util/List::of → KILLED
2. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::<init> → KILLED
3. combine : replaced return value with Collections.emptyList for net/bmahe/genetics4j/core/combination/singlepointcrossover/DoubleChromosomeSinglePointCrossover::combine → KILLED
4. combine : removed call to net/bmahe/genetics4j/core/chromosomes/DoubleChromosome::<init> → KILLED
		return List.of(
60
				new DoubleChromosome(numAlleles, minValue, maxValue, firstChildValues),
61
					new DoubleChromosome(numAlleles, minValue, maxValue, secondChildValues));
62
	}
63
}

Mutations

21

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

33

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

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.singlepointcrossover.DoubleChromosomeSinglePointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.singlepointcrossover.DoubleChromosomeSinglePointCrossoverTest]/[method:combineTest()]
replaced call to java/util/random/RandomGenerator::nextInt with argument → KILLED

38

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

42

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

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

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

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

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

44

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

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

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

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

45

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

46

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

48

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

49

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

56

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

57

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

59

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

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

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

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

Active mutators

Tests examined


Report generated by PIT 1.25.7 support