FullProgramGenerator.java

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

Mutations

19

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomFunction → KILLED

2.2
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed conditional - replaced comparison check with true → KILLED

3.3
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
Replaced integer subtraction with addition → KILLED

4.4
Location : generate
Killed by : none
negated conditional → SURVIVED
Covering tests

5.5
Location : generate
Killed by : none
removed conditional - replaced comparison check with false → SURVIVED Covering tests

6.6
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
changed conditional boundary → KILLED

7.7
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
Substituted 1 with 0 → KILLED

20

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomTerminal → KILLED

22

1.1
Location : generate
Killed by : none
removed call to net/bmahe/genetics4j/gp/program/Program::inputSpec → SURVIVED
Covering tests

2.2
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::build → KILLED

23

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED

25

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED

27

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
changed conditional boundary → KILLED

2.2
Location : generate
Killed by : none
removed conditional - replaced comparison check with false → SURVIVED
Covering tests

3.3
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed conditional - replaced comparison check with true → KILLED

4.4
Location : generate
Killed by : none
negated conditional → SURVIVED Covering tests

5.5
Location : generate
Killed by : none
Substituted 0 with 1 → SURVIVED Covering tests

29

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
Replaced integer addition with subtraction → KILLED

2.2
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
Substituted 1 with 0 → KILLED

3.3
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → KILLED

31

1.1
Location : generate
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
Covering tests

34

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
replaced return value with null for net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → KILLED

40

1.1
Location : <init>
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
Removed assignment to member variable programHelper → KILLED

45

1.1
Location : generate
Killed by : none
removed call to net/bmahe/genetics4j/gp/program/Program::maxDepth → NO_COVERAGE

2.2
Location : generate
Killed by : none
replaced return value with null for net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → NO_COVERAGE

3.3
Location : generate
Killed by : none
removed call to net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → NO_COVERAGE

54

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/program/ProgramHelper::pickRandomFunction → KILLED

56

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[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

57

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::<init> → KILLED

59

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/OperationFactory::acceptedTypes → KILLED

61

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
changed conditional boundary → KILLED

2.2
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed conditional - replaced comparison check with true → KILLED

3.3
Location : generate
Killed by : none
negated conditional → SURVIVED
Covering tests

4.4
Location : generate
Killed by : none
Substituted 0 with 1 → SURVIVED Covering tests

5.5
Location : generate
Killed by : none
removed conditional - replaced comparison check with false → SURVIVED Covering tests

63

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
removed call to net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → KILLED

2.2
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
Substituted 1 with 0 → KILLED

65

1.1
Location : generate
Killed by : none
removed call to net/bmahe/genetics4j/core/chromosomes/TreeNode::addChild → SURVIVED
Covering tests

68

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generate()]
replaced return value with null for net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → KILLED

77

1.1
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generateWithRootType()]
replaced return value with null for net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → KILLED

2.2
Location : generate
Killed by : none
Substituted 0 with 1 → SURVIVED
Covering tests

3.3
Location : generate
Killed by : net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest.[engine:junit-jupiter]/[class:net.bmahe.genetics4j.gp.program.FullProgramGeneratorTest]/[method:generateWithRootType()]
removed call to net/bmahe/genetics4j/gp/program/FullProgramGenerator::generate → KILLED

Active mutators

Tests examined


Report generated by PIT 1.25.7 support