| 1 | package net.bmahe.genetics4j.core.chromosomes.factory; | |
| 2 | ||
| 3 | import java.util.ArrayList; | |
| 4 | import java.util.Arrays; | |
| 5 | import java.util.List; | |
| 6 | import java.util.Objects; | |
| 7 | import java.util.function.Function; | |
| 8 | import java.util.random.RandomGenerator; | |
| 9 | ||
| 10 | import org.apache.logging.log4j.LogManager; | |
| 11 | import org.apache.logging.log4j.Logger; | |
| 12 | import org.immutables.value.Value; | |
| 13 | ||
| 14 | import net.bmahe.genetics4j.core.chromosomes.Chromosome; | |
| 15 | import net.bmahe.genetics4j.core.spec.chromosome.ChromosomeSpec; | |
| 16 | ||
| 17 | @Value.Immutable | |
| 18 | public abstract class ChromosomeFactoryProvider { | |
| 19 | public static final Logger logger = LogManager.getLogger(ChromosomeFactoryProvider.class); | |
| 20 | ||
| 21 | public abstract RandomGenerator randomGenerator(); | |
| 22 | ||
| 23 | @Value.Default | |
| 24 | public List<ChromosomeFactory<? extends Chromosome>> defaultChromosomeFactories() { | |
| 25 |
1
1. defaultChromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::randomGenerator → KILLED |
final var randomGenerator = randomGenerator(); |
| 26 | ||
| 27 |
11
1. defaultChromosomeFactories : removed call to java/util/Arrays::asList → KILLED 2. defaultChromosomeFactories : Substituted 4 with 5 → KILLED 3. defaultChromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/FloatChromosomeFactory::<init> → KILLED 4. defaultChromosomeFactories : Substituted 3 with 4 → KILLED 5. defaultChromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/IntChromosomeFactory::<init> → KILLED 6. defaultChromosomeFactories : Substituted 1 with 0 → KILLED 7. defaultChromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/DoubleChromosomeFactory::<init> → KILLED 8. defaultChromosomeFactories : Substituted 0 with 1 → KILLED 9. defaultChromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/BitChromosomeFactory::<init> → KILLED 10. defaultChromosomeFactories : Substituted 2 with 3 → KILLED 11. defaultChromosomeFactories : replaced return value with Collections.emptyList for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::defaultChromosomeFactories → KILLED |
return Arrays.asList( |
| 28 | new BitChromosomeFactory(randomGenerator), | |
| 29 | new IntChromosomeFactory(randomGenerator), | |
| 30 | new DoubleChromosomeFactory(randomGenerator), | |
| 31 | new FloatChromosomeFactory(randomGenerator)); | |
| 32 | } | |
| 33 | ||
| 34 | public abstract List<Function<ChromosomeFactoryProvider, ChromosomeFactory<? extends Chromosome>>> chromosomeFactoriesGenerator(); | |
| 35 | ||
| 36 | @Value.Derived | |
| 37 | public List<ChromosomeFactory<? extends Chromosome>> chromosomeFactories() { | |
| 38 | ||
| 39 |
1
1. chromosomeFactories : removed call to java/util/ArrayList::<init> → KILLED |
final List<ChromosomeFactory<? extends Chromosome>> chromosomeFactories = new ArrayList<>(); |
| 40 | ||
| 41 |
1
1. chromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::defaultChromosomeFactories → KILLED |
final List<ChromosomeFactory<? extends Chromosome>> defaultChromosomeFactories = defaultChromosomeFactories(); |
| 42 |
4
1. chromosomeFactories : removed conditional - replaced equality check with true → SURVIVED 2. chromosomeFactories : removed call to java/util/List::isEmpty → SURVIVED 3. chromosomeFactories : negated conditional → KILLED 4. chromosomeFactories : removed conditional - replaced equality check with false → KILLED |
if (defaultChromosomeFactories.isEmpty() == false) { |
| 43 |
1
1. chromosomeFactories : removed call to java/util/List::addAll → KILLED |
chromosomeFactories.addAll(defaultChromosomeFactories); |
| 44 | } | |
| 45 | ||
| 46 |
2
1. chromosomeFactories : removed call to java/util/List::stream → KILLED 2. chromosomeFactories : removed call to net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::chromosomeFactoriesGenerator → KILLED |
chromosomeFactoriesGenerator().stream() |
| 47 |
5
1. lambda$chromosomeFactories$0 : removed call to java/util/function/Function::apply → NO_COVERAGE 2. lambda$chromosomeFactories$0 : replaced return value with null for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::lambda$chromosomeFactories$0 → NO_COVERAGE 3. lambda$chromosomeFactories$0 : replaced call to java/util/function/Function::apply with argument → NO_COVERAGE 4. chromosomeFactories : replaced call to java/util/stream/Stream::map with receiver → SURVIVED 5. chromosomeFactories : removed call to java/util/stream/Stream::map → KILLED |
.map(generator -> generator.apply(this)) |
| 48 |
2
1. lambda$chromosomeFactories$1 : removed call to java/util/List::add → NO_COVERAGE 2. chromosomeFactories : removed call to java/util/stream/Stream::forEach → SURVIVED |
.forEach(cf -> chromosomeFactories.add(cf)); |
| 49 | ||
| 50 |
1
1. chromosomeFactories : replaced return value with Collections.emptyList for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::chromosomeFactories → KILLED |
return chromosomeFactories; |
| 51 | } | |
| 52 | ||
| 53 | public ChromosomeFactory<? extends Chromosome> provideChromosomeFactory(final ChromosomeSpec chromosomeSpec) { | |
| 54 | Objects.requireNonNull(chromosomeSpec); | |
| 55 | ||
| 56 |
1
1. provideChromosomeFactory : removed call to net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::chromosomeFactories → KILLED |
final List<ChromosomeFactory<? extends Chromosome>> chromosomeFactories = chromosomeFactories(); |
| 57 | ||
| 58 | logger.trace("Known chromosome factories: {}", chromosomeFactories); | |
| 59 | ||
| 60 |
2
1. provideChromosomeFactory : replaced return value with null for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::provideChromosomeFactory → KILLED 2. provideChromosomeFactory : removed call to java/util/List::stream → KILLED |
return chromosomeFactories.stream() |
| 61 |
9
1. lambda$provideChromosomeFactory$0 : removed call to net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactory::canHandle → KILLED 2. lambda$provideChromosomeFactory$0 : replaced boolean return with true for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::lambda$provideChromosomeFactory$0 → KILLED 3. lambda$provideChromosomeFactory$0 : removed conditional - replaced equality check with true → KILLED 4. provideChromosomeFactory : removed call to java/util/stream/Stream::dropWhile → KILLED 5. lambda$provideChromosomeFactory$0 : Substituted 0 with 1 → KILLED 6. lambda$provideChromosomeFactory$0 : Substituted 1 with 0 → KILLED 7. provideChromosomeFactory : replaced call to java/util/stream/Stream::dropWhile with receiver → KILLED 8. lambda$provideChromosomeFactory$0 : negated conditional → KILLED 9. lambda$provideChromosomeFactory$0 : removed conditional - replaced equality check with false → KILLED |
.dropWhile(chromosomeFactory -> chromosomeFactory.canHandle(chromosomeSpec) == false) |
| 62 |
1
1. provideChromosomeFactory : removed call to java/util/stream/Stream::findFirst → KILLED |
.findFirst() |
| 63 |
1
1. provideChromosomeFactory : removed call to java/util/Optional::orElseThrow → KILLED |
.orElseThrow( |
| 64 |
3
1. lambda$provideChromosomeFactory$1 : removed call to java/lang/String::valueOf → SURVIVED 2. lambda$provideChromosomeFactory$1 : replaced return value with null for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::lambda$provideChromosomeFactory$1 → KILLED 3. lambda$provideChromosomeFactory$1 : removed call to java/lang/IllegalStateException::<init> → KILLED |
() -> new IllegalStateException( |
| 65 | "Could not find a chromosome factory for chromosome spec: " + chromosomeSpec)); | |
| 66 | } | |
| 67 | ||
| 68 | public static ImmutableChromosomeFactoryProvider.Builder builder() { | |
| 69 |
2
1. builder : replaced return value with null for net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactoryProvider::builder → KILLED 2. builder : removed call to net/bmahe/genetics4j/core/chromosomes/factory/ImmutableChromosomeFactoryProvider::builder → KILLED |
return ImmutableChromosomeFactoryProvider.builder(); |
| 70 | } | |
| 71 | } | |
Mutations | ||
| 25 |
1.1 |
|
| 27 |
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 10.10 11.11 |
|
| 39 |
1.1 |
|
| 41 |
1.1 |
|
| 42 |
1.1 2.2 3.3 4.4 |
|
| 43 |
1.1 |
|
| 46 |
1.1 2.2 |
|
| 47 |
1.1 2.2 3.3 4.4 5.5 |
|
| 48 |
1.1 2.2 |
|
| 50 |
1.1 |
|
| 56 |
1.1 |
|
| 60 |
1.1 2.2 |
|
| 61 |
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 |
|
| 62 |
1.1 |
|
| 63 |
1.1 |
|
| 64 |
1.1 2.2 3.3 |
|
| 69 |
1.1 2.2 |