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)???*/);
}
}
INGInious