BitChromosomeSinglePointCrossover.java

1
package net.bmahe.genetics4j.core.combination.singlepointcrossover;
2
3
import java.util.BitSet;
4
import java.util.List;
5
import java.util.Objects;
6
import java.util.random.RandomGenerator;
7
8
import org.apache.commons.lang3.Validate;
9
10
import net.bmahe.genetics4j.core.chromosomes.BitChromosome;
11
import net.bmahe.genetics4j.core.chromosomes.Chromosome;
12
import net.bmahe.genetics4j.core.combination.ChromosomeCombinator;
13
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
14
15
public class BitChromosomeSinglePointCrossover<T extends Comparable<T>> implements ChromosomeCombinator<T> {
16
17
	private final RandomGenerator randomGenerator;
18
19
	public BitChromosomeSinglePointCrossover(final RandomGenerator _randomGenerator) {
20
		Objects.requireNonNull(_randomGenerator);
21
22 1 1. <init> : Removed assignment to member variable randomGenerator → KILLED
		this.randomGenerator = _randomGenerator;
23
	}
24
25
	@Override
26
	public List<Chromosome> combine(final AbstractEAConfiguration<T> eaConfiguration, final Chromosome chromosome1,
27
			final T firstParentFitness, final Chromosome chromosome2, final T secondParentFitness) {
28
		Objects.requireNonNull(chromosome1);
29
		Objects.requireNonNull(chromosome2);
30
		Validate.isInstanceOf(BitChromosome.class, chromosome1);
31
		Validate.isInstanceOf(BitChromosome.class, chromosome2);
32
		Validate.isTrue(chromosome1.getNumAlleles() == chromosome2.getNumAlleles());
33
34 3 1. combine : replaced call to java/util/random/RandomGenerator::nextInt with argument → KILLED
2. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED
3. combine : removed call to java/util/random/RandomGenerator::nextInt → KILLED
		final int alleleSplit = randomGenerator.nextInt(chromosome1.getNumAlleles());
35
36
		final BitChromosome bitChromosome1 = (BitChromosome) chromosome1;
37
		final BitChromosome bitChromosome2 = (BitChromosome) chromosome2;
38
39 1 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED
		final int numAlleles = chromosome1.getNumAlleles();
40 1 1. combine : removed call to java/util/BitSet::<init> → KILLED
		final BitSet firstChildBitSet = new BitSet(numAlleles);
41 1 1. combine : removed call to java/util/BitSet::<init> → KILLED
		final BitSet secondChildBitSet = new BitSet(numAlleles);
42
43 5 1. combine : changed conditional boundary → SURVIVED
2. combine : Substituted 0 with 1 → KILLED
3. combine : removed conditional - replaced comparison check with false → KILLED
4. combine : removed conditional - replaced comparison check with true → KILLED
5. combine : negated conditional → KILLED
		for (int i = 0; i < alleleSplit; i++) {
44 2 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::getBit → KILLED
2. combine : removed call to java/util/BitSet::set → KILLED
			firstChildBitSet.set(i, bitChromosome1.getBit(i));
45 2 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::getBit → KILLED
2. combine : removed call to java/util/BitSet::set → KILLED
			secondChildBitSet.set(i, bitChromosome2.getBit(i));
46
		}
47 4 1. combine : removed conditional - replaced comparison check with true → KILLED
2. combine : negated conditional → KILLED
3. combine : changed conditional boundary → KILLED
4. combine : removed conditional - replaced comparison check with false → KILLED
		for (int i = alleleSplit; i < numAlleles; i++) {
48 2 1. combine : removed call to java/util/BitSet::set → KILLED
2. combine : removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::getBit → KILLED
			firstChildBitSet.set(i, bitChromosome2.getBit(i));
49 2 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::getBit → KILLED
2. combine : removed call to java/util/BitSet::set → KILLED
			secondChildBitSet.set(i, bitChromosome1.getBit(i));
50
		}
51
52 4 1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::<init> → KILLED
2. combine : replaced return value with Collections.emptyList for net/bmahe/genetics4j/core/combination/singlepointcrossover/BitChromosomeSinglePointCrossover::combine → KILLED
3. combine : removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::<init> → KILLED
4. combine : removed call to java/util/List::of → KILLED
		return List.of(new BitChromosome(numAlleles, firstChildBitSet), new BitChromosome(numAlleles, secondChildBitSet));
53
	}
54
}

Mutations

22

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

34

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

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.EASystemTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.EASystemTest]/[method:evolveWithBitChromosome()]
removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED

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

39

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

40

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

41

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

43

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

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

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

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

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

44

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

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest]/[method:combineTest()]
removed call to java/util/BitSet::set → KILLED

45

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

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest]/[method:combineTest()]
removed call to java/util/BitSet::set → KILLED

47

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

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

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

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

48

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

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest]/[method:combineTest()]
removed call to net/bmahe/genetics4j/core/chromosomes/BitChromosome::getBit → KILLED

49

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

2.2
Location : combine
Killed by : net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest]/[method:combineTest()]
removed call to java/util/BitSet::set → KILLED

52

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

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

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

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

Active mutators

Tests examined


Report generated by PIT 1.25.7 support