Solver working, basic test cases

This commit is contained in:
Imbus 2023-12-05 15:34:29 +01:00
parent 999d97f565
commit 75da119da9
4 changed files with 270 additions and 6 deletions

View file

@ -1,12 +1,86 @@
package sudoku;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import java.util.stream.IntStream;
class SolverTest {
@Test void boardTest() {
@Test
void constructorTest() {
Solver solver = new Solver();
solver.solve();
assertNotNull(solver);
}
@Test
void setBoardTest() {
Solver solver = new Solver();
int[][] board = new int[9][9];
solver.setBoard(board);
assertEquals(board, solver.getBoard());
}
@Test
void randomizeBoardTest() {
int[][] board = new int[9][9];
Solver solver = new Solver();
solver.randomizeBoard();
assertNotEquals(board, solver.getBoard());
}
@Test
void legalTest() {
Solver solver = new Solver();
assertTrue(solver.legal(0, 0, 1));
solver.setPos(0, 0, 1);
IntStream.range(0, 9).forEach(i -> {
assertFalse(solver.legal(0, i, 1));
assertFalse(solver.legal(i, 0, 1));
});
assertTrue(solver.legal(5, 5, 1));
assertTrue(solver.legal(8, 8, 9));
assertTrue(solver.legal(8, 8, 1));
}
@Test
void solverTest() {
Solver solver = new Solver();
assertFalse(solver.isSolved());
assertTrue(solver.solve());
assertTrue(solver.isSolved());
solver.reset();
solver.randomizeBoard();
assertFalse(solver.isSolved());
assertTrue(solver.solve());
}
@Test
void resetTest() {
Solver solver = new Solver();
assertTrue(solver.solve());
solver.randomizeBoard();
solver.reset();
assertFalse(solver.isSolved());
}
@Test
void legalWithInvalidInputsTest() {
Solver solver = new Solver();
assertFalse(solver.legal(-1, 0, 1));
assertFalse(solver.legal(0, -1, 1));
assertFalse(solver.legal(0, 0, -1));
assertFalse(solver.legal(0, 0, 10));
}
@Test
@Disabled
void unsolvableTest() {
Solver solver = new Solver();
solver.setPos(0, 0, 1);
solver.setPos(0, 1, 1);
assertFalse(solver.solve());
}
}