|
1
|
|
package net.bmahe.genetics4j.core.combination.singlepointcrossover; |
|
2
|
|
|
|
3
|
|
import java.util.BitSet; |
|
4
|
|
import java.util.List; |
|
5
|
|
import java.util.random.RandomGenerator; |
|
6
|
|
|
|
7
|
|
import org.apache.commons.lang3.Validate; |
|
8
|
|
|
|
9
|
|
import net.bmahe.genetics4j.core.chromosomes.BitChromosome; |
|
10
|
|
import net.bmahe.genetics4j.core.chromosomes.Chromosome; |
|
11
|
|
import net.bmahe.genetics4j.core.combination.ChromosomeCombinator; |
|
12
|
|
import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration; |
|
13
|
|
|
|
14
|
|
public class BitChromosomeSinglePointCrossover<T extends Comparable<T>> implements ChromosomeCombinator<T> { |
|
15
|
|
|
|
16
|
|
private final RandomGenerator randomGenerator; |
|
17
|
|
|
|
18
|
|
public BitChromosomeSinglePointCrossover(final RandomGenerator _randomGenerator) { |
|
19
|
|
Validate.notNull(_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
|
|
Validate.notNull(chromosome1); |
|
28
|
|
Validate.notNull(chromosome2); |
|
29
|
|
Validate.isInstanceOf(BitChromosome.class, chromosome1); |
|
30
|
|
Validate.isInstanceOf(BitChromosome.class, chromosome2); |
|
31
|
|
Validate.isTrue(chromosome1.getNumAlleles() == chromosome2.getNumAlleles()); |
|
32
|
|
|
|
33
|
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()); |
|
34
|
|
|
|
35
|
|
final BitChromosome bitChromosome1 = (BitChromosome) chromosome1; |
|
36
|
|
final BitChromosome bitChromosome2 = (BitChromosome) chromosome2; |
|
37
|
|
|
|
38
|
1
1. combine : removed call to net/bmahe/genetics4j/core/chromosomes/Chromosome::getNumAlleles → KILLED
|
final int numAlleles = chromosome1.getNumAlleles(); |
|
39
|
1
1. combine : removed call to java/util/BitSet::<init> → KILLED
|
final BitSet firstChildBitSet = new BitSet(numAlleles); |
|
40
|
1
1. combine : removed call to java/util/BitSet::<init> → KILLED
|
final BitSet secondChildBitSet = new BitSet(numAlleles); |
|
41
|
|
|
|
42
|
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++) { |
|
43
|
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)); |
|
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
|
secondChildBitSet.set(i, bitChromosome2.getBit(i)); |
|
45
|
|
} |
|
46
|
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++) { |
|
47
|
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)); |
|
48
|
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)); |
|
49
|
|
} |
|
50
|
|
|
|
51
|
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)); |
|
52
|
|
} |
|
53
|
|
} |
| | Mutations |
| 21 |
|
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
|
| 33 |
|
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:testEvolveWithPostEvaluationProcessor()] 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
|
| 38 |
|
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
|
| 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 java/util/BitSet::<init> → 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
|
| 42 |
|
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
Covered by tests:
- net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.combination.singlepointcrossover.BitChromosomeSinglePointCrossoverTest]/[method:combineTest()]
- net.bmahe.genetics4j.core.EASystemTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.EASystemTest]/[method:testEvolveWithPostEvaluationProcessor()]
- net.bmahe.genetics4j.core.EASystemTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.core.EASystemTest]/[method:testEvolveWithBitChromosome()]
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
|
| 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()] 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
|
| 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
|
| 46 |
|
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
|
| 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 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
|
| 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 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
|
| 51 |
|
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
|