{- | module: $Header$ description: OpenTheory QuickCheck interface license: MIT maintainer: Joe Leslie-Hurd stability: provisional portability: portable -} module OpenTheory.Primitive.Test ( assert, check ) where import qualified Test.QuickCheck as QuickCheck assert :: String -> Bool -> IO () assert desc prop = do putStr desc if prop then putStrLn "+++ OK" else do putStr "**" putStrLn "* Failed!" error "Assertion failed" check :: QuickCheck.Testable prop => String -> prop -> IO () check desc prop = do putStr desc res <- QuickCheck.quickCheckWithResult args prop case res of QuickCheck.Failure {} -> error "Proposition failed" _ -> return () where args = QuickCheck.stdArgs {QuickCheck.maxSuccess = 100}