Upload files to 'ExamenTests'
This commit is contained in:
parent
a53787f0c9
commit
859c4df96a
85
ExamenTests/PileBornee.java
Normal file
85
ExamenTests/PileBornee.java
Normal file
@ -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<n;i++){
|
||||||
|
t[i]=-1;
|
||||||
|
}
|
||||||
|
index=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* La fonction push ajoute l'élément n à la pile
|
||||||
|
* @param n un entier positif
|
||||||
|
* @return void
|
||||||
|
* @throws IllegalArgumentException si l'entier est négatif
|
||||||
|
* @throws IllegalStateException si la pile est pleine
|
||||||
|
*/
|
||||||
|
public void push(int n){
|
||||||
|
this.t[this.index]=n;
|
||||||
|
this.index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renvoie l'élément de sommet de la pile si elle est non vide
|
||||||
|
* @return int le sommet de la pile
|
||||||
|
* @throws EmptyStackException si la pile est vide
|
||||||
|
*/
|
||||||
|
public int pop() throws EmptyStackException{
|
||||||
|
if(this.vide()){
|
||||||
|
throw new EmptyStackException();
|
||||||
|
}
|
||||||
|
index--;
|
||||||
|
int res=this.t[this.index];
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dit si la pile est vide
|
||||||
|
* @return boolean vrai si la pile est vide, faux sinon
|
||||||
|
*/
|
||||||
|
public boolean vide(){
|
||||||
|
return this.index==0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renvoie vrai si la pile contient l'argument
|
||||||
|
* @param n int à chercher dans la pile
|
||||||
|
* @return boolean vrai si n est dans la pile, faux sinon
|
||||||
|
*/
|
||||||
|
public boolean contient(int n){
|
||||||
|
boolean res=false;
|
||||||
|
for(int i=0;i<this.index;i++){
|
||||||
|
if(n==this.t[i]){
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Surcharge de toString pour un affichage correct
|
||||||
|
@Override
|
||||||
|
public String toString(){
|
||||||
|
String res="[";
|
||||||
|
for(int i=0;i<this.index;i++){
|
||||||
|
res+=this.t[i]+",";
|
||||||
|
}
|
||||||
|
return res+"]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
41
ExamenTests/README.md
Normal file
41
ExamenTests/README.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# TP noté tests et debug.
|
||||||
|
|
||||||
|
## Fichiers mis à disposition
|
||||||
|
Pour ce TP noté sur les tests, vous disposez des fichiers suivants
|
||||||
|
|
||||||
|
+ README.md ce fichier, qui vous indique ce qu'il faut faire.
|
||||||
|
+ **PileBornee.java** Une implémentation d'une pile d'entiers.
|
||||||
|
+ TestsFournisPileBornee.java des tests fournis pour corriger PileBornee.java
|
||||||
|
+ **TestsACompleterPileBornee.java** un fichier squelette de tests à compléter.
|
||||||
|
|
||||||
|
Seuls les fichiers dont les noms sont **en gras** ci-dessus sont à compléter et à rendre.
|
||||||
|
Pour les modalités, voir ci-dessous.
|
||||||
|
|
||||||
|
## Première partie : debug ##
|
||||||
|
Un certains nombres de tests sont fournis. Vous ne devez pas changer ces derniers.
|
||||||
|
Vous devez exécuter ces tests puis changer le code de la classe **PileBornee** idéalement jusqu'à ce que les tests fournis soient satisfaits.
|
||||||
|
|
||||||
|
Chaque ligne de **PileBornee.java** changée devra être suivi du commentaire //BUGFIX éventuellement suivi de texte
|
||||||
|
|
||||||
|
Par exemple :
|
||||||
|
> 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
|
47
ExamenTests/TestsACompleterPileBornee.java
Normal file
47
ExamenTests/TestsACompleterPileBornee.java
Normal file
@ -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(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
65
ExamenTests/TestsFournisPileBornee.java
Normal file
65
ExamenTests/TestsFournisPileBornee.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user