TP3, Question 2

Programmation Avancée

Modérateur : douinj

djabir_w
Messages : 7
Inscription : 25 oct. 2020 14:08

TP3, Question 2

Message par djabir_w » 25 oct. 2020 14:27

Bonjour,

J'ai essayé de chercher sur le forum s'il y avait déjà une solution, mais je n'ai pas trouvé.
J'ai fini la question 2 du TP3, mais j'ai 2 erreurs:

There were 2 failures:
1) test_equals_null(question2): exception NullPointerException this.equals(null) ???
2) test_equals_contenu_different(question2): une pile d''entiers(1,2,3) == une pile de String("1","2","3") ???

J'ai essayé de les comprendre et de les résoudre, mais rien n'y fait. La première, comme je la comprends, veut qu'une NullPointerException soit levée lorsque la méthode equals() est lancée avec un objet null en paramètre. J'ai fait mes propres tests, j'ai même testé cela dans une méthode main(), et j'ai bien une NullPointerException lorsque le paramètre est null, mais l'erreur persiste.
La deuxième, comme je la comprends, veut qu'une pile d'entier (1, 2, 3) soit égale à une pile de String ("1","2","3"). J'ai fait mes propres tests, et la encore je pense avoir implémenté la solution, mais l'erreur est toujours la.

Exemple de test:
PileI p4 = new question2.Pile(4);
PileI p5 = new question2.Pile(4);
p4.empiler("3452");
p5.empiler(3452);
assertEquals("valeur en string égale à valeur en int", p5.sommet(), p4.sommet());

J'ai lu autre part qu'il était possible, après la 5eme tentative, de voir la source des tests. J'ai donc fait plusieurs soumissions à la suite, mais il ne me reste maintenant qu'une seule tentative et je ne peux pas ouvrir les sources: "status: can't open external browser".

Pourrait-on m'aider à au moins comprendre ces erreurs ? Merci beaucoup.

douinj
Messages : 204
Inscription : 18 mars 2009 15:46

Re: TP3, Question 2

Message par douinj » 25 oct. 2020 17:31

Bopnjour,

Pour le test equals null, le référent teste ceci, ces tests sont perfectibles, n'hésitez pas à nous tenir informés

Bonne fin de tp

public void test_equals_null() throws Exception{
try{
PileI p1 = new Pile(6); PileI p11 = null;
PileI p2 = new Pile2(6);PileI p22 = null;
PileI p3 = new Pile3(6);PileI p33 = null;
PileI p4 = new Pile4(6);PileI p44 = null;

assertFalse(" Une pile.equals(null) ???", p1.equals(p11));
assertFalse(" Une pile2.equals(null) ???", p2.equals(p22));
assertFalse(" Une pile3.equals(null) ???", p3.equals(p33));
assertFalse(" Une pile4.equals(null) ???", p4.equals(p44));
}catch(Exception e){
fail("exception NullPointerException this.equals(null) ??? " );
}

}


et pour l'égalité de deux piles qui ne peut se faire à l'aide de la méthode toString

public void test_equals_contenu_different() throws Exception{
PileI p1 = new Pile(6); PileI p11 = new Pile(6);
PileI p2 = new Pile2(6);PileI p22 = new Pile2(6);
PileI p3 = new Pile3(6);PileI p33 = new Pile3(6);
PileI p4 = new Pile4(6);PileI p44 = new Pile4(6);

p1.empiler(3);p1.empiler(2);p1.empiler(5);
p11.empiler("3");p11.empiler("2");p11.empiler("5");

p2.empiler(3);p2.empiler(2);p2.empiler(5);
p22.empiler("3");p22.empiler("2");p22.empiler("5");

p3.empiler(3);p3.empiler(2);p3.empiler(5);
p33.empiler("3");p33.empiler("2");p33.empiler("5");

p4.empiler(3);p4.empiler(2);p4.empiler(5);
p44.empiler("3");p44.empiler("2");p44.empiler("5");

assertEquals(" equals Pile ???", p1.hashCode(), p1.hashCode());
assertFalse(" une pile d'entiers(1,2,3) == une pile de String(\"1\",\"2\",\"3\") ???",p1.equals(p11));
assertFalse(" une pile d'entiers(1,2,3) == une pile de String(\"1\",\"2\",\"3\") ???",p11.equals(p1));
assertFalse(" une pile2 d'entiers(1,2,3) == une pile2 de String(\"1\",\"2\",\"3\") ???",p2.equals(p22));
assertFalse(" une pile2 d'entiers(1,2,3) == une pile2 de String(\"1\",\"2\",\"3\") ???",p22.equals(p2));
assertFalse(" une pile3 d'entiers(1,2,3) == une pile3 de String(\"1\",\"2\",\"3\") ???",p3.equals(p33));
assertFalse(" une pile3 d'entiers(1,2,3) == une pile3 de String(\"1\",\"2\",\"3\") ???",p33.equals(p3));
assertFalse(" une pile4 d'entiers(1,2,3) == une pile4 de String(\"1\",\"2\",\"3\") ???",p4.equals(p44));
assertFalse(" une pile4 d'entiers(1,2,3) == une pile4 de String(\"1\",\"2\",\"3\") ???",p44.equals(p4));
}

djabir_w
Messages : 7
Inscription : 25 oct. 2020 14:08

Re: TP3, Question 2

Message par djabir_w » 25 oct. 2020 18:00

Merci beaucoup de votre réponse rapide, je vais pouvoir régler cela rapidement.
Une petite question: est-il normal que les sources refusent de s'ouvrir dans mon navigateur ? Dans le champ Status, cela m'affiche "can't open external browser". Dans le cas ou j'ai le même problème pour les tests des prochains tp.

Excellente fin de journée à vous et merci encore.

douinj
Messages : 204
Inscription : 18 mars 2009 15:46

Re: TP3, Question 2

Message par douinj » 25 oct. 2020 18:07

re,

Pas d'idée pour l'accès aux sources, pop-up inhibés ? un pare feu ou des plug-ins de votre navigateur zélés ? essayez depuis un autre poste, en recopiant l'URL

Bonne fin de tp3

Répondre