blob: d8c1255ca2b58df7838c2bd4de3b66757ee7b5ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package jcgp.modules.fitness;
import java.util.HashMap;
import jcgp.JCGP.Resources;
import jcgp.modules.ModuleStatus;
import jcgp.parameters.Parameter;
import jcgp.population.Population;
public class TestCaseEvaluator implements FitnessFunction {
@Override
public void evaluate(Population population, Resources resources) {
// for every chromosome in the population
for (int i = 0; i < resources.getInt("popSize"); i++) {
int fitness = 0;
// for every test case
for (int t = 0; t < resources.getTestCaseCount(); t++) {
population.getChromosome(i).setInputs(resources.getTestCase(t).getInputs());
// check every output
for (int o = 0; o < resources.getInt("outputs"); o++) {
if (population.getChromosome(i).getOutput(o).calculate() == resources.getTestCase(t).getOutput(o)) {
fitness++;
}
}
}
population.getChromosome(i).setFitness(fitness);
}
}
@Override
public HashMap<String, Parameter> getLocalParameters() {
return null;
}
@Override
public String toString() {
return "Test case";
}
@Override
public ModuleStatus getStatus(Resources resources) {
return null;
}
}
|