update solver tests
All checks were successful
Linux arm64 / Build (push) Successful in 40s

This commit is contained in:
Janet-Doe
2025-02-02 11:51:56 +01:00
parent 4903fd567b
commit adeb9b07e5

View File

@@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List; import java.util.List;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import gui.constants.Symbols; import gui.constants.Symbols;
@@ -13,8 +14,18 @@ import sudoku.structure.*;
class SolverTest { class SolverTest {
private int ns = Cell.NOSYMBOL; private int ns = Cell.NOSYMBOL;
protected static HumanSolver h;
private static RandomSolver r;
private static MixedSolver m;
void testSize2(String solverToUse){ @BeforeAll
public static void initializeSolvers(){
h = new HumanSolver();
r = new RandomSolver();
m = new MixedSolver();
}
private void testSize2(Solver solver){
MultiDoku mdTest = SudokuFactory.createBasicEmptySquareDoku(2, SudokuFactory.DEFAULT_CONSTRAINTS); MultiDoku mdTest = SudokuFactory.createBasicEmptySquareDoku(2, SudokuFactory.DEFAULT_CONSTRAINTS);
MultiDoku mdResult = SudokuFactory.createBasicEmptySquareDoku(2, SudokuFactory.DEFAULT_CONSTRAINTS); MultiDoku mdResult = SudokuFactory.createBasicEmptySquareDoku(2, SudokuFactory.DEFAULT_CONSTRAINTS);
Sudoku test = mdTest.getSubGrid(0); Sudoku test = mdTest.getSubGrid(0);
@@ -33,11 +44,7 @@ class SolverTest {
assert(result.setCellsSymbol(correctCells)); assert(result.setCellsSymbol(correctCells));
assert(result.isSolved()); assert(result.isSolved());
switch (solverToUse){ solver.solve(mdTest);
case "human": new HumanSolver().solve(mdTest); break;
case "mixed": new MixedSolver().solve(mdTest); break;
default: new RandomSolver().solve(mdTest); break;
}
assert (mdTest.isSolved()); assert (mdTest.isSolved());
for (Cell cell : test.getCells()) { for (Cell cell : test.getCells()) {
cell.setImmutable(); cell.setImmutable();
@@ -46,7 +53,7 @@ class SolverTest {
SudokuSerializer.serializeSudoku(mdResult).toString()); SudokuSerializer.serializeSudoku(mdResult).toString());
} }
void testSize3(String solverToUse){ private void testSize3(Solver solver){
MultiDoku mdTest = SudokuFactory.createBasicEmptySquareDoku(3, SudokuFactory.DEFAULT_CONSTRAINTS); MultiDoku mdTest = SudokuFactory.createBasicEmptySquareDoku(3, SudokuFactory.DEFAULT_CONSTRAINTS);
MultiDoku mdResult = SudokuFactory.createBasicEmptySquareDoku(3, SudokuFactory.DEFAULT_CONSTRAINTS); MultiDoku mdResult = SudokuFactory.createBasicEmptySquareDoku(3, SudokuFactory.DEFAULT_CONSTRAINTS);
Sudoku test = mdTest.getSubGrid(0); Sudoku test = mdTest.getSubGrid(0);
@@ -75,11 +82,7 @@ class SolverTest {
assert(result.setCellsSymbol(correctCells)); assert(result.setCellsSymbol(correctCells));
assert(result.isSolved()); assert(result.isSolved());
switch (solverToUse){ solver.solve(mdTest);
case "human": new HumanSolver().solve(mdTest); break;
case "mixed": new MixedSolver().solve(mdTest); break;
default: new RandomSolver().solve(mdTest); break;
}
assert (mdTest.isSolved()); assert (mdTest.isSolved());
for (Cell cell : test.getCells()) { for (Cell cell : test.getCells()) {
cell.setImmutable(); cell.setImmutable();
@@ -88,7 +91,7 @@ class SolverTest {
SudokuSerializer.serializeSudoku(mdResult).toString()); SudokuSerializer.serializeSudoku(mdResult).toString());
} }
private void testMDSize3(String solverToUse){ private void testMDSize3(Solver solver){
MultiDoku mdTest = SudokuFactory.createBasicXShapedMultidoku(3, SudokuFactory.DEFAULT_CONSTRAINTS); MultiDoku mdTest = SudokuFactory.createBasicXShapedMultidoku(3, SudokuFactory.DEFAULT_CONSTRAINTS);
try { try {
SudokuFactory.fillDoku(mdTest, Difficulty.Easy); SudokuFactory.fillDoku(mdTest, Difficulty.Easy);
@@ -97,11 +100,7 @@ class SolverTest {
} }
MultiDoku result = SudokuSerializer.deserializeSudoku(SudokuSerializer.serializeSudoku(mdTest)); MultiDoku result = SudokuSerializer.deserializeSudoku(SudokuSerializer.serializeSudoku(mdTest));
assert(result.isSolved()); assert(result.isSolved());
switch (solverToUse){ solver.solve(mdTest);
case "human": new HumanSolver().solve(mdTest); break;
case "mixed": new MixedSolver().solve(mdTest); break;
default: new RandomSolver().solve(mdTest); break;
}
assert (mdTest.isSolved()); assert (mdTest.isSolved());
for (Cell cell : mdTest.getCells()) { for (Cell cell : mdTest.getCells()) {
cell.setImmutable(); cell.setImmutable();
@@ -112,10 +111,6 @@ class SolverTest {
@Test @Test
void solveTest() { void solveTest() {
String h = "human";
String m = "mixed";
String r = "random";
testSize2(h); testSize2(h);
testSize3(h); testSize3(h);
testMDSize3(h); testMDSize3(h);