Fixed use of Zobrist hash for positional superko detection.

This commit is contained in:
cs6601
2012-09-04 16:02:49 -04:00
parent 0bbcb1054d
commit d4acc5beda
14 changed files with 507 additions and 152 deletions

View File

@@ -14,4 +14,56 @@ public class LegalMoveTest {
assertTrue(gameState.playStone(Player.WHITE, Action.getInstance("B2")));
System.out.println(gameState);
}
@Test
public void testLegalMove2Liberties() {
//Unit test based on illegal move from 9x9 game using MonteCarloUCT
//Illegal move detected by gokgs.com server
GameState gameState = new GameState(9);
gameState.playStone(Player.BLACK, Action.getInstance("G5"));
gameState.playStone(Player.BLACK, Action.getInstance("G7"));
gameState.playStone(Player.BLACK, Action.getInstance("F6"));
gameState.playStone(Player.BLACK, Action.getInstance("H6"));
gameState.playStone(Player.BLACK, Action.getInstance("C7"));
gameState.playStone(Player.BLACK, Action.getInstance("D7"));
gameState.playStone(Player.BLACK, Action.getInstance("E7"));
gameState.playStone(Player.BLACK, Action.getInstance("F7"));
gameState.playStone(Player.BLACK, Action.getInstance("G8"));
gameState.playStone(Player.BLACK, Action.getInstance("H9"));
gameState.playStone(Player.BLACK, Action.getInstance("J7"));
gameState.playStone(Player.BLACK, Action.getInstance("E5"));
gameState.playStone(Player.BLACK, Action.getInstance("F4"));
gameState.playStone(Player.BLACK, Action.getInstance("G3"));
gameState.playStone(Player.BLACK, Action.getInstance("D4"));
gameState.playStone(Player.BLACK, Action.getInstance("E3"));
gameState.playStone(Player.BLACK, Action.getInstance("B4"));
gameState.playStone(Player.BLACK, Action.getInstance("C3"));
gameState.playStone(Player.BLACK, Action.getInstance("D2"));
gameState.playStone(Player.BLACK, Action.getInstance("E1"));
gameState.playStone(Player.WHITE, Action.getInstance("H8"));
gameState.playStone(Player.WHITE, Action.getInstance("H7"));
gameState.playStone(Player.WHITE, Action.getInstance("D9"));
gameState.playStone(Player.WHITE, Action.getInstance("D8"));
gameState.playStone(Player.WHITE, Action.getInstance("E8"));
gameState.playStone(Player.WHITE, Action.getInstance("A7"));
gameState.playStone(Player.WHITE, Action.getInstance("A6"));
gameState.playStone(Player.WHITE, Action.getInstance("B8"));
gameState.playStone(Player.WHITE, Action.getInstance("B7"));
gameState.playStone(Player.WHITE, Action.getInstance("B6"));
gameState.playStone(Player.WHITE, Action.getInstance("C5"));
gameState.playStone(Player.WHITE, Action.getInstance("D5"));
gameState.playStone(Player.WHITE, Action.getInstance("D6"));
gameState.playStone(Player.WHITE, Action.getInstance("A3"));
gameState.playStone(Player.WHITE, Action.getInstance("B3"));
gameState.playStone(Player.WHITE, Action.getInstance("B1"));
gameState.playStone(Player.WHITE, Action.getInstance("F1"));
System.out.println("State before move: ");
System.out.println(gameState);
assertTrue("Play by WHITE at H5 should not have failed.",gameState.playStone(Player.WHITE, Action.getInstance("H5")));
}
}