package net.woodyfolsom.msproj.policy; import static org.junit.Assert.assertEquals; import net.woodyfolsom.msproj.Action; import net.woodyfolsom.msproj.GameConfig; import net.woodyfolsom.msproj.GameState; import net.woodyfolsom.msproj.Player; import net.woodyfolsom.msproj.policy.Policy; import org.junit.Test; public class MonteCarloUCTTest { @Test public void testGenmoveAsW() { Policy treeSearch = new MonteCarloUCT(new RandomMovePolicy(),10000L); GameState gameState = new GameState(6); gameState.playStone(Player.WHITE, Action.getInstance("A2")); gameState.playStone(Player.WHITE, Action.getInstance("B1")); gameState.playStone(Player.WHITE, Action.getInstance("C2")); gameState.playStone(Player.BLACK, Action.getInstance("B2")); Action move = treeSearch.getAction(new GameConfig(), gameState, Player.WHITE); System.out.println(gameState); System.out.println("Generated move: " + move); System.out.println("NumStateEvaluations: " + treeSearch.getNumStateEvaluations()); assertEquals("Expected B3 but was: " + move, "B3", move); gameState.playStone(Player.WHITE, move); System.out.println(gameState); } @Test public void testGenmoveAsB() { Policy treeSearch = new MonteCarloUCT(new RandomMovePolicy(),10000L); GameState gameState = new GameState(6); gameState.playStone(Player.BLACK, Action.getInstance("A2")); gameState.playStone(Player.BLACK, Action.getInstance("B1")); gameState.playStone(Player.BLACK, Action.getInstance("C2")); gameState.playStone(Player.WHITE, Action.getInstance("B2")); Action move = treeSearch.getAction(new GameConfig(), gameState, Player.BLACK); System.out.println(gameState); System.out.println("Generated move: " + move); System.out.println("NumStateEvaluations: " + treeSearch.getNumStateEvaluations()); assertEquals("Expected B3 but was: " + move, "B3", move); gameState.playStone(Player.BLACK, move); System.out.println(gameState); } }