packages feed

hascal-1.4.1: Test.hs

import Prelude               hiding (succ)
import Test.HUnit            hiding (test)
import Control.Monad (liftM)
import Data.Complex

import Hascal



main :: IO Int
main = liftM (\x -> errors x + failures x) (runTestTT tests)



tests :: Test
tests = TestList
        [ succ "_5"           ((-5):+0)
        , succ "2+7"          (9:+0)
        , succ "3-4"          ((-1):+0)
        , succ "9*8"          (72:+0)
        , succ "9/3"          (3:+0)
        , succ "1+2-3-4+5"    ((1+2-3-4+5):+0)
        , succ "8/4+_2-96^2"  ((8/4-2-96**2):+0)
        ]


test :: (Read t, RealFloat t, Show t)
     => String -> Maybe (Complex t) -> Test
test string value = TestLabel string $ TestCase $
                    assertEqual string value (hascal string)


succ :: (Read t, RealFloat t, Show t)
     => String -> Complex t -> Test
succ string value = test string (Just value)


flop :: String -> t -> Test
flop string value = test string Nothing