[Squeak-fr] difficulte avec test d'egalite

Hilaire Fernandes hilaire at ext.cri74.org
Ven 27 Mai 19:00:02 CEST 2005


L'utilisation de l'epsilon permet de passer le test mais.... Lorsque je
deboggue la méthode et que j'inspecte tour à tour "image x" et "-2.0"
dans les deux cas l'inspecteur me retourne que les deux objets sont de
type float et de valeur -2.0. J'attendrais que l'inspecteur me dise que
par exemple "image x" vaut 1.99999.
Il semble donc que Squeak se permet quelques libertés d'affichage en
arrondissant d'autorité. Depuis un outil de débogguage c'est moyennement
appréciable

Je me contenterai donc d'un:

self assert: ((image x closeTo: -2.0) and: [image y closeTo: 7.0])


stéphane ducasse a écrit :
> mais je pense que tu as raison les floats sont "dangereux"
> 
>>> La méthode suivante à un comportement bizarre:
>>>
>>>
>>> testReflexion
>>>     |image|
>>>     image := b reflectWith: u at: a.
>>>     self assert: (image x = -2.0 and: [image y = 7.0])
>>>
>>>
>>> Les tests d'égalité sont false alors que :
>>>
>>> "image x" s'évalue à -2.0 (instance de Float)
>>>
>>>
>>
>> Je ne connais pas la cause de ton probleme, mais dans la plupart des
>> langages un test d'egalite de float et different d'un test d'égalite
>> d'entiers. En effet, tous les calculs sur les flottants se font  avec une
>> certaine precision.
>>
>> Pour verifier si le probleme vient de la, change ton test en :
>>
>> (image x - -2.0) abs < 0.001
>>
>> (verifie la syntaxe)
>>
>> En fait, le test revient a verifier si les deux nombres sont assez
>> proches pour considerer qu'ils sont egaux. Cette reponse est juste une
>> indiquation et je peux me tromper completement ; je ne connais pas  assez
>> Squeak pour etre plus precis.
>>
>> -- 
>> Damien
>> _______________________________________________
>> Squeak-fr mailing list
>> Squeak-fr at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/listinfo/squeak-fr
>>
> 
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr
> 

-- 
http://www.ofset.org/petition
Pétition de soutien au developpement
de logiciels libres pour l'éducation.



Plus d'informations sur la liste de diffusion Squeak-fr