Recursion limit for bailing on unsolvable, more extensive testing and additions to interface
This commit is contained in:
parent
6366a5e0f2
commit
196f066281
3 changed files with 93 additions and 25 deletions
|
|
@ -1,6 +1,6 @@
|
|||
package sudoku;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.RepeatedTest;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.util.stream.IntStream;
|
||||
|
|
@ -45,6 +45,7 @@ class SolverTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
@RepeatedTest(100)
|
||||
void solverTest() {
|
||||
Solver solver = new Solver();
|
||||
assertFalse(solver.isSolved());
|
||||
|
|
@ -52,12 +53,16 @@ class SolverTest {
|
|||
assertTrue(solver.isSolved());
|
||||
|
||||
solver.clear();
|
||||
solver.randomizeBoard();
|
||||
assertFalse(solver.isSolved());
|
||||
assertTrue(solver.solve());
|
||||
solver.clear();
|
||||
}
|
||||
|
||||
@Test
|
||||
@RepeatedTest(100)
|
||||
void randomizeBoardGuaranteeSolvableTest() {
|
||||
Solver solver = new Solver();
|
||||
solver.randomizeBoard();
|
||||
assertFalse(solver.isSolved());
|
||||
assertTrue(solver.solve());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -79,11 +84,26 @@ class SolverTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
@Disabled
|
||||
void unsolvableTest() {
|
||||
Solver solver = new Solver();
|
||||
|
||||
// Simple example
|
||||
solver.clear();
|
||||
solver.set(0, 0, 1);
|
||||
solver.set(0, 1, 1);
|
||||
assertFalse(solver.solve());
|
||||
|
||||
// More complex example
|
||||
solver.clear();
|
||||
solver.set(0, 5, 7);
|
||||
solver.set(0, 6, 8);
|
||||
solver.set(0, 7, 2);
|
||||
solver.set(1, 5, 3);
|
||||
solver.set(2, 7, 1);
|
||||
solver.set(3, 1, 4);
|
||||
solver.set(5, 2, 8);
|
||||
solver.set(5, 8, 6);
|
||||
solver.set(7, 1, 8);
|
||||
assertFalse(solver.solve());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue