packages feed

ANum-0.2.0.3: test/Main.hs

module Main where

import Data.ANum
import System.Exit (exitFailure)

testResults :: [Bool]
testResults =
  [ unANum (1 + ANum (Just 1)) == Just (2 :: Integer)
  , unANum (3 * ANum (Just 5)) == Just (15 :: Integer)
  ]

failureCount :: Int
failureCount = length $ filter (== False) testResults

totalTests :: Int
totalTests = length testResults

testsFailed :: IO ()
testsFailed = do
  putStrLn ""
  putStrLn $ show failureCount ++ " of " ++ show totalTests ++ " tests failed."
  exitFailure

testsPassed :: IO ()
testsPassed = do
  putStrLn ""
  putStrLn $ "All " ++ show totalTests ++ " tests passed."
  return ()

main :: IO ()
main = if (failureCount > 0) then testsFailed else testsPassed