This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user