RegressionTests__FractionTest.st
author Claus Gittinger <cg@exept.de>
Tue, 17 Jun 2003 11:02:56 +0200
changeset 196 3c28a4e5daa5
parent 180 5bd01bf41c4e
child 314 cd0e47be2a25
permissions -rw-r--r--
*** empty log message ***

"{ Package: 'exept:regression' }"

"{ NameSpace: RegressionTests }"

TestCase subclass:#FractionTest
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'tests-Regression'
!


!FractionTest methodsFor:'tests'!

testMixedAddition
    self assert:(((1/2) + (1/2)) = 1).
    self assert:(((1/2) + 0.5) = 1).
    self assert:(((1/2) + (0.5 asFixedPoint:2)) = 1).
    self assert:(((1/2) + (0.5 asDouble)) = 1).
    self assert:(((1/2) + (0.5 asFloat)) = 1).
    self assert:(((1/2) + (0.5 asLongFloat)) = 1).
    self assert:(((1/2) + (0.5 asShortFloat)) = 1).

    self assert:(((1/2) + ((1/2) asFixedPoint:2)) = 1).
    self assert:(((1/2) + ((1/2) asDouble)) = 1).
    self assert:(((1/2) + ((1/2) asFloat)) = 1).
    self assert:(((1/2) + ((1/2) asLongFloat)) = 1).
    self assert:(((1/2) + ((1/2) asShortFloat)) = 1).


    self assert:(((1/2) + (1/2)) = 1.0).
    self assert:(((1/2) + 0.5) = 1.0).
    self assert:(((1/2) + (0.5 asFixedPoint:2)) = 1.0).
    self assert:(((1/2) + (0.5 asDouble)) = 1.0).
    self assert:(((1/2) + (0.5 asFloat)) = 1.0).
    self assert:(((1/2) + (0.5 asLongFloat)) = 1.0).
    self assert:(((1/2) + (0.5 asShortFloat)) = 1.0).

    self assert:(((1/2) + ((1/2) asFixedPoint:2)) = 1.0).
    self assert:(((1/2) + ((1/2) asDouble)) = 1.0).
    self assert:(((1/2) + ((1/2) asFloat)) = 1.0).
    self assert:(((1/2) + ((1/2) asLongFloat)) = 1.0).
    self assert:(((1/2) + ((1/2) asShortFloat)) = 1.0).

    self assert:((0.5 + (1/2)) = 1).
    self assert:(((0.5 asFixedPoint:2) + (1/2)) = 1).
    self assert:((((0.5 asFloat) asDouble) + (1/2)) = 1).

    self assert:((1 + (1/2)) = (3/2)).
    self assert:((1.0 + (1/2)) = (3/2)).
    self assert:(((1 asFixedPoint:2) + (1/2)) = (3/2)).
    self assert:((((1 asFloat) asDouble) + (1/2)) = (3/2)).
!

testMixedAddition2
    |fix1 fix2|

    fix1 := (1/2) asFixedPoint:2.
    fix2 := (1/2) asFixedPoint:2.

    self assert:((fix1 + (1/2)) = 1).
    self assert:((fix1 + 0.5) = 1).
    self assert:((fix1 + (0.5 asFixedPoint:2)) = 1).
    self assert:((fix1 + (0.5 asDouble)) = 1).
    self assert:((fix1 + (0.5 asFloat)) = 1).
    self assert:((fix1 + (0.5 asLongFloat)) = 1).
    self assert:((fix1 + (0.5 asShortFloat)) = 1).

    self assert:((fix1 + ((1/2) asFixedPoint:2)) = 1).
    self assert:((fix1 + ((1/2) asDouble)) = 1).
    self assert:((fix1 + ((1/2) asFloat)) = 1).
    self assert:((fix1 + ((1/2) asLongFloat)) = 1).
    self assert:((fix1 + ((1/2) asShortFloat)) = 1).


    self assert:((fix1 + (1/2)) = 1.0).
    self assert:((fix1 + 0.5) = 1.0).
    self assert:((fix1 + (0.5 asFixedPoint:2)) = 1.0).
    self assert:((fix1 + (0.5 asDouble)) = 1.0).
    self assert:((fix1 + (0.5 asFloat)) = 1.0).
    self assert:((fix1 + (0.5 asLongFloat)) = 1.0).
    self assert:((fix1 + (0.5 asShortFloat)) = 1.0).

    self assert:((fix1 + ((1/2) asFixedPoint:2)) = 1.0).
    self assert:((fix1 + ((1/2) asDouble)) = 1.0).
    self assert:((fix1 + ((1/2) asFloat)) = 1.0).
    self assert:((fix1 + ((1/2) asLongFloat)) = 1.0).
    self assert:((fix1 + ((1/2) asShortFloat)) = 1.0).

    self assert:((0.5 + (fix1)) = 1).
    self assert:(((0.5 asFixedPoint:2) + fix1) = 1).
    self assert:((((0.5 asFloat) asDouble) + (fix1)) = 1).

    self assert:((1 + fix1) = (3/2)).
    self assert:((1.0 + fix1) = (3/2)).
    self assert:(((1 asFixedPoint:2) + fix1) = (3/2)).
    self assert:((((1 asFloat) asDouble) + fix1) = (3/2)).
! !

!FractionTest class methodsFor:'documentation'!

version
    ^ '$Header$'
! !