MultiProgramGenerator.java

1
package net.bmahe.genetics4j.gp.program;
2
3
import java.util.ArrayList;
4
import java.util.Collection;
5
import java.util.List;
6
import java.util.Objects;
7
import java.util.random.RandomGenerator;
8
9
import org.apache.commons.lang3.Validate;
10
11
import net.bmahe.genetics4j.core.chromosomes.TreeNode;
12
import net.bmahe.genetics4j.gp.Operation;
13
14
public class MultiProgramGenerator implements ProgramGenerator {
15
16 2 1. <init> : removed call to java/util/ArrayList::<init> → NO_COVERAGE
2. <init> : Removed assignment to member variable programGenerators → NO_COVERAGE
	private final List<ProgramGenerator> programGenerators = new ArrayList<>();
17
18
	private final RandomGenerator randomGenerator;
19
20
	public MultiProgramGenerator(final RandomGenerator _randomGenerator,
21
			final Collection<ProgramGenerator> _programGenerators) {
22
		Objects.requireNonNull(_randomGenerator);
23
		Objects.requireNonNull(_programGenerators);
24
		Validate.isTrue(_programGenerators.isEmpty() == false, "At least one program generator must be provided");
25
26 1 1. <init> : Removed assignment to member variable randomGenerator → NO_COVERAGE
		this.randomGenerator = _randomGenerator;
27 1 1. <init> : removed call to java/util/List::addAll → NO_COVERAGE
		this.programGenerators.addAll(_programGenerators);
28
	}
29
30
	private ProgramGenerator pickProgramGenerator() {
31 3 1. pickProgramGenerator : removed call to java/util/List::size → NO_COVERAGE
2. pickProgramGenerator : replaced call to java/util/random/RandomGenerator::nextInt with argument → NO_COVERAGE
3. pickProgramGenerator : removed call to java/util/random/RandomGenerator::nextInt → NO_COVERAGE
		final int programGeneratorIndex = randomGenerator.nextInt(programGenerators.size());
32
33 2 1. pickProgramGenerator : removed call to java/util/List::get → NO_COVERAGE
2. pickProgramGenerator : replaced return value with null for net/bmahe/genetics4j/gp/program/MultiProgramGenerator::pickProgramGenerator → NO_COVERAGE
		return programGenerators.get(programGeneratorIndex);
34
	}
35
36
	@Override
37
	public TreeNode<Operation<?>> generate(final Program program) {
38
		Objects.requireNonNull(program);
39
40 1 1. generate : removed call to net/bmahe/genetics4j/gp/program/MultiProgramGenerator::pickProgramGenerator → NO_COVERAGE
		final ProgramGenerator programGenerator = pickProgramGenerator();
41 2 1. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/MultiProgramGenerator::generate → NO_COVERAGE
2. generate : removed call to net/bmahe/genetics4j/gp/program/ProgramGenerator::generate → NO_COVERAGE
		return programGenerator.generate(program);
42
	}
43
44
	@Override
45
	public <T> TreeNode<Operation<T>> generate(final Program program, final int maxDepth) {
46
		Objects.requireNonNull(program);
47
		Validate.isTrue(maxDepth > 0);
48
49 1 1. generate : removed call to net/bmahe/genetics4j/gp/program/MultiProgramGenerator::pickProgramGenerator → NO_COVERAGE
		final ProgramGenerator programGenerator = pickProgramGenerator();
50 2 1. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/MultiProgramGenerator::generate → NO_COVERAGE
2. generate : removed call to net/bmahe/genetics4j/gp/program/ProgramGenerator::generate → NO_COVERAGE
		return programGenerator.generate(program, maxDepth);
51
	}
52
53
	@Override
54
	public <T, U> TreeNode<Operation<T>> generate(final Program program, final int maxDepth, final Class<U> rootType) {
55
		Objects.requireNonNull(program);
56
		Validate.isTrue(maxDepth > 0);
57
		Objects.requireNonNull(program);
58
59 1 1. generate : removed call to net/bmahe/genetics4j/gp/program/MultiProgramGenerator::pickProgramGenerator → NO_COVERAGE
		final ProgramGenerator programGenerator = pickProgramGenerator();
60 2 1. generate : removed call to net/bmahe/genetics4j/gp/program/ProgramGenerator::generate → NO_COVERAGE
2. generate : replaced return value with null for net/bmahe/genetics4j/gp/program/MultiProgramGenerator::generate → NO_COVERAGE
		return programGenerator.generate(program, maxDepth, rootType);
61
	}
62
}

Mutations

16

1.1
Location : <init>
Killed by : none
removed call to java/util/ArrayList::<init> → NO_COVERAGE

2.2
Location : <init>
Killed by : none
Removed assignment to member variable programGenerators → NO_COVERAGE

26

1.1
Location : <init>
Killed by : none
Removed assignment to member variable randomGenerator → NO_COVERAGE

27

1.1
Location : <init>
Killed by : none
removed call to java/util/List::addAll → NO_COVERAGE

31

1.1
Location : pickProgramGenerator
Killed by : none
removed call to java/util/List::size → NO_COVERAGE

2.2
Location : pickProgramGenerator
Killed by : none
replaced call to java/util/random/RandomGenerator::nextInt with argument → NO_COVERAGE

3.3
Location : pickProgramGenerator
Killed by : none
removed call to java/util/random/RandomGenerator::nextInt → NO_COVERAGE

33

1.1
Location : pickProgramGenerator
Killed by : none
removed call to java/util/List::get → NO_COVERAGE

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

40

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

41

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

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

49

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

50

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

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

59

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

60

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

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

Active mutators

Tests examined


Report generated by PIT 1.25.7 support