diff --git a/app/src/main/java/sudoku/Solver.java b/app/src/main/java/sudoku/Solver.java index 2c9bb37..0f4ad33 100644 --- a/app/src/main/java/sudoku/Solver.java +++ b/app/src/main/java/sudoku/Solver.java @@ -12,11 +12,7 @@ public class Solver implements SudokuSolver { /** {@inheritDoc} */ @Override - public void setBoard(int[][] board) throws IllegalArgumentException, NullPointerException { - if (board == null) - throw new NullPointerException("Board cannot be null"); - if (board.length != 9 || board[0].length != 9) - throw new IllegalArgumentException("Board must be 9x9"); + public void setBoard(int[][] board) { this.board = board; } @@ -32,7 +28,7 @@ public class Solver implements SudokuSolver { board = new int[9][9]; } - /* {@inheritDoc} */ + /*{@inheritDoc} */ @Override public boolean solve() { return solve(0, 0); @@ -111,7 +107,7 @@ public class Solver implements SudokuSolver { } // Recursively call randomizeBoard() until we get a solvable board - // This is expensive, and there should be a better way to do this + // This is expensive, and there should be some voodoo magic that computes this in n^2 time if (!isSolvable()) { randomizeBoard(difficulty); } diff --git a/app/src/main/java/sudoku/SudokuSolver.java b/app/src/main/java/sudoku/SudokuSolver.java index 758e5b5..edf6ac3 100644 --- a/app/src/main/java/sudoku/SudokuSolver.java +++ b/app/src/main/java/sudoku/SudokuSolver.java @@ -1,6 +1,5 @@ package sudoku; -/** SudokuSolver is an interface for implementing Sudoku solvers */ public interface SudokuSolver { /** * Set sudoku board, numbers 1-9 are fixed values, 0 is unsolved. @@ -8,12 +7,10 @@ public interface SudokuSolver { * @param board a board to copy values from * @throws IllegalArgumentException if board is invalid, e.g. not 9x9 */ - void setBoard(int[][] board) throws IllegalArgumentException, NullPointerException; + void setBoard(int[][] board) throws IllegalArgumentException; /** * Get a copy of the sudoku board - * - * @return a copy of the sudoku board */ int[][] getBoard(); @@ -27,9 +24,9 @@ public interface SudokuSolver { /** * Check if digit is legal on the current board * - * @param row row - * @param col column - * @param nbr number to check + * @param row + * @param col + * @param nbr * @return true if legal */ boolean isLegal(int row, int col, int nbr); @@ -37,8 +34,8 @@ public interface SudokuSolver { /** * Get number on board * - * @param row row - * @param col column + * @param row + * @param col * @return number on board */ int get(int row, int col); @@ -46,9 +43,9 @@ public interface SudokuSolver { /** * Set number on board, numbers 1-9 are fixed values, 0 is unsolved. * - * @param row row - * @param col column - * @param nbr number to set + * @param row + * @param col + * @param nbr */ void set(int row, int col, int nbr); diff --git a/app/src/test/java/sudoku/SolverTest.java b/app/src/test/java/sudoku/SolverTest.java index af637e1..c8a9dff 100644 --- a/app/src/test/java/sudoku/SolverTest.java +++ b/app/src/test/java/sudoku/SolverTest.java @@ -106,11 +106,4 @@ class SolverTest { solver.set(7, 1, 8); assertFalse(solver.solve()); } - - @Test - void setBoardInvalidInputThrowsTest() { - Solver solver = new Solver(); - assertThrows(NullPointerException.class, () -> solver.setBoard(null)); - assertThrows(IllegalArgumentException.class, () -> solver.setBoard(new int[8][8])); - } }