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

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

package aima.test.core.unit.environment.nqueens;

import java.util.Set;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import aima.core.environment.nqueens.NQueensBoard;
import aima.core.environment.nqueens.NQueensFitnessFunction;

/**
* @author Ciaran O'Reilly
*
*/
public class NQueensFitnessFunctionTest {

  NQueensFitnessFunction fitnessFunction;

  @Before
  public void setUp() {
    fitnessFunction = new NQueensFitnessFunction();
  }

  @Test
  public void test_getValue() {
    Assert.assertTrue(0.0 == fitnessFunction.getValue("00000000"));
    Assert.assertTrue(0.0 == fitnessFunction.getValue("01234567"));
    Assert.assertTrue(0.0 == fitnessFunction.getValue("76543210"));

    Assert.assertTrue(23.0 == fitnessFunction.getValue("56136477"));
    Assert.assertTrue(28.0 == fitnessFunction.getValue("04752613"));
  }

  @Test
  public void test_isGoalState() {
    Assert.assertTrue(fitnessFunction.isGoalState("04752613"));
    Assert.assertFalse(fitnessFunction.isGoalState("00000000"));
    Assert.assertFalse(fitnessFunction.isGoalState("56136477"));
  }

  @Test
  public void test_getBoardForIndividual() {
    NQueensBoard board = fitnessFunction.getBoardForIndividual("56136477");
    Assert.assertEquals(" -  -  -  -  -  -  -  - \n"
        + " -  -  Q  -  -  -  -  - \n" + " -  -  -  -  -  -  -  - \n"
        + " -  -  -  Q  -  -  -  - \n" + " -  -  -  -  -  Q  -  - \n"
        + " Q  -  -  -  -  -  -  - \n" + " -  Q  -  -  Q  -  -  - \n"
        + " -  -  -  -  -  -  Q  Q \n", board.getBoardPic());

    Assert.assertEquals("--------\n" + "--Q-----\n" + "--------\n"
        + "---Q----\n" + "-----Q--\n" + "Q-------\n" + "-Q--Q---\n"
        + "------QQ\n", board.toString());
  }

  @Test
  public void test_generateRandomIndividual() {
    for (int i = Character.MIN_RADIX; i <= Character.MAX_RADIX; i++) {
      String individual = fitnessFunction.generateRandomIndividual(i);
      Assert.assertEquals(i, individual.length());
    }
  }

  @Test
  public void test_getFiniteAlphabet() {
    for (int i = Character.MIN_RADIX; i <= Character.MAX_RADIX; i++) {
      Set<Character> fab = fitnessFunction
          .getFiniteAlphabetForBoardOfSize(i);
      Assert.assertEquals(i, fab.size());
    }
  }
}
TOP

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

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.