QuickCheck-2.13.1: tests/Misc.hs
-- Miscellaneous tests.
{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck
import Test.QuickCheck.Random
prop_verbose :: Blind (Int -> Int -> Bool) -> Property
prop_verbose (Blind p) =
forAll (mkQCGen <$> arbitrary) $ \g ->
ioProperty $ do
res1 <- quickCheckWithResult stdArgs{replay = Just (g, 100), chatty = False} p
res2 <- quickCheckWithResult stdArgs{replay = Just (g, 100), chatty = False} (verbose p)
return $
numTests res1 === numTests res2 .&&.
failingTestCase res1 === failingTestCase res2
prop_failingTestCase :: Blind (Int -> Int -> Int -> Bool) -> Property
prop_failingTestCase (Blind p) = ioProperty $ do
res <- quickCheckWithResult stdArgs{chatty = False} p
let [x, y, z] = failingTestCase res
return (not (p (read x) (read y) (read z)))
return []
main = do
True <- $quickCheckAll
return ()