import Test.QuickCheck.Simple import System.IO.Error boolTQ :: Test boolTQ = boolTest "true" True boolTV :: Test boolTV = boolTest' "true-verbose" "verbose true" True boolFQ :: Test boolFQ = boolTest "false" False boolFV :: Test boolFV = boolTest' "false-verbose" "verbose false error message" False eqTQ :: Test eqTQ = eqTest "eq" 1 (1 :: Int) eqTV :: Test eqTV = eqTest' (==) show "eq-verbose" 1 (1 :: Int) eqFQ :: Test eqFQ = eqTest "neq" 2 (1 :: Int) eqFV :: Test eqFV = eqTest' (==) show "neq-verbose" 2 (1 :: Int) qcT :: Test qcT = qcTest "qc-true" (\x -> (x :: Int) == x) qcF :: Test qcF = qcTest "qc-false" (\x -> (x :: Int) == x + 1) successTests :: [Test] successTests = [ boolTQ , boolTV , eqTQ , eqTV , qcT ] allTests :: [Test] allTests = [ boolTQ , boolTV , boolFQ , boolFV , eqTQ , eqTV , eqFQ , eqFV , qcT , qcF ] putLine :: IO () putLine = putStrLn "\n------------------------------\n" main :: IO () main = do verboseMain successTests putLine _ <- tryIOError $ defaultMain allTests putLine _ <- tryIOError $ verboseMain allTests return ()