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