package aima.test.core.unit.environment.nqueens; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import aima.core.agent.Action; import aima.core.environment.nqueens.NQueensBoard; import aima.core.environment.nqueens.NQueensFunctionFactory; import aima.core.search.framework.problem.ActionsFunction; import aima.core.search.framework.problem.ResultFunction; /** * @author Ravi Mohan * @author Ciaran O'Reilly */ public class NQueensFunctionFactoryTest { ActionsFunction af; ResultFunction rf; NQueensBoard oneBoard; NQueensBoard eightBoard; @Before public void setUp() { oneBoard = new NQueensBoard(1); eightBoard = new NQueensBoard(8); af = NQueensFunctionFactory.getIActionsFunction(); rf = NQueensFunctionFactory.getResultFunction(); } @Test public void testSimpleBoardSuccessorGenerator() { List<Action> actions = new ArrayList<Action>(af.actions(oneBoard)); Assert.assertEquals(1, actions.size()); NQueensBoard next = (NQueensBoard) rf.result(oneBoard, actions.get(0)); Assert.assertEquals(1, next.getNumberOfQueensOnBoard()); } @Test public void testComplexBoardSuccessorGenerator() { List<Action> actions = new ArrayList<Action>(af.actions(eightBoard)); Assert.assertEquals(8, actions.size()); NQueensBoard next = (NQueensBoard) rf .result(eightBoard, actions.get(0)); Assert.assertEquals(1, next.getNumberOfQueensOnBoard()); actions = new ArrayList<Action>(af.actions(next)); Assert.assertEquals(6, actions.size()); } }