diff --git a/bin/fr/iut_fbleau/but3/dev6_2/Chessboard.class b/bin/fr/iut_fbleau/but3/dev6_2/Chessboard.class
deleted file mode 100644
index 8a66e1a..0000000
Binary files a/bin/fr/iut_fbleau/but3/dev6_2/Chessboard.class and /dev/null differ
diff --git a/bin/fr/iut_fbleau/but3/dev6_2/EightQueensSolver.class b/bin/fr/iut_fbleau/but3/dev6_2/EightQueensSolver.class
deleted file mode 100644
index e3aa691..0000000
Binary files a/bin/fr/iut_fbleau/but3/dev6_2/EightQueensSolver.class and /dev/null differ
diff --git a/bin/fr/iut_fbleau/but3/dev6_2/Position.class b/bin/fr/iut_fbleau/but3/dev6_2/Position.class
deleted file mode 100644
index 0695c7f..0000000
Binary files a/bin/fr/iut_fbleau/but3/dev6_2/Position.class and /dev/null differ
diff --git a/pom.xml b/pom.xml
index a319fbb..52caabd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,11 @@
org.apache.maven.plugins
maven-surefire-plugin
${maven-surefire-plugin.version}
+
+
+ **/*Test.java
+
+
diff --git a/src/main/java/fr/iut_fbleau/but3/dev6_2/Chessboard.java b/src/main/java/fr/iut_fbleau/but3/dev6_2/Chessboard.java
index 77490ba..33448bc 100644
--- a/src/main/java/fr/iut_fbleau/but3/dev6_2/Chessboard.java
+++ b/src/main/java/fr/iut_fbleau/but3/dev6_2/Chessboard.java
@@ -79,4 +79,9 @@ public class Chessboard {
}
System.out.println("\n\n");
}
+
+ public Position[] getQueensPositions() {
+ Position[] a = new Position[queensPosition.size()];
+ return queensPosition.toArray(a);
+ }
}
diff --git a/src/test/java/fr/iut_fbleau/but3/dev6_2/ChessboardTest.java b/src/test/java/fr/iut_fbleau/but3/dev6_2/ChessboardTest.java
index fb59e68..7d525a3 100644
--- a/src/test/java/fr/iut_fbleau/but3/dev6_2/ChessboardTest.java
+++ b/src/test/java/fr/iut_fbleau/but3/dev6_2/ChessboardTest.java
@@ -86,8 +86,8 @@ class ChessboardTest {
return x >= 0 && x < Chessboard.SIZE && y >= 0 && y < Chessboard.SIZE;
}
-
- void testWinningSolution(Chessboard chessboard) {
+ // méthode appelée par d'autres tests
+ private void testWinningSolution(Chessboard chessboard) {
assertEquals(Chessboard.SIZE, chessboard.getNumberOfQueen(),"Devrait etre egal a "+Chessboard.SIZE);
for(int i = 0; i< Chessboard.SIZE ;i++){
for(int j = 0; j< Chessboard.SIZE ;j++){
diff --git a/src/test/java/fr/iut_fbleau/but3/dev6_2/CucumberTest.java b/src/test/java/fr/iut_fbleau/but3/dev6_2/CucumberTest.java
index dc928c8..74139e2 100644
--- a/src/test/java/fr/iut_fbleau/but3/dev6_2/CucumberTest.java
+++ b/src/test/java/fr/iut_fbleau/but3/dev6_2/CucumberTest.java
@@ -12,6 +12,4 @@ import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME;
@SelectClasspathResource("features")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "fr.iut_fbleau.but3.dev6_2.steps")
public class CucumberTest {
-
-
}
diff --git a/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverSteps.java b/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverSteps.java
index 31e1e5b..1e12e6d 100644
--- a/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverSteps.java
+++ b/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverSteps.java
@@ -5,6 +5,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
+import java.util.HashSet;
+import java.util.Set;
+
import fr.iut_fbleau.but3.dev6_2.Chessboard;
import fr.iut_fbleau.but3.dev6_2.EightQueensSolver;
import fr.iut_fbleau.but3.dev6_2.Position;
@@ -50,7 +53,7 @@ public class EightQueensSolverSteps {
lastRemovedQueen = new Position(x, y);
}
- @Then("{int} reine(s) sur l'échiquier")
+ @Then("{int} reine\\(s) sur l'échiquier")
public void reineSurLEchiquier(int queensOnChessboard) {
assertEquals(queensOnChessboard, this.solver.getChessboard().getNumberOfQueen());
}
@@ -89,14 +92,42 @@ public class EightQueensSolverSteps {
}
}
- @Then("la case de la reine retirée est libre")
- public void caseReineRetireeEstLibre(){
- if(lastRemovedQueen != null){
- assertTrue(this.solver.getChessboard().VerifAccessible(lastRemovedQueen.x(), lastRemovedQueen.y()), "La case (" + lastRemovedQueen.x() + ", " + lastRemovedQueen.y() + ") est capturée mais ne devrait pas l'être.");
- lastRemovedQueen = null;
+ @Then("la case {int}, {int} est libre")
+ public void caseReineRetireeEstLibre(int x, int y){
+ assertTrue(this.solver.getChessboard().VerifAccessible(x, y), "La case (" + x + ", " +y + ") est capturée mais ne devrait pas l'être.");
+ }
+
+ @When("le solveur Sim termine de résoudre le problème")
+ public void le_solveurSim_termine_de_résoudre_le_problème() {
+ this.solver.SolverSim(0);
+ }
+
+ @When("le solveur Vic termine de résoudre le problème")
+ public void le_solveurVic_termine_de_résoudre_le_problème() {
+ this.solver.SolverVic(0);
+ }
+
+ @Then("toutes les lignes doivent avoir une reine")
+ public void toutes_les_lignes_doivent_avoir_une_reine() {
+ Set lignes = new HashSet<>();
+ for (Position position : solver.getChessboard().getQueensPositions()) {
+ lignes.add(position.x());
}
- else{
- fail("Aucune reine n'a été retirée, ce test ne peut avoir lieu");
+ // Vérifie que toutes les lignes de 0 à n-1 ont une reine
+ for (int i = 0; i < Chessboard.SIZE; i++) {
+ assert lignes.contains(i) : "La ligne " + i + " n'a pas de reine";
+ }
+ }
+
+ @Then("toutes les colonnes doivent avoir une reine")
+ public void toutes_les_colonnes_doivent_avoir_une_reine() {
+ Set colonnes = new HashSet<>();
+ for (Position position : solver.getChessboard().getQueensPositions()) {
+ colonnes.add(position.x());
+ }
+ // Vérifie que toutes les colonnes de 0 à n-1 ont une reine
+ for (int i = 0; i < Chessboard.SIZE; i++) {
+ assert colonnes.contains(i) : "La colonne " + i + " n'a pas de reine";
}
}
diff --git a/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverStepsTest.java b/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverStepsTest.java
deleted file mode 100644
index f790141..0000000
--- a/src/test/java/fr/iut_fbleau/but3/dev6_2/steps/EightQueensSolverStepsTest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package fr.iut_fbleau.but3.dev6_2.steps;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import fr.iut_fbleau.but3.dev6_2.Chessboard;
-
-class ChessboardTest {
-
- private Chessboard chessboard;
-
- @BeforeEach
- public void beforeEach(){
- this.chessboard = new Chessboard();
- }
-
- @Test
- void placeAQueen(){
- this.chessboard.placeQueen(0,0);
- assertEquals(1, this.chessboard.getNumberOfQueen());
- }
-
-}
\ No newline at end of file
diff --git a/src/test/resources/features/placeAQueen.feature b/src/test/resources/features/placeAQueen.feature
index 1c28e04..b79b947 100644
--- a/src/test/resources/features/placeAQueen.feature
+++ b/src/test/resources/features/placeAQueen.feature
@@ -6,18 +6,3 @@ Feature: Placer une reine
When placer une reine en 0, 0
Then 1 reine(s) sur l'échiquier
- Scenario: Capturer toutes les cases de la colonne d'une reine
- Given un echiquier vide
- When placer une reine en 4, 4
- Then la colonne 4 est capturée
-
- Scenario: Capturer toutes les cases de la ligne d'une reine
- Given un echiquier vide
- When placer une reine en 4, 4
- Then toutes les cases de la ligne 4 sont prises
-
- Scenario : Capturer toutes les cases en diagonales d'une reine
- Given un echiquier vide
- When placer une reine en 4, 4
- Then la diagonnale montante 0, 0 est capturée
- And la diagonale descendante 8, 0 est capturée
diff --git a/src/test/resources/features/removeAQueen copy.feature b/src/test/resources/features/removeAQueen.feature
similarity index 65%
rename from src/test/resources/features/removeAQueen copy.feature
rename to src/test/resources/features/removeAQueen.feature
index ecf108c..bdbf496 100644
--- a/src/test/resources/features/removeAQueen copy.feature
+++ b/src/test/resources/features/removeAQueen.feature
@@ -3,13 +3,6 @@ Feature: Retirer une reine
Scenario: Retirer une reine en 0, 0
Given un echiquier avec 5 reines valides
- When retirer la 4e reine
+ When retirer une reine en 2, 3
Then 4 reine(s) sur l'échiquier
- And la case de la reine retirée est libre
-
-
-
-5, 4
-7, 5
-4, 6
-0, 7
\ No newline at end of file
+ And la case 2, 3 est libre
diff --git a/src/test/resources/features/solveProblem.feature b/src/test/resources/features/solveProblem.feature
index 940791d..bab7d80 100644
--- a/src/test/resources/features/solveProblem.feature
+++ b/src/test/resources/features/solveProblem.feature
@@ -1,14 +1,17 @@
Feature: Résoudre le problème
- Scenario: Vérification des positions des reines
+ Scenario: Vérification de la résolution du problème par le solveur de Simon
Given un echiquier vide
- When le solveur termine de résoudre le problème
+ When le solveur Sim termine de résoudre le problème
Then chaque reine est placée sur une case différente
And aucune reine ne doit être menacée par une autre
-
- Scenario: Vérification de la complétude de la solution
- Given un echiquier vide
- When le solveur termine de résoudre le problème
- Then toutes les lignes doivent avoir une reine
+ And toutes les lignes doivent avoir une reine
And toutes les colonnes doivent avoir une reine
- And chaque diagonale au maximum 1 reine
\ No newline at end of file
+
+ Scenario: Vérification de la résolution du problème par le solveur de Victor
+ Given un echiquier vide
+ When le solveur Vic termine de résoudre le problème
+ Then chaque reine est placée sur une case différente
+ And aucune reine ne doit être menacée par une autre
+ And toutes les lignes doivent avoir une reine
+ And toutes les colonnes doivent avoir une reine
\ No newline at end of file