1 | package net.bmahe.genetics4j.gp.spec.mutation; | |
2 | ||
3 | import java.util.Optional; | |
4 | ||
5 | import org.apache.commons.lang3.Validate; | |
6 | import org.immutables.value.Value; | |
7 | ||
8 | import net.bmahe.genetics4j.core.spec.mutation.MutationPolicy; | |
9 | ||
10 | /** | |
11 | * Ensure no tree will have a greater depth than allowed | |
12 | * <p>By default it will use the depth as specified in the Program definition, but that can be overriden | |
13 | * | |
14 | */ | |
15 | @Value.Immutable | |
16 | public interface TrimTree extends MutationPolicy { | |
17 | ||
18 | /** | |
19 | * Override the max depth to enforce | |
20 | * | |
21 | * @return | |
22 | */ | |
23 | @Value.Parameter | |
24 | @Value.Default | |
25 | public default Optional<Integer> maxDepth() { | |
26 |
1
1. maxDepth : removed call to java/util/Optional::empty → NO_COVERAGE |
return Optional.empty(); |
27 | } | |
28 | ||
29 | @Value.Check | |
30 | default void check() { | |
31 | maxDepth().ifPresent(maxDepth -> Validate.isTrue(maxDepth > 0)); | |
32 | } | |
33 | ||
34 | /** | |
35 | * Build a TrimTree enforcing a specific max depth | |
36 | * | |
37 | * @param maxDepth | |
38 | * @return | |
39 | */ | |
40 | public static TrimTree of(final int maxDepth) { | |
41 |
4
1. of : replaced return value with null for net/bmahe/genetics4j/gp/spec/mutation/TrimTree::of → NO_COVERAGE 2. of : removed call to net/bmahe/genetics4j/gp/spec/mutation/ImmutableTrimTree::of → NO_COVERAGE 3. of : removed call to java/util/Optional::of → NO_COVERAGE 4. of : removed call to java/lang/Integer::valueOf → NO_COVERAGE |
return ImmutableTrimTree.of(Optional.of(maxDepth)); |
42 | } | |
43 | ||
44 | /** | |
45 | * Build a TrimTree using the default max depth as specified in the Program | |
46 | * | |
47 | * @return | |
48 | */ | |
49 | public static TrimTree build() { | |
50 |
2
1. build : removed call to net/bmahe/genetics4j/gp/spec/mutation/ImmutableTrimTree::builder → NO_COVERAGE 2. build : replaced return value with null for net/bmahe/genetics4j/gp/spec/mutation/TrimTree::build → NO_COVERAGE |
return ImmutableTrimTree.builder() |
51 |
1
1. build : removed call to net/bmahe/genetics4j/gp/spec/mutation/ImmutableTrimTree$Builder::build → NO_COVERAGE |
.build(); |
52 | } | |
53 | } | |
Mutations | ||
26 |
1.1 |
|
41 |
1.1 2.2 3.3 4.4 |
|
50 |
1.1 2.2 |
|
51 |
1.1 |