Question 1 de tp_rules (None)

Programmation Avancée

Modérateur : douinj

domarc_m
Messages : 1
Inscription : 08 déc. 2020 20:24

Question 1 de tp_rules (None)

Message par domarc_m » 08 déc. 2020 20:33

Bonjour à tous,

J'ai eu un problème avec la méthode None, c'est à dire il ne passait pas le test. Au fait, je n'ai pas bien compris la logique, comme Monsieur Douin m'as expliqué. Au fait s'il y a plusieurs None, il faut évaluer en profondeur, c'est à dire qu'il faut qu'il n'y ait aucun TRUE la-dedans. Par exemple None(None(TRUE, FALSE, FALSE), None(FALSE, FALSE, TRUE)) doit donner FALSE et pas TRUE.

Voila, peut être cela aidera à qqn qui aura le même problème de compréhension :)

Maria

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

Re: Question 1 de tp_rules (None)

Message par douinj » 08 déc. 2020 21:25

Bonjour, merci d'être en éclaireuse sur ce nouveau TP, il doit être affiné

NONE est Vrai lorsque aucune feuille est TRUE, en profondeur dans l'arbre

NONE(FALSE,FALSE) == TRUE


CompositeSpecification<Object> none1 = new None<>().add(new FALSE()).add(new FALSE()).add(new TRUE());
CompositeSpecification<Object> none2 = new None<>().add(new TRUE()).add(new FALSE()).add(new FALSE());
assertFalse(none1.toString()+"!= false ???",none1.isSatisfiedBy(null));
assertFalse(none2.toString()+"!= false ???",none2.isSatisfiedBy(null));


CompositeSpecification<Object> none = new None<>().add(none1).add(none2);
assertFalse(none.toString()+"!= false ???",none.isSatisfiedBy(null));


à suivre de près… je regarde de plus près

valen_f3
Messages : 20
Inscription : 30 sept. 2020 10:46

Re: Question 1 de tp_rules (None)

Message par valen_f3 » 22 déc. 2020 17:02

Bonjour,
Je ne comprend pas trop non plus le assertFalse appliqué au test proposé dans le TP ligne 135n méthode testTableDeVeriteNoneNone :

none(none(TRUE,none(FALSE,FALSE,FALSE),none(FALSE,FALSE,FALSE)),none(TRUE,none(FALSE,FALSE,FALSE),none(FALSE,FALSE,FALSE)))

En effet si je decompose :

none(TRUE,none(FALSE,FALSE,FALSE),none(FALSE,FALSE,FALSE)) =. none(TRUE,TRUE,TRUE). =. FALSE

donc normalement
none(none(TRUE,none(FALSE,FALSE,FALSE),none(FALSE,FALSE,FALSE)),none(TRUE,none(FALSE,FALSE,FALSE),none(FALSE,FALSE,FALSE))) = none(false, false) = true


Merci de vos éclaircissements

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

Re: Question 1 de tp_rules (None)

Message par douinj » 24 déc. 2020 13:43

Bonjour restez sur cette définition

NONE est Vrai lorsque aucune feuille est TRUE, en profondeur dans l'arbre

bonne fin de tp_rules

burgha_j
Messages : 9
Inscription : 05 oct. 2020 23:06

Re: Question 1 de tp_rules (None)

Message par burgha_j » 07 janv. 2021 21:28

Bonjour,

J'ai un petit soucis lié à de la cohérence mais je ne sais pas si ça vient de moi :

Dans votre test "testTableDeVeriteNoneNone" de "testSpecification" vous spécifier ceci

Code : Tout sélectionner

        CompositeSpecification<Object> oneOf = new OneOf<>().add(new FALSE()).add(new TRUE()).add(new FALSE());
        nonne = new None<>().add(none).add(oneOf).add(none);
        //System.out.println("\tnonne : " + nonne);
        assertFalse(nonne.toString() +"!=false ???", nonne.isSatisfiedBy(null));
or dans "testOneOf" vous spécifier :

Code : Tout sélectionner

    public void testOneOf(){
        assertFalse(new OneOf<>().add(new FALSE()).add(new FALSE()).add(new FALSE()).isSatisfiedBy(null));
        assertTrue(new OneOf<>().add(new FALSE()).add(new TRUE()).add(new FALSE()).isSatisfiedBy(null));
        assertTrue(new OneOf<>().add(new TRUE()).add(new FALSE()).add(new FALSE()).isSatisfiedBy(null));
        assertTrue(new OneOf<>().add(new TRUE()).add(new TRUE()).add(new TRUE()).isSatisfiedBy(null));
    }
Du coup je ne sais pas lequel est le bon ? Si je vérifier qu'on est strictement supérieur à 1 j'ai bon à "testTableDeVeriteNoneNone" mais j'ai faux à "testOneOf" : quelle est le bon cas ?

La question que je me pose est : doit on traiter ce qui n'est pas "None" comme des feuilles ?

Répondre