Tests for GenerationTerminator

refs #61
This commit is contained in:
Fabian Becker 2015-12-21 12:42:54 +01:00
parent 28f442af50
commit 469e2033d6
2 changed files with 64 additions and 15 deletions

View File

@ -4,6 +4,7 @@ import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface; import eva2.optimization.population.PopulationInterface;
import eva2.problems.InterfaceOptimizationProblem; import eva2.problems.InterfaceOptimizationProblem;
import eva2.util.annotation.Description; import eva2.util.annotation.Description;
import eva2.util.annotation.Parameter;
import java.io.Serializable; import java.io.Serializable;
@ -24,8 +25,7 @@ public class GenerationTerminator implements InterfaceTerminator, Serializable {
msg = "Not terminated."; msg = "Not terminated.";
} }
public GenerationTerminator() { public GenerationTerminator() {}
}
public GenerationTerminator(int gens) { public GenerationTerminator(int gens) {
maxGenerations = gens; maxGenerations = gens;
@ -37,8 +37,8 @@ public class GenerationTerminator implements InterfaceTerminator, Serializable {
} }
@Override @Override
public boolean isTerminated(PopulationInterface Pop) { public boolean isTerminated(PopulationInterface pop) {
if (maxGenerations < Pop.getGeneration()) { if (maxGenerations < pop.getGeneration()) {
msg = maxGenerations + " generations reached."; msg = maxGenerations + " generations reached.";
return true; return true;
} }
@ -52,10 +52,10 @@ public class GenerationTerminator implements InterfaceTerminator, Serializable {
@Override @Override
public String toString() { public String toString() {
String ret = "Generations calls=" + maxGenerations; return "Generations calls = " + maxGenerations;
return ret;
} }
@Parameter(description = "Number of generations to evaluate.")
public void setGenerations(int x) { public void setGenerations(int x) {
maxGenerations = x; maxGenerations = x;
} }
@ -63,13 +63,4 @@ public class GenerationTerminator implements InterfaceTerminator, Serializable {
public int getGenerations() { public int getGenerations() {
return maxGenerations; return maxGenerations;
} }
/**
* Returns the tip text for this property
*
* @return tip text for this property
*/
public String generationsTipText() {
return "number of generations to evaluate.";
}
} }

View File

@ -0,0 +1,58 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.population.Population;
import eva2.optimization.population.SolutionSet;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class GenerationTerminatorTest {
GenerationTerminator terminator;
@Before
public void setUp() throws Exception {
terminator = new GenerationTerminator();
}
@Test
public void testIsTerminated() throws Exception {
Population pop = new Population();
pop.setGeneration(100);
assertFalse(terminator.isTerminated(pop));
pop.incrGeneration();
assertTrue(terminator.isTerminated(pop));
pop.setGeneration(100);
SolutionSet sset = new SolutionSet(pop);
assertFalse(terminator.isTerminated(sset));
pop.incrGeneration();
assertTrue(terminator.isTerminated(sset));
}
@Test
public void testLastTerminationMessage() throws Exception {
assertNotNull(terminator.toString());
}
@Test
public void testToString() throws Exception {
assertEquals("Generation calls = 100", terminator.toString());
}
@Test
public void testSetGenerations() throws Exception {
// Defaults to 100 generations
assertEquals(100, terminator.getGenerations());
terminator.setGenerations(42);
assertEquals(42, terminator.getGenerations());
}
@Test
public void testGetGenerations() throws Exception {
// Defaults to 100 generations
assertEquals(100, terminator.getGenerations());
}
}