HistoryObserver implements BoardObserver { @Override public void copyDataFrom(BoardObserver that) { final HistoryObserver original = (HistoryObserver) that; history.copyDataFrom(original.history); } 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 testCopyDataFrom() { HistoryObserver copy = new HistoryObserver(board); board.play("b1"); observer.update(BLACK, at("e2"), new ShortList(0)); copy.copyDataFrom(observer); assertEquals(at("b1"), copy.get(0)); assertEquals(at("e2"), copy.get(1)); copy.update(WHITE, at("c1"), new ShortList(0)); copy.copyDataFrom(observer); copy.update(WHITE, at("a2"), new ShortList(0)); assertEquals(at("a2"), copy.get(2)); }