public class GreatDelugeAcceptorTest {
@Test
public void testIsAccepted() {
// Setup
Acceptor acceptor = new GreatDelugeAcceptor(1.20, 0.01);
LocalSearchSolverPhaseScope localSearchSolverPhaseScope = createLocalSearchSolverPhaseScope();
acceptor.phaseStarted(localSearchSolverPhaseScope);
LocalSearchStepScope localSearchStepScope = new LocalSearchStepScope(localSearchSolverPhaseScope);
localSearchStepScope.setStepIndex(0);
acceptor.stepStarted(localSearchStepScope);
// Pre conditions
LocalSearchMoveScope a1 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-2000));
LocalSearchMoveScope a2 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-1300));
LocalSearchMoveScope a3 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-1200));
LocalSearchMoveScope b1 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-1200));
LocalSearchMoveScope b2 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-100));
LocalSearchMoveScope c1 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-1100));
LocalSearchMoveScope c2 = createMoveScope(localSearchStepScope, DefaultSimpleScore.valueOf(-120));
// Do stuff
assertEquals(false, acceptor.isAccepted(a1));
assertEquals(false, acceptor.isAccepted(a2));
assertEquals(true, acceptor.isAccepted(a3));
// TODO reable a thorough test of great deluge
// acceptor.stepEnded(localSearchStepScope);
// assertEquals(false, acceptor.isAccepted(b1));
// assertEquals(true, acceptor.isAccepted(b2));
// acceptor.stepEnded(localSearchStepScope);