DefaultSolverScope solverScope = new DefaultSolverScope();
solverScope.setBestScore(new DefaultSimpleScore(0));
LocalSearchSolverPhaseScope solverPhaseScope = new LocalSearchSolverPhaseScope(solverScope);
tabuAcceptor.phaseStarted(solverPhaseScope);
LocalSearchStepScope stepScope0 = new LocalSearchStepScope(solverPhaseScope);
stepScope0.setStepIndex(0);
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e0)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e1)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e2)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e4)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e0, e1)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e0, e2)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e0, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e0, e4)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e1, e2)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e1, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e1, e4)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e2, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e2, e4)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope0, e3, e4)));
stepScope0.setStep(buildMoveScope(stepScope0, e0, e2).getMove());
tabuAcceptor.stepTaken(stepScope0);
LocalSearchStepScope stepScope1 = new LocalSearchStepScope(solverPhaseScope);
stepScope1.setStepIndex(1);
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e0)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e1)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e2)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e0, e1)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e0, e2)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e0, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e0, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e1, e2)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e1, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e1, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e2, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e2, e4)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope1, e3, e4)));
stepScope1.setStep(buildMoveScope(stepScope1, e1).getMove());
tabuAcceptor.stepTaken(stepScope1);
LocalSearchStepScope stepScope2 = new LocalSearchStepScope(solverPhaseScope);
stepScope2.setStepIndex(2);
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e0)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e1)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e2)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e3)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e0, e1)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e0, e2)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e0, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e0, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e1, e2)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e1, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e1, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e2, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e2, e4)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope2, e3, e4)));
stepScope2.setStep(buildMoveScope(stepScope2, e3, e4).getMove());
tabuAcceptor.stepTaken(stepScope2);
LocalSearchStepScope stepScope3 = new LocalSearchStepScope(solverPhaseScope);
stepScope3.setStepIndex(3);
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e0)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e1)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e2)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e0, e1)));
assertEquals(true, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e0, e2)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e0, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e0, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e1, e2)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e1, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e1, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e2, e3)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e2, e4)));
assertEquals(false, tabuAcceptor.isAccepted(buildMoveScope(stepScope3, e3, e4)));
stepScope3.setStep(buildMoveScope(stepScope3, e0).getMove());
tabuAcceptor.stepTaken(stepScope3);
tabuAcceptor.phaseEnded(solverPhaseScope);
}