@SuppressWarnings({ "rawtypes", "unchecked" })
public void testShouldTerminate() {
int maxNrOfStagnatingSteps = 50;
Solver solver = mock(Solver.class);
when(solver.getCurrentSolution()).thenReturn(mock(Solution.class));
TerminationCondition terminator = new StagnationTermination(solver, maxNrOfStagnatingSteps);
assert terminator.shouldTerminate() == false;
for (int i = 0; i < maxNrOfStagnatingSteps - 1; i++) {
assert terminator.shouldTerminate() == false;
}
assert terminator.shouldTerminate() == true : "Terminator should terminate now because we asked it "
+ maxNrOfStagnatingSteps
+ " if we should terminate without any improvement in the associated solver";
}