|
1
|
|
package net.bmahe.genetics4j.gp.program; |
|
2
|
|
|
|
3
|
|
import org.apache.commons.lang3.Validate; |
|
4
|
|
|
|
5
|
|
import net.bmahe.genetics4j.core.chromosomes.TreeNode; |
|
6
|
|
import net.bmahe.genetics4j.gp.Operation; |
|
7
|
|
import net.bmahe.genetics4j.gp.OperationFactory; |
|
8
|
|
|
|
9
|
|
public class GrowProgramGenerator implements ProgramGenerator { |
|
10
|
|
|
|
11
|
|
private final ProgramHelper programHelper; |
|
12
|
|
|
|
13
|
|
@SuppressWarnings({ "unchecked", "rawtypes" }) |
|
14
|
|
private <T, U> TreeNode<Operation<T>> generate(final Program program, final Class<U> acceptedType, |
|
15
|
|
final int maxDepth, final int depth) { |
|
16
|
|
|
|
17
|
6
1. generate : Substituted 1 with 0 → SURVIVED
2. generate : removed conditional - replaced comparison check with false → SURVIVED
3. generate : Replaced integer subtraction with addition → SURVIVED
4. generate : negated conditional → SURVIVED
5. generate : removed conditional - replaced comparison check with true → KILLED
6. generate : changed conditional boundary → KILLED
|
OperationFactory currentNode = depth < maxDepth - 1 |
|
18
|
1
1. generate : removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomFunctionOrTerminal → KILLED
|
? programHelper.pickRandomFunctionOrTerminal(program, acceptedType) |
|
19
|
1
1. generate : removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomTerminal → KILLED
|
: programHelper.pickRandomTerminal(program, acceptedType); |
|
20
|
|
|
|
21
|
2
1. generate : removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
2. generate : removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED
|
final Operation<T> currentOperation = currentNode.build(program.inputSpec()); |
|
22
|
1
1. generate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
|
final TreeNode<Operation<T>> currentTreeNode = new TreeNode<>(currentOperation); |
|
23
|
|
|
|
24
|
1
1. generate : removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED
|
final Class[] acceptedTypes = currentNode.acceptedTypes(); |
|
25
|
|
|
|
26
|
5
1. generate : Substituted 0 with 1 → SURVIVED
2. generate : removed conditional - replaced comparison check with false → SURVIVED
3. generate : negated conditional → KILLED
4. generate : removed conditional - replaced comparison check with true → KILLED
5. generate : changed conditional boundary → KILLED
|
for (int i = 0; i < acceptedTypes.length; i++) { |
|
27
|
|
final Class childAcceptedType = acceptedTypes[i]; |
|
28
|
3
1. generate : Substituted 1 with 0 → KILLED
2. generate : Replaced integer addition with subtraction → KILLED
3. generate : removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
final TreeNode<Operation<T>> operation = generate(program, childAcceptedType, maxDepth, depth + 1); |
|
29
|
|
|
|
30
|
1
1. generate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
|
currentTreeNode.addChild(operation); |
|
31
|
|
} |
|
32
|
|
|
|
33
|
1
1. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
return currentTreeNode; |
|
34
|
|
} |
|
35
|
|
|
|
36
|
|
public GrowProgramGenerator(final ProgramHelper _programHelper) { |
|
37
|
|
Validate.notNull(_programHelper); |
|
38
|
|
|
|
39
|
1
1. <init> : Removed assignment to member variable programHelper → KILLED
|
this.programHelper = _programHelper; |
|
40
|
|
} |
|
41
|
|
|
|
42
|
|
@Override |
|
43
|
|
public TreeNode<Operation<?>> generate(final Program program) { |
|
44
|
3
1. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → NO_COVERAGE
2. generate : removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → NO_COVERAGE
3. generate : removed call to net/bmahe/genetics4j/gp/program/Program::maxDepth → NO_COVERAGE
|
return generate(program, program.maxDepth()); |
|
45
|
|
} |
|
46
|
|
|
|
47
|
|
@SuppressWarnings("rawtypes") |
|
48
|
|
@Override |
|
49
|
|
public TreeNode<Operation<?>> generate(final Program program, final int maxDepth) { |
|
50
|
|
Validate.notNull(program); |
|
51
|
|
Validate.isTrue(maxDepth > 0); |
|
52
|
|
|
|
53
|
1
1. generate : removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomFunctionOrTerminal → KILLED
|
final OperationFactory currentNode = programHelper.pickRandomFunctionOrTerminal(program); |
|
54
|
|
|
|
55
|
2
1. generate : removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
2. generate : removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED
|
final Operation currentOperation = currentNode.build(program.inputSpec()); |
|
56
|
1
1. generate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
|
final TreeNode<Operation<?>> currentTreeNode = new TreeNode<>(currentOperation); |
|
57
|
|
|
|
58
|
1
1. generate : removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED
|
final Class[] acceptedTypes = currentNode.acceptedTypes(); |
|
59
|
|
|
|
60
|
5
1. generate : removed conditional - replaced comparison check with false → SURVIVED
2. generate : Substituted 0 with 1 → SURVIVED
3. generate : negated conditional → KILLED
4. generate : removed conditional - replaced comparison check with true → KILLED
5. generate : changed conditional boundary → KILLED
|
for (int i = 0; i < acceptedTypes.length; i++) { |
|
61
|
|
final Class acceptedType = acceptedTypes[i]; |
|
62
|
2
1. generate : Substituted 1 with 0 → SURVIVED
2. generate : removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
final TreeNode<Operation<?>> operation = generate(program, acceptedType, maxDepth, 1); |
|
63
|
|
|
|
64
|
1
1. generate : removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
|
currentTreeNode.addChild(operation); |
|
65
|
|
} |
|
66
|
|
|
|
67
|
1
1. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
return currentTreeNode; |
|
68
|
|
} |
|
69
|
|
|
|
70
|
|
@Override |
|
71
|
|
public <T, U> TreeNode<Operation<T>> generate(final Program program, final int maxDepth, final Class<U> rootType) { |
|
72
|
|
Validate.notNull(program); |
|
73
|
|
Validate.notNull(rootType); |
|
74
|
|
Validate.isTrue(maxDepth > 0); |
|
75
|
|
|
|
76
|
3
1. generate : Substituted 0 with 1 → SURVIVED
2. generate : removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
3. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
return generate(program, rootType, maxDepth, 0); |
|
77
|
|
} |
|
78
|
|
} |
| | Mutations |
| 17 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed conditional - replaced comparison check with true → KILLED
2.2 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] changed conditional boundary → KILLED
3.3 Location : generate Killed by : none Substituted 1 with 0 → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
4.4 Location : generate Killed by : none removed conditional - replaced comparison check with false → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
5.5 Location : generate Killed by : none Replaced integer subtraction with addition → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
6.6 Location : generate Killed by : none negated conditional → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
|
| 18 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomFunctionOrTerminal → KILLED
|
| 19 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomTerminal → KILLED
|
| 21 |
|
1.1 Location : generate Killed by : none removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
2.2 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED
|
| 22 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
|
| 24 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED
|
| 26 |
|
1.1 Location : generate Killed by : none Substituted 0 with 1 → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
2.2 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] negated conditional → KILLED
3.3 Location : generate Killed by : none removed conditional - replaced comparison check with false → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
4.4 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed conditional - replaced comparison check with true → KILLED
5.5 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] changed conditional boundary → KILLED
|
| 28 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] Substituted 1 with 0 → KILLED
2.2 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] Replaced integer addition with subtraction → KILLED
3.3 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
| 30 |
|
1.1 Location : generate Killed by : none removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
|
| 33 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
| 39 |
|
1.1 Location : <init> Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] Removed assignment to member variable programHelper → KILLED
|
| 44 |
|
1.1 Location : generate Killed by : none replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → NO_COVERAGE
2.2 Location : generate Killed by : none removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → NO_COVERAGE
3.3 Location : generate Killed by : none removed call to net/bmahe/genetics4j/gp/program/Program::maxDepth → NO_COVERAGE
|
| 53 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomFunctionOrTerminal → KILLED
|
| 55 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED
2.2 Location : generate Killed by : none removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
|
| 56 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED
|
| 58 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED
|
| 60 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] negated conditional → KILLED
2.2 Location : generate Killed by : none removed conditional - replaced comparison check with false → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
3.3 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed conditional - replaced comparison check with true → KILLED
4.4 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] changed conditional boundary → KILLED
5.5 Location : generate Killed by : none Substituted 0 with 1 → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
|
| 62 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
2.2 Location : generate Killed by : none Substituted 1 with 0 → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
|
| 64 |
|
1.1 Location : generate Killed by : none removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()]
|
| 67 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generate()] replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|
| 76 |
|
1.1 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] removed call to net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
2.2 Location : generate Killed by : none Substituted 0 with 1 → SURVIVED
Covering tests
Covered by tests:
- net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()]
3.3 Location : generate Killed by : net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.GrowProgramGeneratorTest]/[method:generateWithRootType()] replaced return value with null for net/bmahe/genetics4j/gp/program/GrowProgramGenerator::generate → KILLED
|