tp5 q2

Programmation Avancée

Modérateur : Douin

Amokrane
Messages : 18
Inscription : 08 oct. 2018 22:19

tp5 q2

Message par Amokrane » 12 nov. 2018 5:31

Bonjour,

je tourne en rond à cause de ces trois échecs. je n'arrive pas à identifier la cause.
There were 3 failures:
1) test_IHMListe_retirer(question2) failed
2) test_IHMListe2_retirer_annulerBis(question2): retrait est-il inopérant ???
3) test_IHMListe2_retirer_annuler(question2): retrait est-il inopérant ???
quelqu’un aurait une idée?

je précise que le comportement de l'applet semble identique à ce qui est demandé..

Amokrane
Messages : 18
Inscription : 08 oct. 2018 22:19

Re: tp5 q2

Message par Amokrane » 12 nov. 2018 6:18

problème résolu après une bonne nuit blanche....

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: tp5 q2

Message par RENAUD » 12 nov. 2018 7:57

Bonjour
J'ai eu les mêmes deux dernières erreurs :
2) test_IHMListe2_retirer_annulerBis(question2): retrait est-il inopérant ???
3) test_IHMListe2_retirer_annuler(question2): retrait est-il inopérant ???
Je n'ai jamais réussi à les résoudre. J'ai analysé et essayé beaucoup de choses dans mon code (prog et test) cela a généré une fois d'autres erreurs.
Je précise que pareil, l'application avait le même comportement que l'applet.
Quand j'ai cru que j'avais enfin trouvé assurément pour que ça passe jnews c'était ma dernière tentative et j'ai eu la même erreur.

J'aimerais bien connaitre ton analyse (voir ta solution)

Bonne journée

Amokrane
Messages : 18
Inscription : 08 oct. 2018 22:19

Re: tp5 q2

Message par Amokrane » 12 nov. 2018 13:14

Bonjour Renaud,

pour moi le problème était dans cette partie

Code : Tout sélectionner

else if (ae.getSource() == boutonRetirer) 
de la fonction

Code : Tout sélectionner

 public void actionPerformed(ActionEvent ae)



en fait j'ai vu que quand j'appuie sur le bouton Retirer deux fois successives par exemple et que j'essaye d'annuler après, la liste reste telle qu'elle est. car la liste actuelle est empilée à chaque fois que le bouton Retirer est actionné, ce qui était faux.

le truc c'est qu'il ne faut stocker l'état de la liste dans la pile que en cas d'un changement , pour cela j'ai ajouté la condition suivante dans la fonction :

Code : Tout sélectionner

if(res) saveList(liste1);
saveList est chargée d'empiler la liste.

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: tp5 q2

Message par RENAUD » 12 nov. 2018 16:07

J'avais fait cela au départ
mais le problème est que si la liste est modifié dans retirer je vais sauvegarder la liste modifiée après le retour "res"
or ce que l'on veut c'est récupérer par annuler la liste avant le retrait donc je sauvegarde l'état de ma liste avant retirer,sort et sort decroissant.
(c'est le test sur "lin" et "linked" qui m'a amené à faire entre autre cela et aussi le fait que si on ne saisis rien "retirer" retire tout)
Après dans retirer j'ai mis un compteur "contain" sur la recherche du prefixe sur chaque mot de la liste et dès que le compteur égal strictement 1, je fais une sauvegarde ensuite je supprime sinon cela va sauvegarder à chaque mot trouvé et supprimer sinon ne sauve rien si il trouve rien.
boolean ressearch = false;
int contain=0;
if (prefixe.equals("")) {return resultat=false;}
/*...*/
if (contain==1) saveState();//un seul contient => sauvegarde état liste
en fait mon erreur récurrente (3 fois) était :
1) test_IHMListe2_occurrence_annuler_bis(question2): --> est attendu ??? expected:<-->> but was:<résultat>
une erreur que j'ai comprise et que j'ai réglé assez vite mais j'avais toujours la même erreur.
si l'element est supprimé et à zéro dans occurence alors annuler renvoie false donc ça affiche rien <-->>.
Et c'est ce que j'ai à mon applet au même titre que l'applet en ligne j'ai essayé les mêmes séquences que dans les tests et tout est pareil.

Pourtant à la dernière soumission problème résolu et nouvelle erreur (donc tant pis pour moi ) :
1) test_IHMListe2_occurrence_annuler(question2): le nombre d'occurrence est-il erroné ?, après l'annulation d'un retrait ???
2) test_IHMListe2_occurrence_annuler_bis(question2): --> N, N : un entier est attendu ???
Là je ne sais pas : nombre d'occurence érroné ? si j'ai annulé je retrouve le dernier état!
après évidemment si je saisis un mot qui est supprimé dans un état antérieur, il sera toujours à zéro sinon si c'est le dernier tout va bien.
Et N,N là je ne vois pas a part que c'est logique par rapport à l'erreur d'avant, soit le mot existait et est supprimé et j'ai 0 soit le mot n"a jamais existé et j'ai --> et que si jnews là attend un nombre ça ne passe pas.

Amokrane
Messages : 18
Inscription : 08 oct. 2018 22:19

Re: tp5 q2

Message par Amokrane » 13 nov. 2018 1:46

1) test_IHMListe2_occurrence_annuler(question2): le nombre d'occurrence est-il erroné ?, après l'annulation d'un retrait ???
pour ça je prense que l'erreur doit être dans la méthode annuler, c'est quoi son code?

et pour ça

Code : Tout sélectionner

if (prefixe.equals("")) {return resultat=false;} 
ça doit être true pour que la liste soit vidée de tous ses éléments quand il n' y a rien dans la saisie.

Amokrane
Messages : 18
Inscription : 08 oct. 2018 22:19

Re: tp5 q2

Message par Amokrane » 13 nov. 2018 1:49

qt quand tu retires les éléments tu mets les occurrences à zéro où?

CHEGHANNOU
Messages : 42
Inscription : 02 oct. 2018 7:10

Re: tp5 q2

Message par CHEGHANNOU » 13 nov. 2018 14:48

En fait on a 2 collections : 1 linkedlist pour les mots et 1 hashmap pour les occurrences dont les clé sont les mots et les valeurs sont les occurrences.

Donc quand on click sur retirer, on empile que si le mot a bien été retiré ( donc qu'il était présent dans la linkedlist de mot), et on met à jour au passage le nombre d'occurences dans la hashMap.

Si le mot n'était pas dans la liste, on ne change donc pas la liste, donc on empile pas.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité