Suite de la question de démarrage 1.
La classe sous test:
class DList { List<Double> l; /** * @pre * @post a construit une liste initialement vide */ public DList() { l=new LinkedList<Double>(); } /** * @pre d!=null * @post a ajout le Double d dans la liste */ public void add(Double d) { assert d!=null; l.add(d); } /** * @pre d!=null * @post retourne true si d se trouvait dans la liste et false sinon * a retire de la liste toutes les instances de Double egales * a d */ public boolean remove(Double d) { assert d!=null; int i=l.indexOf(d); if(i>=0) { Double d1=l.remove(i); return true; } else { return false; } } /** * @pre d!=null * @post retourne true si d se trouve dans la liste et false sinon */ public boolean contains(Double d) { return l.contains(d); } /** * @pre - * @post retourne le nombre de Double se trouvant dans la liste */ public int size() { return l.size(); } }
La partie de la classe test à compléter:
/** * @pre * @post verification du bon fonctionnement de la methode remove: * cette méthode vérifie que la méthode remove échoue quand * il le faut. */ public void testReussiteRemove() { // Creation de la liste DList l=new DList(); // ajout de trois elements a la liste l.add(new Double(2.3)); l.add(new Double(2.4)); l.add(new Double(2.4)); // retrait de ces trois elements assertEquals("Le retrait d'un element se trouvant dans la liste" + " devrait renvoyer true",/*(1)???*/,/*(2)???*/); assertEquals("Le retrait d'un element se trouvant deux fois dans" + " la liste devrait renvoyer true",/*(3)???*/,/*(4)???*/); } /** * @pre * @post verification du bon fonctionnement de la methode remove: * cette méthode vérifie * que la méthode remove échoue quand il le faut. */ public void testEchecRemove(){ // Creation de la liste DList l=new DList(); // Retrait d'un element d'une liste vide assertEquals("Le retrait d'un element ne se trouvant pas dans" + " la liste devriat renvoyer false",/*(5)???*/,/*(6)???*/); // Ajout de trois elements a la liste l.add(new Double(2.3)); /*(7)???*/ l.add(new Double(2.4)); // Retrait de ces trois elements l.remove(new Double(2.3)); assertEquals("Le retrait d'un element ne se trouvant plus dans" + " la liste devrait renvoyer false",/*(8)???*/,/*(9)???*/); assertEquals("Le retrait d'un element ne se trouvant pas dans " + "la liste devriat renvoyer false",/*(10)???*/,/*(11)???*/); l.remove(new Double(2.4)); assertEquals("Le retrait d'un element dont les deux exemplaires" + " ne sont plus dans la liste devrait renvoyer false",/*(12)???*/,/*(13)???*/); } }