HistoryObserver implements BoardObserver { public short get(int t) { if (t < 0) { return NO_POINT; } return history.get(t); } HistoryObserver(Board board);  HistoryObserver(CoordinateSystem coords); @Override void clear(); @Override void copyDataFrom(BoardObserver that); short get(int t); int size(); @Override String toString(); @Override void update(StoneColor color, short location,
			ShortList capturedStones);  }
@Test public void testResponseToBoard() { board.play("c4"); board.play("e1"); board.play("b2"); assertEquals(at("c4"), observer.get(0)); assertEquals(at("e1"), observer.get(1)); assertEquals(at("b2"), observer.get(2)); }
@Test public void testIgnoreInitialStones() { String[] diagram = { ".#...", ".....", "....O", ".....", ".....", }; board.setUpProblem(diagram, BLACK); board.play("c4"); board.play("e1"); board.play("b2"); assertEquals(at("c4"), observer.get(0)); assertEquals(at("e1"), observer.get(1)); assertEquals(at("b2"), observer.get(2)); }
@Test public void testPass() { board.pass(); assertEquals(PASS, observer.get(0)); }
@Test public void testBeforeBeginningOfGame() { assertEquals(NO_POINT, observer.get(-1)); }