CheckersState extends TwoDimensionalBoardGameState { @SuppressWarnings("unchecked") @Override public CheckersState copy() { CheckersState temp = new CheckersState(this); temp.movesSinceLastJump = this.movesSinceLastJump; temp.movesSinceNon_King = this.movesSinceNon_King; return temp; } CheckersState();  CheckersState(CheckersState state);   CheckersState(int[][] newBoard, int player, List<Integer> win); int getNumPlayers(); List<Integer> getWinners(); @Override boolean endState(); @Override double[] getDescriptor(); @Override boolean moveDoublePoint(Point moveThis, Point moveTo); @SuppressWarnings("unchecked") @Override CheckersState copy(); @SuppressWarnings("unchecked") @Override Set<T> possibleBoardGameStates(T currentState); @Override void setupStartingBoard(); @Override int getBoardWidth(); @Override int getBoardHeight(); @Override char[] getPlayerSymbols(); @Override Color[] getPlayerColors(); @Override boolean moveSinglePoint(Point goTo); @Override boolean moveOnePiece(); static final int BOARD_WIDTH; static final int STARTCHECKS; static final int BLACK_CHECK; static final int BLACK_CHECK_KING; static final int RED_CHECK; static final int RED_CHECK_KING; public Point doubleJumpCheck; }
@Test public void testCopy() { assertEquals(start, start.copy()); assertEquals(test1, test1.copy()); assertEquals(test2, test2.copy()); assertEquals(test3, test3.copy()); }