// BoardUpdaterTest.java package net.sf.gogui.game; import net.sf.gogui.go.Board; import static net.sf.gogui.go.GoColor.BLACK; import static net.sf.gogui.go.GoColor.WHITE; import net.sf.gogui.go.GoPoint; import net.sf.gogui.go.Komi; import net.sf.gogui.go.Move; public final class BoardUpdaterTest extends junit.framework.TestCase { public static void main(String args[]) { junit.textui.TestRunner.run(suite()); } public static junit.framework.Test suite() { return new junit.framework.TestSuite(BoardUpdaterTest.class); } public void setUp() { m_updater = new BoardUpdater(); } public void testSetup() { GameTree tree = new GameTree(); Node root = tree.getRoot(); root.addStone(BLACK, GoPoint.get(1, 1)); root.addStone(BLACK, GoPoint.get(1, 2)); root.addStone(BLACK, GoPoint.get(1, 3)); root.addStone(BLACK, GoPoint.get(1, 4)); root.addStone(BLACK, GoPoint.get(1, 5)); Node child = new Node(); child.addStone(WHITE, GoPoint.get(2, 1)); child.addStone(WHITE, GoPoint.get(2, 2)); child.addStone(WHITE, GoPoint.get(2, 3)); child.addStone(WHITE, GoPoint.get(2, 4)); child.addStone(WHITE, GoPoint.get(2, 5)); child.addStone(BLACK, GoPoint.get(3, 1)); root.append(child); Board board = new Board(19); m_updater.update(tree, child, board); assertEquals(BLACK, board.getColor(GoPoint.get(1, 1))); assertEquals(BLACK, board.getColor(GoPoint.get(1, 2))); assertEquals(BLACK, board.getColor(GoPoint.get(1, 3))); assertEquals(BLACK, board.getColor(GoPoint.get(1, 4))); assertEquals(BLACK, board.getColor(GoPoint.get(1, 5))); assertEquals(WHITE, board.getColor(GoPoint.get(2, 1))); assertEquals(WHITE, board.getColor(GoPoint.get(2, 2))); assertEquals(WHITE, board.getColor(GoPoint.get(2, 3))); assertEquals(WHITE, board.getColor(GoPoint.get(2, 4))); assertEquals(WHITE, board.getColor(GoPoint.get(2, 5))); assertEquals(BLACK, board.getColor(GoPoint.get(3, 1))); } /** Test that setting a stone on an point occupied by the second move in a game works. Checks for a bug that was only triggered, if the changed stone color was the second move played, not the first move. */ public void testSetupOnOccupiedMoveTwo() { GameTree tree = new GameTree(); Node root = tree.getRoot(); Node node1 = new Node(); root.append(node1); node1.setMove(Move.get(BLACK, GoPoint.get(4, 4))); Node node2 = new Node(); node1.append(node2); node2.setMove(Move.get(WHITE, GoPoint.get(3, 3))); Node node3 = new Node(); node2.append(node3); node3.addStone(BLACK, GoPoint.get(3, 3)); Board board = new Board(19); m_updater.update(tree, node3, board); assertEquals(BLACK, board.getColor(GoPoint.get(3, 3))); } private BoardUpdater m_updater; }