diff options
Diffstat (limited to 'src/jcgp/modules/fitness/TestCaseEvaluator.java')
-rw-r--r-- | src/jcgp/modules/fitness/TestCaseEvaluator.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/jcgp/modules/fitness/TestCaseEvaluator.java b/src/jcgp/modules/fitness/TestCaseEvaluator.java new file mode 100644 index 0000000..1dade74 --- /dev/null +++ b/src/jcgp/modules/fitness/TestCaseEvaluator.java @@ -0,0 +1,34 @@ +package jcgp.modules.fitness; + +import java.util.HashMap; + +import jcgp.CGP.Resources; +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 < (int) resources.get("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 < (int) resources.get("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> activate(Resources parameters) { + return new HashMap<String, Parameter>(); + } +} |