genvalidity-property-0.2.0.0: Standard properties for functions on `Validity` types

Safe HaskellNone
LanguageHaskell2010

Test.Validity.Relations

Description

Properties of relations

Synopsis

Documentation

reflexiveOnElem Source #

Arguments

:: (a -> a -> Bool)

A relation

-> a

An element

-> Bool 

\[ Reflexive(\prec) \quad\equiv\quad \forall a: (a \prec a) \]

reflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property Source #

reflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property Source #

reflexivityOnValid ((<=) :: Double -> Double -> Bool)
reflexivityOnValid ((==) :: Double -> Double -> Bool)
reflexivityOnValid ((>=) :: Double -> Double -> Bool)
reflexivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
reflexivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
reflexivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)

reflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property Source #

reflexivity ((<=) :: Int -> Int -> Bool)
reflexivity ((==) :: Int -> Int -> Bool)
reflexivity ((>=) :: Int -> Int -> Bool)
reflexivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
reflexivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
reflexivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)

reflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property Source #

reflexivityOnArbitrary ((<=) :: Int -> Int -> Bool)
reflexivityOnArbitrary ((==) :: Int -> Int -> Bool)
reflexivityOnArbitrary ((>=) :: Int -> Int -> Bool)
reflexivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
reflexivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
reflexivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)

transitiveOnElems Source #

Arguments

:: (a -> a -> Bool)

A relation

-> a 
-> a 
-> a

Three elements

-> Bool 

\[ Transitive(\prec) \quad\equiv\quad \forall a, b, c: ((a \prec b) \wedge (b \prec c)) \Rightarrow (a \prec c) \]

transitivityOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a, a) -> (a -> [a]) -> Property Source #

transitivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property Source #

transitivityOnValid ((>) :: Double -> Double -> Bool)
transitivityOnValid ((>=) :: Double -> Double -> Bool)
transitivityOnValid ((==) :: Double -> Double -> Bool)
transitivityOnValid ((<=) :: Double -> Double -> Bool)
transitivityOnValid ((<) :: Double -> Double -> Bool)
transitivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
transitivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
transitivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)

transitivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property Source #

transitivity ((>) :: Int -> Int -> Bool)
transitivity ((>=) :: Int -> Int -> Bool)
transitivity ((==) :: Int -> Int -> Bool)
transitivity ((<=) :: Int -> Int -> Bool)
transitivity ((<) :: Int -> Int -> Bool)
transitivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
transitivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
transitivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)

transitivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property Source #

transitivityOnArbitrary ((>) :: Int -> Int -> Bool)
transitivityOnArbitrary ((>=) :: Int -> Int -> Bool)
transitivityOnArbitrary ((==) :: Int -> Int -> Bool)
transitivityOnArbitrary ((<=) :: Int -> Int -> Bool)
transitivityOnArbitrary ((<) :: Int -> Int -> Bool)
transitivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
transitivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
transitivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)

antisymmetricOnElemsWithEquality Source #

Arguments

:: (a -> a -> Bool)

A relation

-> (a -> a -> Bool)

An equivalence relation

-> a 
-> a

Two elements

-> Bool 

\[ Antisymmetric(\prec, \doteq) \quad\equiv\quad \forall a, b: ((a \prec b) \wedge (b \prec a)) \Rightarrow (a \doteq b) \]

antisymmetryOnGensWithEquality :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> a -> Bool) -> (a -> [a]) -> Property Source #

antisymmetryOnGens :: (Show a, Eq a) => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property Source #

antisymmetryOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> Bool) -> Property Source #

antisymmetryOnValid ((>) :: Double -> Double -> Bool)
antisymmetryOnValid ((>=) :: Double -> Double -> Bool)
antisymmetryOnValid ((<=) :: Double -> Double -> Bool)
antisymmetryOnValid ((<) :: Double -> Double -> Bool)
antisymmetryOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
antisymmetryOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
antisymmetryOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)

antisymmetry :: (Show a, Eq a, GenUnchecked a) => (a -> a -> Bool) -> Property Source #

antisymmetry ((>) :: Int -> Int -> Bool)
antisymmetry ((>=) :: Int -> Int -> Bool)
antisymmetry ((<=) :: Int -> Int -> Bool)
antisymmetry ((<) :: Int -> Int -> Bool)
antisymmetry (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
antisymmetry (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
antisymmetry (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
antisymmetry ((\x y -> even x && odd y) :: Int -> Int -> Bool)

antisymmetryOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> Bool) -> Property Source #

antisymmetryOnArbitrary ((>) :: Int -> Int -> Bool)
antisymmetryOnArbitrary ((>=) :: Int -> Int -> Bool)
antisymmetryOnArbitrary ((<=) :: Int -> Int -> Bool)
antisymmetryOnArbitrary ((<) :: Int -> Int -> Bool)
antisymmetryOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
antisymmetryOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
antisymmetryOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
antisymmetryOnArbitrary ((\x y -> even x && odd y) :: Int -> Int -> Bool)

antireflexiveOnElem Source #

Arguments

:: (a -> a -> Bool)

A relation

-> a

An element

-> Bool 

\[ Antireflexive(\prec) \quad\equiv\quad \forall a: \neg (a \prec a) \]

antireflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property Source #

antireflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property Source #

antireflexivityOnValid ((<) :: Double -> Double -> Bool)
antireflexivityOnValid ((/=) :: Double -> Double -> Bool)
antireflexivityOnValid ((>) :: Double -> Double -> Bool)

antireflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property Source #

antireflexivity ((<) :: Int -> Int -> Bool)
antireflexivity ((/=) :: Int -> Int -> Bool)
antireflexivity ((>) :: Int -> Int -> Bool)

antireflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property Source #

antireflexivityOnArbitrary ((<) :: Int -> Int -> Bool)
antireflexivityOnArbitrary ((/=) :: Int -> Int -> Bool)
antireflexivityOnArbitrary ((>) :: Int -> Int -> Bool)

symmetricOnElems Source #

Arguments

:: (a -> a -> Bool)

A relation

-> a 
-> a

Two elements

-> Bool 

\[ Symmetric(\prec) \quad\equiv\quad \forall a, b: (a \prec b) \Leftrightarrow (b \prec a) \]

symmetryOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property Source #

symmetryOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property Source #

symmetryOnValid ((==) :: Double -> Double -> Bool)
symmetryOnValid ((/=) :: Double -> Double -> Bool)

symmetry :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property Source #

symmetry ((==) :: Int -> Int -> Bool)
symmetry ((/=) :: Int -> Int -> Bool)

symmetryOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property Source #

symmetryOnArbitrary ((==) :: Int -> Int -> Bool)
symmetryOnArbitrary ((/=) :: Int -> Int -> Bool)