Package aima.test.core.unit.environment.nqueens

Source Code of aima.test.core.unit.environment.nqueens.NQueensFunctionFactoryTest

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.ActionsFunction;
import aima.core.search.framework.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());
  }
}
TOP

Related Classes of aima.test.core.unit.environment.nqueens.NQueensFunctionFactoryTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.