diff --git a/ExamenTests/PileBornee.java b/ExamenTests/PileBornee.java new file mode 100644 index 0000000..8ab9bc1 --- /dev/null +++ b/ExamenTests/PileBornee.java @@ -0,0 +1,85 @@ +import java.util.EmptyStackException; + /** + * Classe pouvant stocker un ensemble d'entier sous forme de pile + * On ne peut stocker que des entiers positifs + * La pile a une taille bornée donnée à la création de l'objet + * Toute case ne contenant pas un entier de la pile contient -1 + */ +public class PileBornee{ + + // La mémoire de notre pile + protected int[] t; + // Le remplissage de notre pile + protected int index; + + // Crée une pile dont la taille est bornée par l'entier donné en entrée + public PileBornee(int n){ + t=new int[n]; + for(int i=0;i return (this.index); //BUGFIX enlevé +1 + +si vous avez enlevé +1. + +BUGFIX me permet de voir où vous avez modifié le code. +Si vous ne suivez pas ces consignes vous n'aurez aucun point sur cette partie. + +## Seconde partie : test ## +Vous devez compléter le fichier **TestsACompleterPileBornee.java** +Il n'est pas demandé de changer le code de **PileBornee.java** pour passer ces nouveaux tests. + +## Modalité de rendu ## +Vous devez envoyer par mail à luc.dartois@u-pec.fr avec comme objet : [TP Test] Nom Prenom + +Le mail devra contenir une archive tests.tar.gz contenant uniquement les deux fichiers .java (on ne veut pas les .class) suivants, édités par vos soins comme indiqué dans les questions ci-dessus : +**PileBornee.java** +**TestsACompleterPileBornee.java** + +Pour ceux qui ont oublié comment faire : + +> bob@box:~$ tar czvvf tests.tar.gz MonRanger.java TestsACompleterMonRanger.java \ No newline at end of file diff --git a/ExamenTests/TestsACompleterPileBornee.java b/ExamenTests/TestsACompleterPileBornee.java new file mode 100644 index 0000000..1a14cbb --- /dev/null +++ b/ExamenTests/TestsACompleterPileBornee.java @@ -0,0 +1,47 @@ +import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe) +import static org.junit.Assert.assertFalse; // +import static org.junit.Assert.assertEquals; // +import static org.junit.Assert.assertNull; // +import static org.junit.Assert.assertNotNull; // +import org.junit.Test; +import java.lang.StringBuilder; +import java.util.EmptyStackException; + + + +public class TestsACompleterPileBornee{ + + // Le pop renvoie le dernier push + @Test + public void PushEgalPop(){ + + } + + // On ne peut pas pop si la pile est vide + @Test(expected = EmptyStackException.class) + public void NonPopSurPileVide(){ + + } + + + // La valeur de l'index correspond au nombre de push moins le nombre de pop + @Test + public void IndexVautNombreDePush(){ + + } + + // Contient renvoie faux si n n'est pas dans la pile + @Test + public void NeContientPasCeQuonAPasMis(){ + + } + + // Contient renvoie faux si n a été dans la pile mais ne l'est plus + @Test + public void NeContientPLusCeQuonAEnleve(){ + + } + + + +} \ No newline at end of file diff --git a/ExamenTests/TestsFournisPileBornee.java b/ExamenTests/TestsFournisPileBornee.java new file mode 100644 index 0000000..5d2d4e6 --- /dev/null +++ b/ExamenTests/TestsFournisPileBornee.java @@ -0,0 +1,65 @@ +import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe) +import static org.junit.Assert.assertFalse; // +import static org.junit.Assert.assertEquals; // +import static org.junit.Assert.assertNull; // +import static org.junit.Assert.assertNotNull; // +import org.junit.Test; +import java.lang.StringBuilder; +import java.util.EmptyStackException; + + + +public class TestsFournisPileBornee{ + + // Une case vide contient forcement -1 + @Test + public void CaseVideVautMoinsUn(){ + PileBornee pb=new PileBornee(4); + pb.push(5); + pb.push(34); + pb.pop(); + assertEquals(pb.t[3],-1); + assertEquals(pb.t[1],-1); + } + + + // On ne peut pas push si la pile est pleine + @Test(expected = IllegalStateException.class) + public void PushSurPilePleine(){ + PileBornee pb=new PileBornee(26); + for(int i=0;i<26;i++){ + pb.push(3*i); + } + pb.push(0); + } + + //On ne peut pas push un nombre négatif + @Test(expected = IllegalArgumentException.class) + public void NonNegativeInteger(){ + PileBornee pb=new PileBornee(5); + pb.push(-5); + } + + // Contient renvoie vrai si n est dans la pile + @Test + public void ContientCeQuonAMis(){ + PileBornee pb=new PileBornee(42); + pb.push(12); + pb.push(1138); + pb.push(48); + pb.push(12); + assertTrue(pb.contient(12)); + assertTrue(pb.contient(1138)); + } + + // toString renvoie un affichage correspondant à ce qu'on attend + @Test + public void AffichageCorrect(){ + PileBornee pb=new PileBornee(12); + pb.push(1); + pb.push(2); + pb.push(3); + assertEquals("[1,2,3]",pb.toString()); + } + +} \ No newline at end of file