@Test
public void testCopyDataFrom() {

	board = new Board(19);
	Board copy = new Board(19);
	StoneCountObserver counter = new StoneCountObserver(board, new ChineseFinalScorer(board, 7.5));
	StoneCountObserver copyCounter = new StoneCountObserver(copy, new ChineseFinalScorer(copy, 7.5));
	Mover mover = new PredicateMover(board, new NotEyeLike(board));
	MersenneTwisterFast random = new MersenneTwisterFast();
	for (int i = 0; i < 50; i++) {
		mover.selectAndPlayOneMove(random, true);
	}
	copy.copyDataFrom(board);
	assertEquals(board.toString(), copy.toString());
	assertEquals(counter.getCount(BLACK), copyCounter.getCount(BLACK));
	assertEquals(counter.getCount(WHITE), copyCounter.getCount(WHITE));
	while (board.getPasses() < 2) {
		short p = mover.selectAndPlayOneMove(random, true);
		copy.play(p);
	}
	assertEquals(board.toString(), copy.toString());
	assertEquals(counter.getCount(BLACK), copyCounter.getCount(BLACK));
	assertEquals(counter.getCount(WHITE), copyCounter.getCount(WHITE));
}