constrained
Safe HaskellSafe-Inferred
LanguageHaskell2010

Constrained.Test

Synopsis

Documentation

testAll ∷ IO () Source #

tests ∷ Bool → Spec Source #

testSpecFailHasSpec a ⇒ String → Specification a → Spec Source #

data NumberyType where Source #

Constructors

N ∷ (Typeable a, Numbery a) ⇒ Proxy a → NumberyType 

testNumberyListSpec ∷ String → (∀ a. Numbery a ⇒ Specification [a]) → Spec Source #

testNumberyListSpecNoShrink ∷ String → (∀ a. Numbery a ⇒ Specification [a]) → Spec Source #

testNumberyListSpec' ∷ Bool → String → (∀ a. Numbery a ⇒ Specification [a]) → Spec Source #

testSpecHasSpec a ⇒ String → Specification a → Spec Source #

testSpecNoShrinkHasSpec a ⇒ String → Specification a → Spec Source #

testSpec'HasSpec a ⇒ Bool → String → Specification a → Spec Source #

noInfinityGen (NumSpec Integer) Source #

When we multiply intervals, we get a bounding box, around the possible values. When the intervals have infinities, the bounding box can be very loose. In fact the order in which we multiply intervals with infinities can affect how loose the bounding box is. So ((NegInf, n) * (a, b)) * (c,d) AND (NegInf, n) * ((a, b) * (c,d)) may have different bounding boxes To test the associative laws we must have no infinities, and then the associative law will hold.

plusNegateNumSpec Integer → NumSpec Integer → Property Source #

commutesNumSpecNumSpec Integer → NumSpec Integer → Property Source #

assocNumSpecNumSpec Integer → NumSpec Integer → NumSpec Integer → Property Source #

commuteTimesNumSpec Integer → NumSpec Integer → Property Source #

scaleOneNumSpec Integer → Property Source #

hasSizeMapSpecification (Map Int Int) Source #

prop_noNarrowLoop ∷ Int → Int → Specification Int → Specification Int → Property Source #

conformsToSpecETest ∷ ∀ a. HasSpec a ⇒ a → Specification a → Property Source #

The test succeeds if conformsToSpec and conformsToSpecE both conform, or both fail to conform. We collect answers by specType (ErrorSpec, MemberSpec, SuspendedSpec, ...) and whether they both conform, or they both fail to conform.