Some functions and generators suitable for writing QuickCheck properties.
- associative :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> a -> a -> a -> Bool
- commutative :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> a -> a -> Bool
- isZero :: (Arbitrary a, Eq a, Show a) => a -> (a -> a -> a) -> a -> Bool
- identity :: (Arbitrary a, Eq a, Show a) => a -> (a -> a -> a) -> a -> Bool
- leftDistributive :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
- rightDistributive :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> Bool
- natural :: Integral i => Gen i
- positive :: Integral i => Gen i
- maybeGen :: Gen a -> Gen (Maybe a)
- maybeCoGen :: (a -> Gen b -> Gen b) -> Maybe a -> Gen b -> Gen b
- listOfElements :: [a] -> Gen [a]
- runTests :: String -> [IO Bool] -> IO Bool
Algebraic properties
associative :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> a -> a -> a -> BoolSource
Is the operator associative?
commutative :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> a -> a -> BoolSource
Is the operator commutative?
isZero :: (Arbitrary a, Eq a, Show a) => a -> (a -> a -> a) -> a -> BoolSource
Is the element a zero for the operator?
identity :: (Arbitrary a, Eq a, Show a) => a -> (a -> a -> a) -> a -> BoolSource
Is the element a unit for the operator?
leftDistributive :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> BoolSource
Does the first operator distribute (from the left) over the second one?
rightDistributive :: (Arbitrary a, Eq a, Show a) => (a -> a -> a) -> (a -> a -> a) -> a -> a -> a -> BoolSource
Does the first operator distribute (from the right) over the second one?
Generators
maybeCoGen :: (a -> Gen b -> Gen b) -> Maybe a -> Gen b -> Gen bSource
Coarbitrary
"generator" for Maybe
.
listOfElements :: [a] -> Gen [a]Source
Generates a list of elements picked from a given list.