McRunnable implements Runnable { public void copyDataFrom(Board that) { board.copyDataFrom(that); fancyHashes[board.getTurn()] = board.getFancyHash(); } McRunnable(Player player, CopiableStructure stuff); void acceptMove(short p); void copyDataFrom(Board that); Board getBoard(); long[] getFancyHashes(); HistoryObserver getHistoryObserver(); ShortSet getPlayedPoints(); Player getPlayer(); long getPlayoutsCompleted(); MersenneTwisterFast getRandom(); Suggester[] getSuggesters(); int getTurn(); boolean isFeasible(short p); Color performMcRun(); Color performMcRun(boolean mercy); Color playout(boolean mercy); @Override void run(); Rater[] getRaters(); ShortList getCandidates();  }
@Test public void testCopyDataFrom() { player.acceptMove(at("c3")); player.acceptMove(at("d2")); runnable.performMcRun(); runnable.copyDataFrom(player.getBoard()); assertEquals(player.getBoard().toString(), runnable.getBoard().toString()); }