{-| Module : Data.Number.ER.Misc.Tests Description : some QuickCheck extras Copyright : (c) Michal Konecny License : BSD3 Maintainer : mik@konecny.aow.cz Stability : experimental Portability : portable Miscelaneous utilities related to testing. -} module Data.Number.ER.Misc.Tests where import Data.Number.ER.Misc import Test.QuickCheck import Test.QuickCheck.Batch import System.IO erRunTests testsetName options initialise tests = do mapM (mkRunTest $ length tests) $ zip [1..] tests return () where mkRunTest testCount (n, (testName, test)) = do initialise putStr testDescr result <- test options putStrLn $ " result: " ++ show result -- runTests testDescr options [test] hFlush stdout where testDescr = "(" ++ show n ++ "/" ++ show testCount ++ ") " ++ testsetName ++ ": " ++ testName ++ "\n" instance Show TestResult where show result = case result of TestOk msg ntest stamps -> msg ++ " " ++ show ntest ++ " " -- ++ show stamps TestExausted msg ntest stamps -> msg ++ " " ++ show ntest ++ " " -- ++ show stamps TestAborted exception -> "aborted: " ++ show exception TestFailed args ntest -> "failed after " ++ show ntest ++ " tests" ++ "\n args = " ++ show args