aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/modules/problem/TestCaseProblem.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/modules/problem/TestCaseProblem.java')
-rw-r--r--src/jcgp/backend/modules/problem/TestCaseProblem.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/jcgp/backend/modules/problem/TestCaseProblem.java b/src/jcgp/backend/modules/problem/TestCaseProblem.java
index 69c078d..188e236 100644
--- a/src/jcgp/backend/modules/problem/TestCaseProblem.java
+++ b/src/jcgp/backend/modules/problem/TestCaseProblem.java
@@ -5,6 +5,7 @@ import java.io.File;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import jcgp.backend.parsers.TestCaseParser;
+import jcgp.backend.population.Population;
import jcgp.backend.resources.ModifiableResources;
import jcgp.backend.resources.Resources;
@@ -162,6 +163,24 @@ public abstract class TestCaseProblem<T> extends Problem {
// use standard test case parser for this
TestCaseParser.parse(file, this, resources);
}
+
+ @Override
+ public int hasImprovement(Population population) {
+ for (int i = 0; i < getResources().populationSize(); i++) {
+ if (getFitnessOrientation() == BestFitness.HIGH) {
+ if (population.get(i).getFitness() > bestFitness.get()) {
+ bestFitness.set(population.get(i).getFitness());
+ return i;
+ }
+ } else {
+ if (population.get(i).getFitness() < bestFitness.get()) {
+ bestFitness.set(population.get(i).getFitness());
+ return i;
+ }
+ }
+ }
+ return -1;
+ }
}