module Main where import Test.HUnit import Control.Monad import AufgabeFFP6 import Data.Array cases1 = TestLabel "eval" $ TestList [ TestCase $ assertEqual "eval1" (0) (eval (array (1,3) [(1,1), (2,2), (3,3)]) (array (1,2) [(1,(+)), (2,(-))])), TestCase $ assertEqual "eval2" (5) (eval (array (1,3) [(1,1), (2,2), (3,3)]) (array (1,2) [(1,(*)), (2,(+))])), TestCase $ assertEqual "eval3" (-3) (eval (array (1,3) [(1,1), (2,2), (3,3)]) (array (1,2) [(1,(-)), (2,(*))])), TestCase $ assertEqual "eval4" (-1) (eval (array (1,6) [(1,3), (2,5), (3,2), (4,-2), (5,7), (6,0)]) (array (1,5) [(1,(+)), (2,(./.)), (3,(*)), (4,(+)), (5,(-))])), TestCase $ assertEqual "eval5" (1) (eval (array (1,6) [(1,3), (2,5), (3,2), (4,-2), (5,7), (6,0)]) (array (1,5) [(1,(*)), (2,(-)), (3,(+)), (4,(./.)), (5,(+))])), TestCase $ assertEqual "eval6" (-5) (eval (array (1,6) [(1,4), (2,2), (3,3), (4,-4), (5,5), (6,2)]) (array (1,5) [(1,(+)), (2,(./.)), (3,(*)), (4,(+)), (5,(-))])), TestCase $ assertEqual "eval7" (2) (eval (array (1,6) [(1,4), (2,2), (3,3), (4,-4), (5,5), (6,2)]) (array (1,5) [(1,(*)), (2,(-)), (3,(+)), (4,(./.)), (5,(+))])) ] tests :: [Test] tests = [cases1] main = do forM tests $ \test -> runTestTT test