would be nice to extend Sunit with that

Le 3/9/16 à 00:21, Yuriy Tymchuk a écrit :
how about having assert:closeTo: ?

On 02 Sep 2016, at 21:09, Henrik Nergaard <henrik.nerga...@uia.no> wrote:

You could implement a custom assert in ConverterTest  to do the comparison, 
something like

assert: aNumber withPrecision: precision equals: otherNumber

        self
        assert: (aNumber round: precision)
        equals: otherNumber

assert: aNumber closeTo: otherNumber

        assert: aNumber withPrecision: self defaultPrecision equals: otherNumber

defaultPrecision
        ^ 2


Best regards,
Henrik

-----Original Message-----
From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of 
stepharo
Sent: Friday, September 2, 2016 8:41 PM
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
Subject: [Pharo-users] Comparing floats

Hi

I'm writing a simple converter between Celcius and Farhenheit as an example to 
start programming.


Converter >> convertFarhenheit: anInteger
     ^ ((anInteger - 32) / 1.8)

ConverterTest >> testFToC

     | converter |
     converter := TemperatureConverter new.
     self assert: ((converter convertFarhenheit: 86) = 30.0).
     self assert: ((converter convertFarhenheit: 50) = 10).
     self assert: ((converter convertFarhenheit: 52) = 11.11111111111111)


My problem is with ((converter convertFarhenheit: 52) = 11.11111111111111)

I do not want to have such ugly test.

I tried either to control the output

Converter >> convertFarhenheit: anInteger
     ^ ((anInteger - 32) / 1.8) roundDownTo: 0.1

Not a good idea

Or to compare with closeTo:

     self assert: ((converter convertFarhenheit: 52) closeTo: 11.11)

does not work because we cannot set the precision.

So at ESUG I briefly discuss that with Nicolas Cellier and I need help.

Should I introduce in pharo closeTo:interval:

Any suggestions that a newby can understand is welcome.


Stef







Reply via email to