{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} module Test.Validity.Property ( module Data.GenValidity, forAllValid, -- * Tests for GenValidity instances genGeneratesValid, -- * Standard tests involving functions -- ** Standard tests involving validity producesValidsOnGen, producesValid, producesValidsOnArbitrary, producesValidsOnGens2, producesValid2, producesValidsOnArbitrary2, producesValidsOnGens3, producesValid3, producesValidsOnArbitrary3, -- ** Standard tests involving functions that can fail CanFail (..), succeedsOnGen, succeeds, succeedsOnArbitrary, succeedsOnGens2, succeeds2, succeedsOnArbitrary2, failsOnGen, failsOnGens2, validIfSucceedsOnGen, validIfSucceedsOnArbitrary, validIfSucceeds, validIfSucceedsOnGens2, validIfSucceeds2, validIfSucceedsOnArbitrary2, validIfSucceedsOnGens3, validIfSucceeds3, validIfSucceedsOnArbitrary3, -- ** Standard tests involving equivalence of functions -- *** Simple functions -- **** One argument equivalentOnGen, equivalent, equivalentOnArbitrary, -- **** Two arguments equivalentOnGens2, equivalent2, equivalentOnArbitrary2, -- **** Three arguments equivalentOnGens3, equivalent3, equivalentOnArbitrary3, -- *** First function can fail -- **** One argument equivalentWhenFirstSucceedsOnGen, equivalentWhenFirstSucceeds, equivalentWhenFirstSucceedsOnArbitrary, -- **** Two arguments equivalentWhenFirstSucceedsOnGens2, equivalentWhenFirstSucceeds2, equivalentWhenFirstSucceedsOnArbitrary2, -- *** Second function can fail -- **** One argument equivalentWhenSecondSucceedsOnGen, equivalentWhenSecondSucceeds, equivalentWhenSecondSucceedsOnArbitrary, -- **** Two arguments equivalentWhenSecondSucceedsOnGens2, equivalentWhenSecondSucceeds2, equivalentWhenSecondSucceedsOnArbitrary2, -- *** Both functions can fail -- **** One argument equivalentWhenSucceedOnGen, equivalentWhenSucceed, equivalentWhenSucceedOnArbitrary, -- **** Two arguments equivalentWhenSucceedOnGens2, equivalentWhenSucceed2, equivalentWhenSucceedOnArbitrary2, -- ** Standard tests involving inverse functions inverseFunctionsOnGen, inverseFunctions, inverseFunctionsOnArbitrary, inverseFunctionsIfFirstSucceedsOnGen, inverseFunctionsIfFirstSucceeds, inverseFunctionsIfFirstSucceedsOnArbitrary, inverseFunctionsIfSecondSucceedsOnGen, inverseFunctionsIfSecondSucceeds, inverseFunctionsIfSecondSucceedsOnArbitrary, inverseFunctionsIfSucceedOnGen, inverseFunctionsIfSucceed, inverseFunctionsIfSucceedOnArbitrary, -- ** Properties involving idempotence idempotentOnGen, idempotent, idempotentOnArbitrary, -- * Properties of relations -- ** Reflexivity reflexiveOnElem, reflexivityOnGen, reflexivity, reflexivityOnArbitrary, -- ** Transitivity transitiveOnElems, transitivityOnGens, transitivity, transitivityOnArbitrary, -- ** Antisymmetry antisymmetricOnElemsWithEquality, antisymmetryOnGensWithEquality, antisymmetryOnGens, antisymmetry, antisymmetryOnArbitrary, -- ** Antireflexivity antireflexiveOnElem, antireflexivityOnGen, antireflexivity, antireflexivityOnArbitrary, -- ** Symmetry symmetricOnElems, symmetryOnGens, symmetry, symmetryOnArbitrary, -- * Properties of operations -- ** Identity element -- *** Left Identity leftIdentityOnElemWithEquality, leftIdentityOnGenWithEquality, leftIdentityOnGen, leftIdentity, leftIdentityOnArbitrary, -- *** Right Identity rightIdentityOnElemWithEquality, rightIdentityOnGenWithEquality, rightIdentityOnGen, rightIdentity, rightIdentityOnArbitrary, -- *** Identity identityOnGen, identity, identityOnArbitrary, -- ** Associativity associativeOnGens, associative, associativeOnArbitrary, -- ** Commutativity commutativeOnGens, commutative, commutativeOnArbitrary, ) where import Data.GenValidity import Test.Validity.Functions import Test.Validity.GenValidity.Property import Test.Validity.Operations import Test.Validity.Property.Utils import Test.Validity.Relations import Test.Validity.Types