+test_01 = do
+ _ <- testCase "./tests/Fib.class" "fib"
+ return ()
+
+
+test_02 = do
+ entry <- testCase "./tests/While.class" "f"
+ let entryFuncPtr = ((castPtrToFunPtr entry) :: FunPtr (CInt -> CInt -> IO CInt))
+ result <- code_int entryFuncPtr (fromIntegral 5) (fromIntegral 4)
+ let iresult :: Int; iresult = fromIntegral result
+ let kk :: String; kk = if iresult == 15 then "OK" else "FAIL"
+ printf "result of f(5,4): %3d\t\t%s\n" iresult kk
+
+ result <- code_int entryFuncPtr (fromIntegral 4) (fromIntegral 3)
+ let iresult :: Int; iresult = fromIntegral result
+ let kk :: String; kk = if iresult == 10 then "OK" else "FAIL"
+ printf "result of f(4,3): %3d\t\t%s\n" iresult kk
+
+
+test_03 = do
+ entry <- testCase "./tests/While.class" "g"
+ let entryFuncPtr = ((castPtrToFunPtr entry) :: FunPtr (CInt -> CInt -> IO CInt))
+ result <- code_int entryFuncPtr (fromIntegral 5) (fromIntegral 4)
+ let iresult :: Int; iresult = fromIntegral result
+ let kk :: String; kk = if iresult == 15 then "OK" else "FAIL"
+ printf "result of g(5,4): %3d\t\t%s\n" iresult kk
+
+ result <- code_int entryFuncPtr (fromIntegral 4) (fromIntegral 3)
+ let iresult :: Int; iresult = fromIntegral result
+ let kk :: String; kk = if iresult == 10 then "OK" else "FAIL"
+ printf "result of g(4,3): %3d\t\t%s\n" iresult kk
+