TP_commit Question2 Tests cycliques

Programmation Avancée

Moderator: douinj

Post Reply
mamali_p
Posts: 4
Joined: 10 Oct 2021 15:12

TP_commit Question2 Tests cycliques

Post by mamali_p » 30 Nov 2021 17:15

Bonjour,

Je suis coince sur les tests cycliques. Je n'arrive pas à comprendre la comportement attendu.
Quand on fait produire un cycle, un StackOverflowError sera levé donc soit on empêche
l'erreur; on détecte ce qu'il le produire; et on jette une exception nous même, ou on ne l'ajoute pas
dans la liste. Dans les deux cas, l’élément n’existe pas dans la liste. Qu'est qu'on va vérifier avec
CompositeValide ? voir(***)

Merci


public void testCompositeCyclique4(){
try{
GroupeDeContributeurs g = new GroupeDeContributeurs("g");
g.ajouter(new Contributeur("g_a",100));
GroupeDeContributeurs g1 = new GroupeDeContributeurs("g1");
g.ajouter(g1);
g1.ajouter(new Contributeur("g1_a",100));
g1.ajouter(g);
*** assertFalse(" Ce composite n'est pas valide, revoyez CompositeValide !!!", g.accepter(new CompositeValide(0))); ***
}catch(StackOverflowError soe){
fail("exception: appel récursif sans terminaison, le composite testé est cyclique");
}catch(Exception e){
fail("exception inattendue !!! " + e.getMessage());
}
}

douinj
Posts: 462
Joined: 18 Mar 2009 15:46

Re: TP_commit Question2 Tests cycliques

Post by douinj » 30 Nov 2021 17:46

Bonjour
Qu'est qu'on va vérifier avec CompositeValide ? voir(***)
Valide si absence de cycle

Le cycle et sa non terminaison se cache par exemple dans un appel à la méthode toString ...

Bonne fin de cycle

mamali_p
Posts: 4
Joined: 10 Oct 2021 15:12

Re: TP_commit Question2 Tests cycliques

Post by mamali_p » 30 Nov 2021 18:18

Merci pour votre réponse, mais il y a qqchose qui m’échappe.
Je crois que ce n’est pas possible d'ajouter un cycle dans notre structure
car toujours un Stackoverflow sera lever.
C'est là d’où viens le "Stackoverflow" dans ma tête :) sur la ligne :

assertFalse(" Ce composite n'est pas valide, revoyez CompositeValide !!!", g.accepter(new CompositeValide(0)));

Ce que je comprendre est qu'on va jamais arriver à cette ligne avec un cycle dans notre structure.

merci d'avance

douinj
Posts: 462
Joined: 18 Mar 2009 15:46

Re: TP_commit Question2 Tests cycliques

Post by douinj » 30 Nov 2021 18:25

Et pourtant ce composite est cyclique

Code: Select all

g.ajouter(g1);
g1.ajouter(new Contributeur("g1_a",100));
g1.ajouter(g);
Ne pouvez vous pas faire une vérification sur ce composite ? dont la racine est g

bons tests

Post Reply