diff --git a/app/src/main/java/sudoku/Solver.java b/app/src/main/java/sudoku/Solver.java index 95a77b3..5579481 100644 --- a/app/src/main/java/sudoku/Solver.java +++ b/app/src/main/java/sudoku/Solver.java @@ -20,10 +20,18 @@ public class Solver implements SudokuSolver { this.board = board; } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + *

+ * Note that this returns a copy of the board, not the actual board + */ @Override public int[][] getBoard() { - return board; + int[][] copy = new int[9][9]; + for (int row = 0; row < 9; row++) { + System.arraycopy(board[row], 0, copy[row], 0, 9); + } + return copy; } /** Resets the board to all zeros */ @@ -34,7 +42,6 @@ public class Solver implements SudokuSolver { row[i] = 0; } } - // board = new int[9][9]; } /* {@inheritDoc} */ @@ -120,8 +127,8 @@ public class Solver implements SudokuSolver { } } - /** - * {@inheritDoc} + /** + * {@inheritDoc} *

* This is not checked for validity */ diff --git a/app/src/test/java/sudoku/SolverTest.java b/app/src/test/java/sudoku/SolverTest.java index 7000140..ef082c6 100644 --- a/app/src/test/java/sudoku/SolverTest.java +++ b/app/src/test/java/sudoku/SolverTest.java @@ -17,8 +17,12 @@ class SolverTest { Solver solver = new Solver(); int[][] board = new int[9][9]; solver.setBoard(board); - assertEquals(board, solver.getBoard()); + + for (int row = 0; row < 9; row++) { + assertArrayEquals(board[row], solver.getBoard()[row]); + } } + @Test void randomizeBoardTest() { @@ -28,6 +32,12 @@ class SolverTest { assertNotEquals(board, solver.getBoard()); } + @Test + void emptyTest() { + Solver solver = new Solver(); + assertTrue(solver.solve()); + } + @Test void legalTest() { Solver solver = new Solver();