feat: add tests for multidoku functionality
This commit is contained in:
@@ -1,73 +0,0 @@
|
||||
// package sudoku;
|
||||
|
||||
// import java.util.ArrayList;
|
||||
// import java.util.Arrays;
|
||||
// import java.util.List;
|
||||
|
||||
// import org.junit.jupiter.api.Test;
|
||||
|
||||
// public class TestMultidoku {
|
||||
|
||||
// @Test
|
||||
// public void testMultidoku() {
|
||||
// Multidoku multidoku = new Multidoku();
|
||||
// Sudoku s1 = new Sudoku(9);
|
||||
// Sudoku s2 = new Sudoku(9);
|
||||
|
||||
// // Placer sudoku1 en haut à gauche (offset (0,0))
|
||||
// multidoku.ajouterSudoku(s1, 0, 0);
|
||||
// // Placer sudoku2 de façon à ce que sa case (0,0) se retrouve en (8,8) de la
|
||||
// // grille globale
|
||||
// multidoku.ajouterSudoku(s2, 8, 8);
|
||||
|
||||
// // Créer un lien entre la case (8,8) de s1 et (0,0) de s2
|
||||
// List<Case> casesPartagees = Arrays.asList(
|
||||
// s1.getGrille().getCase(8, 8),
|
||||
// s2.getGrille().getCase(0, 0));
|
||||
// multidoku.ajouterCasesPartagees(casesPartagees);
|
||||
|
||||
// multidoku.ajouterContraintePartagee(new ContrainteCasePartagee(casesPartagees));
|
||||
|
||||
// ArrayList<Symbole> symboles = new ArrayList<>();
|
||||
// for (int i = 10; i <= 19; i++) {
|
||||
// symboles.add(Symbole.of(i));
|
||||
// }
|
||||
|
||||
// s1.getGrille().setSymbolesPossibles(symboles);
|
||||
// List<Sudoku> sudokus = Arrays.asList(s1, s2);
|
||||
// for (Sudoku sudoku : sudokus) {
|
||||
// sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
// sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
// sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
// sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
// sudoku.getGrille().creerBlocCarre();
|
||||
|
||||
// }
|
||||
|
||||
// for (int i = 0; i < s1.getGrille().getTaille(); i++) {
|
||||
// s1.getGrille().setCase(i, i, symboles.get(i));
|
||||
// }
|
||||
|
||||
// System.out.println("Sudoku 1 :");
|
||||
// System.out.println(s1.getGrille().toString());
|
||||
|
||||
// System.out.println("Sudoku 2 :");
|
||||
// System.out.println(s2.getGrille().toString());
|
||||
|
||||
// System.out.println("\nAffichage Multidoku combiné :");
|
||||
// System.out.println(multidoku.toStringCombined());
|
||||
|
||||
// if (multidoku.resoudreMultidoku(false)) {
|
||||
// System.out.println("Multidoku résolu !");
|
||||
// System.out.println(multidoku.toStringCombined());
|
||||
// } else {
|
||||
// System.out.println("Échec de la résolution du multidoku.");
|
||||
// }
|
||||
|
||||
// System.out.println("Sudoku 1 résolu :");
|
||||
// System.out.println(s1.getGrille().toString());
|
||||
|
||||
// System.out.println("Sudoku 2 résolu :");
|
||||
// System.out.println(s2.getGrille().toString());
|
||||
// }
|
||||
// }
|
||||
73
app/src/test/java/sudoku/TestMultidokuCase.java
Normal file
73
app/src/test/java/sudoku/TestMultidokuCase.java
Normal file
@@ -0,0 +1,73 @@
|
||||
package sudoku;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TestMultidokuCase {
|
||||
|
||||
@Test
|
||||
public void testMultidokuCase() {
|
||||
Multidoku multidoku = new Multidoku();
|
||||
Sudoku s1 = new Sudoku(9);
|
||||
Sudoku s2 = new Sudoku(9);
|
||||
|
||||
s1.setNom("Sudoku 1");
|
||||
s2.setNom("Sudoku 2");
|
||||
|
||||
// Placer sudoku1 en haut à gauche (offset (0,0))
|
||||
multidoku.ajouterSudoku(s1, 0, 0);
|
||||
// Placer sudoku2 de façon à ce que sa case (0,0) se retrouve en (8,8) de la
|
||||
// grille globale
|
||||
multidoku.ajouterSudoku(s2, 8, 8);
|
||||
|
||||
// Créer un lien entre la case (8,8) de s1 et (0,0) de s2
|
||||
List<Case> casesPartagees = Arrays.asList(
|
||||
s1.getGrille().getCase(8, 8),
|
||||
s2.getGrille().getCase(0, 0));
|
||||
multidoku.ajouterCasesPartagees(casesPartagees);
|
||||
|
||||
ArrayList<Symbole> symboles = new ArrayList<>();
|
||||
for (int i = 10; i <= 19; i++) {
|
||||
symboles.add(Symbole.of(i));
|
||||
}
|
||||
|
||||
s1.getGrille().setSymbolesPossibles(symboles);
|
||||
List<Sudoku> sudokus = Arrays.asList(s1, s2);
|
||||
for (Sudoku sudoku : sudokus) {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
for (int i = 0; i < s1.getGrille().getTaille(); i++) {
|
||||
s1.getGrille().setCase(i, i, symboles.get(i));
|
||||
}
|
||||
|
||||
System.out.println("Sudoku 1 :");
|
||||
System.out.println(s1.getGrille().toString());
|
||||
|
||||
System.out.println("Sudoku 2 :");
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu !");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
} else {
|
||||
System.out.println("Échec de la résolution du multidoku.");
|
||||
}
|
||||
|
||||
System.out.println("Sudoku 1 résolu :");
|
||||
System.out.println(s1.getGrille().toString());
|
||||
|
||||
System.out.println("Sudoku 2 résolu :");
|
||||
System.out.println(s2.getGrille().toString());
|
||||
}
|
||||
}
|
||||
86
app/src/test/java/sudoku/TestMultidokuColonne.java
Normal file
86
app/src/test/java/sudoku/TestMultidokuColonne.java
Normal file
@@ -0,0 +1,86 @@
|
||||
package sudoku;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TestMultidokuColonne {
|
||||
@Test
|
||||
public void testMultidokuColonne() {
|
||||
Multidoku multidoku = new Multidoku();
|
||||
Sudoku s1 = new Sudoku(9);
|
||||
Sudoku s2 = new Sudoku(9);
|
||||
|
||||
s1.setNom("Sudoku 1");
|
||||
s2.setNom("Sudoku 2");
|
||||
|
||||
// Placer sudoku1 en haut à gauche (offset (0,0))
|
||||
multidoku.ajouterSudoku(s1, 0, 0);
|
||||
|
||||
multidoku.ajouterSudoku(s2, 1, 8);
|
||||
|
||||
ArrayList<Symbole> symboles = new ArrayList<>();
|
||||
for (int i = 10; i <= 19; i++) {
|
||||
symboles.add(Symbole.of(i));
|
||||
}
|
||||
|
||||
s1.getGrille().setSymbolesPossibles(symboles);
|
||||
List<Sudoku> sudokus = Arrays.asList(s1, s2);
|
||||
for (Sudoku sudoku : sudokus) {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
for (int i = 0; i < s1.getGrille().getTaille(); i++) {
|
||||
s1.getGrille().setCase(i, i, symboles.get(i));
|
||||
}
|
||||
|
||||
List<Case> casesPartagees = Arrays.asList(
|
||||
s1.getGrille().getCase(1, 8),
|
||||
s1.getGrille().getCase(2, 8),
|
||||
s1.getGrille().getCase(3, 8),
|
||||
s1.getGrille().getCase(4, 8),
|
||||
s1.getGrille().getCase(5, 8),
|
||||
s1.getGrille().getCase(6, 8),
|
||||
s1.getGrille().getCase(7, 8),
|
||||
s1.getGrille().getCase(8, 8),
|
||||
|
||||
s2.getGrille().getCase(0, 0),
|
||||
s2.getGrille().getCase(1, 0),
|
||||
s2.getGrille().getCase(2, 0),
|
||||
s2.getGrille().getCase(3, 0),
|
||||
s2.getGrille().getCase(4, 0),
|
||||
s2.getGrille().getCase(5, 0),
|
||||
s2.getGrille().getCase(6, 0),
|
||||
s2.getGrille().getCase(7, 0));
|
||||
|
||||
multidoku.ajouterCasesPartagees(casesPartagees);
|
||||
|
||||
System.out.println("Sudoku 1 :");
|
||||
System.out.println(s1.getGrille().toString());
|
||||
|
||||
System.out.println("Sudoku 2 :");
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
} else {
|
||||
System.out.println("Multidoku non résolu");
|
||||
}
|
||||
|
||||
System.out.println("Sudoku 1 résolu :");
|
||||
System.out.println(s1.getGrille().toString());
|
||||
|
||||
System.out.println("Sudoku 2 résolu :");
|
||||
System.out.println(s2.getGrille().toString());
|
||||
}
|
||||
}
|
||||
86
app/src/test/java/sudoku/TestMultidokuLigne.java
Normal file
86
app/src/test/java/sudoku/TestMultidokuLigne.java
Normal file
@@ -0,0 +1,86 @@
|
||||
package sudoku;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TestMultidokuLigne {
|
||||
@Test
|
||||
public void testMultidokuLigne() {
|
||||
Multidoku multidoku = new Multidoku();
|
||||
Sudoku s1 = new Sudoku(9);
|
||||
Sudoku s2 = new Sudoku(9);
|
||||
|
||||
s1.setNom("Sudoku 1");
|
||||
s2.setNom("Sudoku 2");
|
||||
|
||||
// Placer sudoku1 en haut à gauche (offset (0,0))
|
||||
multidoku.ajouterSudoku(s1, 0, 0);
|
||||
|
||||
multidoku.ajouterSudoku(s2, 8, 1);
|
||||
|
||||
ArrayList<Symbole> symboles = new ArrayList<>();
|
||||
for (int i = 10; i <= 19; i++) {
|
||||
symboles.add(Symbole.of(i));
|
||||
}
|
||||
|
||||
s1.getGrille().setSymbolesPossibles(symboles);
|
||||
List<Sudoku> sudokus = Arrays.asList(s1, s2);
|
||||
for (Sudoku sudoku : sudokus) {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
for (int i = 0; i < s1.getGrille().getTaille(); i++) {
|
||||
s1.getGrille().setCase(i, i, symboles.get(i));
|
||||
}
|
||||
|
||||
List<Case> casesPartagees = Arrays.asList(
|
||||
s1.getGrille().getCase(8, 1),
|
||||
s1.getGrille().getCase(8, 2),
|
||||
s1.getGrille().getCase(8, 3),
|
||||
s1.getGrille().getCase(8, 4),
|
||||
s1.getGrille().getCase(8, 5),
|
||||
s1.getGrille().getCase(8, 6),
|
||||
s1.getGrille().getCase(8, 7),
|
||||
s1.getGrille().getCase(8, 8),
|
||||
|
||||
s2.getGrille().getCase(0, 0),
|
||||
s2.getGrille().getCase(0, 1),
|
||||
s2.getGrille().getCase(0, 2),
|
||||
s2.getGrille().getCase(0, 3),
|
||||
s2.getGrille().getCase(0, 4),
|
||||
s2.getGrille().getCase(0, 5),
|
||||
s2.getGrille().getCase(0, 6),
|
||||
s2.getGrille().getCase(0, 7));
|
||||
|
||||
multidoku.ajouterCasesPartagees(casesPartagees);
|
||||
|
||||
System.out.println("Sudoku 1 :");
|
||||
System.out.println(s1.getGrille().toString());
|
||||
|
||||
System.out.println("Sudoku 2 :");
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
} else {
|
||||
System.out.println("Multidoku non résolu");
|
||||
}
|
||||
|
||||
System.out.println("Sudoku 1 résolu :");
|
||||
System.out.println(s1.getGrille().toString());
|
||||
|
||||
System.out.println("Sudoku 2 résolu :");
|
||||
System.out.println(s2.getGrille().toString());
|
||||
}
|
||||
}
|
||||
@@ -1,70 +1,70 @@
|
||||
// package sudoku;
|
||||
package sudoku;
|
||||
|
||||
// import java.util.ArrayList;
|
||||
// import java.util.Arrays;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
// import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
// public class TestResolveurBacktraceSimpleSudoku16 {
|
||||
// @Test
|
||||
// public void testResolution() {
|
||||
// System.out.println("TEST RESOLVEUR BACKTRACE SIMPLE : ");
|
||||
// System.out.println(new App().getGreeting());
|
||||
// // Create a new Sudoku
|
||||
// Sudoku sudoku = new Sudoku(16);
|
||||
// sudoku.getGrille().setSymbolesPossibles(new ArrayList<>(Arrays.asList(
|
||||
// Symbole.of(1),
|
||||
// Symbole.of(2),
|
||||
// Symbole.of(3),
|
||||
// Symbole.of(4),
|
||||
// Symbole.of(5),
|
||||
// Symbole.of(6),
|
||||
// Symbole.of(7),
|
||||
// Symbole.of(8),
|
||||
// Symbole.of(9),
|
||||
// Symbole.of(10),
|
||||
// Symbole.of(11),
|
||||
// Symbole.of(12),
|
||||
// Symbole.of(13),
|
||||
// Symbole.of(14),
|
||||
// Symbole.of(15),
|
||||
// Symbole.of(16)
|
||||
public class TestResolveurBacktraceSimpleSudoku16 {
|
||||
@Test
|
||||
public void testResolution() {
|
||||
System.out.println("TEST RESOLVEUR BACKTRACE SIMPLE : ");
|
||||
System.out.println(new App().getGreeting());
|
||||
// Create a new Sudoku
|
||||
Sudoku sudoku = new Sudoku(16);
|
||||
sudoku.getGrille().setSymbolesPossibles(new ArrayList<>(Arrays.asList(
|
||||
Symbole.of(1),
|
||||
Symbole.of(2),
|
||||
Symbole.of(3),
|
||||
Symbole.of(4),
|
||||
Symbole.of(5),
|
||||
Symbole.of(6),
|
||||
Symbole.of(7),
|
||||
Symbole.of(8),
|
||||
Symbole.of(9),
|
||||
Symbole.of(10),
|
||||
Symbole.of(11),
|
||||
Symbole.of(12),
|
||||
Symbole.of(13),
|
||||
Symbole.of(14),
|
||||
Symbole.of(15),
|
||||
Symbole.of(16)
|
||||
|
||||
// )));
|
||||
)));
|
||||
|
||||
// sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
// sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
// sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
|
||||
// sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
// sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
// sudoku.getGrille().setCase(2, 2, Symbole.of(3));
|
||||
// sudoku.getGrille().setCase(0, 3, Symbole.of(4));
|
||||
// sudoku.getGrille().setCase(4, 4, Symbole.of(5));
|
||||
// sudoku.getGrille().setCase(0, 5, Symbole.of(6));
|
||||
// sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
||||
// sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
||||
// sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
||||
// sudoku.getGrille().setCase(0, 9, Symbole.of(10));
|
||||
// sudoku.getGrille().setCase(6, 10, Symbole.of(11));
|
||||
// sudoku.getGrille().setCase(2, 11, Symbole.of(12));
|
||||
// sudoku.getGrille().setCase(0, 12, Symbole.of(13));
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
sudoku.getGrille().setCase(2, 2, Symbole.of(3));
|
||||
sudoku.getGrille().setCase(0, 3, Symbole.of(4));
|
||||
sudoku.getGrille().setCase(4, 4, Symbole.of(5));
|
||||
sudoku.getGrille().setCase(0, 5, Symbole.of(6));
|
||||
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
||||
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
||||
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
||||
sudoku.getGrille().setCase(0, 9, Symbole.of(10));
|
||||
sudoku.getGrille().setCase(6, 10, Symbole.of(11));
|
||||
sudoku.getGrille().setCase(2, 11, Symbole.of(12));
|
||||
sudoku.getGrille().setCase(0, 12, Symbole.of(13));
|
||||
|
||||
// sudoku.getGrille().creerBlocCarre();
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
|
||||
// System.out.println("Sudoku :");
|
||||
// System.out.println(sudoku.getGrille().toString());
|
||||
System.out.println("Sudoku :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
|
||||
// System.out.println("Blocs :");
|
||||
// sudoku.getGrille().printBlocs();
|
||||
System.out.println("Blocs :");
|
||||
sudoku.getGrille().printBlocs();
|
||||
|
||||
// System.out.println("Symboles possibles :");
|
||||
// sudoku.getGrille().printSymbolesPossibles();
|
||||
System.out.println("Symboles possibles :");
|
||||
sudoku.getGrille().printSymbolesPossibles();
|
||||
|
||||
// ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
|
||||
// resolveur.resoudre(sudoku, false);
|
||||
// System.out.println("Sudoku resolu :");
|
||||
// System.out.println(sudoku.getGrille().toString());
|
||||
// System.out.println("FIN TEST RESOLVEUR BACKTRACE SIMPLE");
|
||||
// }
|
||||
// }
|
||||
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||
resolveur.resoudre(sudoku, false);
|
||||
System.out.println("Sudoku resolu :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
System.out.println("FIN TEST RESOLVEUR BACKTRACE SIMPLE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/**
|
||||
* TestResolveurBacktraceSimpleSudoku25
|
||||
* Tentative de résolution d'un sudoku 25x25 avec le resolveur backtrace simple
|
||||
* Commenté car la résolution avec le resolveur backtrace simple est trop longue
|
||||
*/
|
||||
|
||||
// package sudoku;
|
||||
|
||||
// import java.util.ArrayList;
|
||||
@@ -47,7 +53,7 @@
|
||||
// System.out.println("Symboles possibles :");
|
||||
// sudoku.getGrille().printSymbolesPossibles();
|
||||
|
||||
// ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
|
||||
// ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||
// resolveur.resoudre(sudoku, false);
|
||||
// System.out.println("Sudoku resolu :");
|
||||
// System.out.println(sudoku.getGrille().toString());
|
||||
|
||||
Reference in New Issue
Block a user