Module Test.QuickCheckArbitrary

Imports

Table of Content

Definitions

class Arbitrary a

class Arbitrary

Random generation and shrinking of values.

Minimal complete definition: Arbitrary.arbitrary

Known Instances

Maybe, Bool, (,,,), (,), (), (,,), ->, (,,,,), Integer, Either, Char, Lang.Byte, Double, Int, Float, JArray, Long, TM.TreeMap, Lang.Short, Ordering, StringJ, []

Member Functions

arbitraryArbitrary a ⇒ Gen a

A generator for values of the given type.

shrinkArbitrary a ⇒ a → [a]

Produces a (possibly) empty list of all the possible immediate shrinks of the given value.

shrinkList ∷ (a → [a]) → [a] → [[a]]
arbitrarySizedIntegralNum a ⇒ Gen a

Generates an integral number. The number can be positive or negative and its maximum absolute value depends on the size parameter.

arbitrarySizedFloatingFloating a ⇒ Gen a

Generates a fractional number. The number can be positive or negative and its maximum absolute value depends on the size parameter.

arbitraryBoundedIntegral ∷ (Bounded a, Integral a) ⇒ Gen a
arbitraryBoundedRandom ∷ (Bounded a, Random a) ⇒ Gen a

Generates an element of a bounded type. The element is chosen from the entire range of the type.

arbitraryBoundedEnum ∷ (Bounded a, Enum a) ⇒ Gen a
arbitrarySizedBoundedIntegral ∷ (Bounded a, Integral a) ⇒ Gen a
shrinkNothing ∷ a → [a]

Returns no shrinking alternatives.

shrinkIntegralIntegral a ⇒ a → [a]

Shrink an integral number.

shrinkFloatingFloating a ⇒ a → [a]

Shrink a fraction.

class CoArbitrary a

CoArbitrary

Used for random generation of functions.

Known Instances

->, (,), (), (,,,), (,,), (,,,,), Maybe, Either, Char, Bool, Double, Integer, Int, Float, Long, TM.TreeMap, Ordering, StringJ, []

Member Functions

coarbitraryCoArbitrary a ⇒ a → Gen c → Gen c

Used to generate a function of type a -> c. The implementation should use the first argument to perturb the random generator given as the second argument. The returned generator is then used to generate the function result.

You can often use QuickCheckGen.variant and >< to implement CoArbitrary.coarbitrary.

>< ∷ (Gen a → Gen a) → (Gen a → Gen a) → Gen a → Gen a
infixr  1
coarbitraryIntegralIntegral a ⇒ a → Gen bGen b
coarbitraryShowShow a ⇒ a → Gen b → Gen b

CoArbitrary.coarbitrary helper for lazy people :-).

coarbitraryEnumEnum a ⇒ a → Gen bGen b

A CoArbitrary.coarbitrary implementation for enums.

vectorArbitrary a ⇒ IntGen [a]

Generates a list of a given length.

orderedList ∷ (Ord a, Arbitrary a) ⇒ Gen [a]

Generates an ordered list of a given length.

Instances

instance Arbitrary ()

Member Functions

arbitraryGen ()
shrink() → [()]

inherited from Arbitrary.shrink

instance (Arbitrary a, Arbitrary b) ⇒ Arbitrary (a, b)

Member Functions

arbitrary ∷ (Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖇, 𝖆)
shrink ∷ (Arbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖇, 𝖆) → [(𝖇, 𝖆)]
instance (Arbitrary a, Arbitrary b, Arbitrary c) ⇒ Arbitrary (a, b, c)

Member Functions

arbitrary ∷ (Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ Gen (𝖇, 𝖈, 𝖆)
shrink ∷ (Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ (𝖇, 𝖈, 𝖆) → [(𝖇, 𝖈, 𝖆)]
instance (Arbitrary a, Arbitrary b, Arbitrary c, Arbitrary d) ⇒ Arbitrary (a, b, c, d)

Member Functions

arbitrary ∷ (Arbitrary 𝖈, Arbitrary 𝖉, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖈, 𝖉, 𝖇, 𝖆)
shrink ∷ (Arbitrary 𝖈, Arbitrary 𝖉, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖈, 𝖉, 𝖇, 𝖆) → [(𝖈, 𝖉, 𝖇, 𝖆)]
instance (Arbitrary a, Arbitrary b, Arbitrary c, Arbitrary d, Arbitrary e) ⇒ Arbitrary (a, b, c, d, e)

Member Functions

arbitrary ∷ (Arbitrary 𝖉, Arbitrary 𝖊, Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ Gen (𝖉, 𝖊, 𝖇, 𝖈, 𝖆)
shrink ∷ (Arbitrary 𝖉, Arbitrary 𝖊, Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ (𝖉, 𝖊, 𝖇, 𝖈, 𝖆) → [(𝖉, 𝖊, 𝖇, 𝖈, 𝖆)]
instance (CoArbitrary a, Arbitrary b) ⇒ Arbitrary (a→b)

Member Functions

arbitrary ∷ (CoArbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖇→𝖆)
shrink ∷ (CoArbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖇→𝖆) → [𝖇→𝖆]

inherited from Arbitrary.shrink

instance Arbitrary Bool

Member Functions

arbitraryGen Bool
shrinkBool → [Bool]
instance Arbitrary Byte

Member Functions

arbitraryGen Byte
shrinkByte → [Byte]

inherited from Arbitrary.shrink

instance Arbitrary Char

Member Functions

arbitraryGen Char
shrinkChar → [Char]
instance Arbitrary Double

Member Functions

arbitraryGen Double
shrinkDouble → [Double]
instance (Arbitrary a, Arbitrary b) ⇒ Arbitrary (a | b)

Member Functions

arbitrary ∷ (Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖇 | 𝖆)
shrink ∷ (Arbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖇 | 𝖆) → [(𝖇 | 𝖆)]
instance Arbitrary Float

Member Functions

arbitraryGen Float
shrinkFloat → [Float]
instance Arbitrary Int

Member Functions

arbitraryGen Int
shrinkInt → [Int]
instance Arbitrary Integer

Member Functions

arbitraryGen Integer
shrinkInteger → [Integer]
instance (ArrayElement a, Arbitrary a) ⇒ Arbitrary (JArray a)

Member Functions

arbitrary ∷ (ArrayElement 𝖆, Arbitrary 𝖆) ⇒ Gen (JArray 𝖆)
shrink ∷ (ArrayElement 𝖆, Arbitrary 𝖆) ⇒ JArray 𝖆 → [JArray 𝖆]

inherited from Arbitrary.shrink

instance Arbitrary Long

Member Functions

arbitraryGen Long
shrinkLong → [Long]
instance Arbitrary a ⇒ Arbitrary (Maybe a)

Member Functions

arbitraryArbitrary 𝖆 ⇒ Gen (Maybe 𝖆)
shrinkArbitrary 𝖆 ⇒ Maybe 𝖆 → [Maybe 𝖆]
instance Arbitrary Ordering

Member Functions

arbitraryGen Ordering
shrinkOrdering → [Ordering]
instance Arbitrary Short

Member Functions

arbitraryGen Short
shrinkShort → [Short]
instance Arbitrary String

Member Functions

arbitraryGen String
shrinkString → [String]
instance (Ord k, Arbitrary k, Arbitrary v) ⇒ Arbitrary (TreeMap k v)

Member Functions

arbitrary ∷ (Ord 𝖇, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (TreeMap 𝖇 𝖆)
shrink ∷ (Ord 𝖇, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ TreeMap 𝖇 𝖆 → [TreeMap 𝖇 𝖆]

inherited from Arbitrary.shrink

instance Arbitrary a ⇒ Arbitrary [a]

Member Functions

arbitraryArbitrary 𝖆 ⇒ Gen [𝖆]
shrinkArbitrary 𝖆 ⇒ [𝖆] → [[𝖆]]
instance Bounded Ordering

Member Functions

maxBoundOrdering

Function generated for derived instance.

minBoundOrdering

Function generated for derived instance.

instance CoArbitrary ()

Member Functions

coarbitrary()Gen 𝖆Gen 𝖆
instance (CoArbitrary a, CoArbitrary b) ⇒ CoArbitrary (a, b)

Member Functions

coarbitrary ∷ (CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖇, 𝖆)Gen 𝖈 → Gen 𝖈
instance (CoArbitrary a, CoArbitrary b, CoArbitrary c) ⇒ CoArbitrary (a, b, c)

Member Functions

coarbitrary ∷ (CoArbitrary 𝖇, CoArbitrary 𝖈, CoArbitrary 𝖆) ⇒ (𝖇, 𝖈, 𝖆)Gen 𝖉 → Gen 𝖉
instance (CoArbitrary a, CoArbitrary b, CoArbitrary c, CoArbitrary d) ⇒ CoArbitrary (a, b, c, d)

Member Functions

coarbitrary ∷ (CoArbitrary 𝖈, CoArbitrary 𝖉, CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖈, 𝖉, 𝖇, 𝖆)Gen 𝖊 → Gen 𝖊
instance (CoArbitrary a, CoArbitrary b, CoArbitrary c, CoArbitrary d, CoArbitrary e) ⇒ CoArbitrary (a, b, c, d, e)

Member Functions

coarbitrary ∷ (CoArbitrary 𝖉, CoArbitrary 𝖊, CoArbitrary 𝖇, CoArbitrary 𝖈, CoArbitrary 𝖆) ⇒ (𝖉, 𝖊, 𝖇, 𝖈, 𝖆)Gen 𝖋 → Gen 𝖋
instance (Arbitrary a, CoArbitrary b) ⇒ CoArbitrary (a→b)

Member Functions

coarbitrary ∷ (Arbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖇→𝖆) → Gen 𝖈 → Gen 𝖈
instance CoArbitrary Bool

Member Functions

coarbitraryBoolGen 𝖆Gen 𝖆
instance CoArbitrary Char

Member Functions

coarbitraryCharGen 𝖆Gen 𝖆
instance CoArbitrary Double

Member Functions

coarbitraryDoubleGen 𝖆 → Gen 𝖆
instance (CoArbitrary a, CoArbitrary b) ⇒ CoArbitrary (a | b)

Member Functions

coarbitrary ∷ (CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖇 | 𝖆)Gen 𝖈 → Gen 𝖈
instance CoArbitrary Float

Member Functions

coarbitraryFloatGen 𝖆 → Gen 𝖆
instance CoArbitrary Int

Member Functions

coarbitraryIntGen 𝖆Gen 𝖆
instance CoArbitrary Integer

Member Functions

coarbitraryIntegerGen 𝖆Gen 𝖆
instance CoArbitrary Long

Member Functions

coarbitraryLongGen 𝖆Gen 𝖆
instance CoArbitrary a ⇒ CoArbitrary (Maybe a)

Member Functions

coarbitraryCoArbitrary 𝖆 ⇒ Maybe 𝖆Gen 𝖇 → Gen 𝖇
instance CoArbitrary Ordering

Member Functions

coarbitraryOrderingGen 𝖆Gen 𝖆
instance CoArbitrary String

Member Functions

coarbitraryStringGen 𝖆 → Gen 𝖆
instance (Ord k, CoArbitrary k, CoArbitrary v) ⇒ CoArbitrary (TreeMap k v)

Member Functions

coarbitrary ∷ (Ord 𝖇, CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ TreeMap 𝖇 𝖆Gen 𝖈 → Gen 𝖈
instance CoArbitrary a ⇒ CoArbitrary [a]

Member Functions

coarbitraryCoArbitrary 𝖆 ⇒ [𝖆]Gen 𝖇 → Gen 𝖇

Functions and Values by Type

String → [String]

Arbitrary_String.shrink

Byte → [Byte]

Arbitrary_Byte.shrink

Short → [Short]

Arbitrary_Short.shrink

() → [()]

Arbitrary_().shrink

Bool → [Bool]

Arbitrary_Bool.shrink

Char → [Char]

Arbitrary_Char.shrink

Double → [Double]

Arbitrary_Double.shrink

Float → [Float]

Arbitrary_Float.shrink

Int → [Int]

Arbitrary_Int.shrink

Integer → [Integer]

Arbitrary_Integer.shrink

Long → [Long]

Arbitrary_Long.shrink

Ordering → [Ordering]

Arbitrary_Ordering.shrink

Gen String

Arbitrary_String.arbitrary

Gen Byte

Arbitrary_Byte.arbitrary

Gen Short

Arbitrary_Short.arbitrary

Gen ()

Arbitrary_().arbitrary

Gen Bool

Arbitrary_Bool.arbitrary

Gen Char

Arbitrary_Char.arbitrary

Gen Double

Arbitrary_Double.arbitrary

Gen Float

Arbitrary_Float.arbitrary

Gen Int

Arbitrary_Int.arbitrary

Gen Integer

Arbitrary_Integer.arbitrary

Gen Long

Arbitrary_Long.arbitrary

Gen Ordering

Arbitrary_Ordering.arbitrary

Ordering

Bounded_Ordering.minBound, Bounded_Ordering.maxBound

(Gen a → Gen a) → (Gen a → Gen a) → Gen a → Gen a

><

(a → [a]) → [a] → [[a]]

shrinkList

StringGen 𝖆 → Gen 𝖆

CoArbitrary_String.coarbitrary

()Gen 𝖆 → Gen 𝖆

CoArbitrary_().coarbitrary

BoolGen 𝖆 → Gen 𝖆

CoArbitrary_Bool.coarbitrary

CharGen 𝖆 → Gen 𝖆

CoArbitrary_Char.coarbitrary

DoubleGen 𝖆 → Gen 𝖆

CoArbitrary_Double.coarbitrary

FloatGen 𝖆 → Gen 𝖆

CoArbitrary_Float.coarbitrary

IntGen 𝖆 → Gen 𝖆

CoArbitrary_Int.coarbitrary

IntegerGen 𝖆 → Gen 𝖆

CoArbitrary_Integer.coarbitrary

LongGen 𝖆 → Gen 𝖆

CoArbitrary_Long.coarbitrary

OrderingGen 𝖆 → Gen 𝖆

CoArbitrary_Ordering.coarbitrary

a → [a]

shrinkNothing

Floating a ⇒ a → [a]

shrinkFloating

(ArrayElement 𝖆, Arbitrary 𝖆) ⇒ JArray 𝖆 → [JArray 𝖆]

Arbitrary_JArray.shrink

Integral a ⇒ a → [a]

shrinkIntegral

Arbitrary a ⇒ IntGen [a]

vector

Arbitrary a ⇒ a → [a]

Arbitrary.shrink

Arbitrary 𝖆 ⇒ Maybe 𝖆 → [Maybe 𝖆]

Arbitrary_Maybe.shrink

Arbitrary 𝖆 ⇒ [𝖆] → [[𝖆]]

Arbitrary_[].shrink

Floating a ⇒ Gen a

arbitrarySizedFloating

(ArrayElement 𝖆, Arbitrary 𝖆) ⇒ Gen (JArray 𝖆)

Arbitrary_JArray.arbitrary

(Bounded a, Enum a) ⇒ Gen a

arbitraryBoundedEnum

(Bounded a, Integral a) ⇒ Gen a

arbitraryBoundedIntegral, arbitrarySizedBoundedIntegral

(Bounded a, Random a) ⇒ Gen a

arbitraryBoundedRandom

Num a ⇒ Gen a

arbitrarySizedIntegral

(Ord a, Arbitrary a) ⇒ Gen [a]

orderedList

Arbitrary a ⇒ Gen a

Arbitrary.arbitrary

Arbitrary 𝖆 ⇒ Gen (Maybe 𝖆)

Arbitrary_Maybe.arbitrary

Arbitrary 𝖆 ⇒ Gen [𝖆]

Arbitrary_[].arbitrary

Enum a ⇒ a → Gen b → Gen b

coarbitraryEnum

Integral a ⇒ a → Gen b → Gen b

coarbitraryIntegral

(Ord 𝖇, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ TreeMap 𝖇 𝖆 → [TreeMap 𝖇 𝖆]

Arbitrary_TreeMap.shrink

Show a ⇒ a → Gen b → Gen b

coarbitraryShow

(Arbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖇, 𝖆) → [(𝖇, 𝖆)]

Arbitrary_(,).shrink

(Arbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖇 | 𝖆) → [(𝖇 | 𝖆)]

Arbitrary_Either.shrink

CoArbitrary a ⇒ a → Gen c → Gen c

CoArbitrary.coarbitrary

CoArbitrary 𝖆 ⇒ Maybe 𝖆 → Gen 𝖇 → Gen 𝖇

CoArbitrary_Maybe.coarbitrary

CoArbitrary 𝖆 ⇒ [𝖆] → Gen 𝖇 → Gen 𝖇

CoArbitrary_[].coarbitrary

(CoArbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖇→𝖆) → [𝖇→𝖆]

Arbitrary_->.shrink

(Ord 𝖇, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (TreeMap 𝖇 𝖆)

Arbitrary_TreeMap.arbitrary

(Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖇, 𝖆)

Arbitrary_(,).arbitrary

(Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖇 | 𝖆)

Arbitrary_Either.arbitrary

(CoArbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖇→𝖆)

Arbitrary_->.arbitrary

(Ord 𝖇, CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ TreeMap 𝖇 𝖆 → Gen 𝖈 → Gen 𝖈

CoArbitrary_TreeMap.coarbitrary

(Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ (𝖇, 𝖈, 𝖆) → [(𝖇, 𝖈, 𝖆)]

Arbitrary_(,,).shrink

(Arbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖇→𝖆) → Gen 𝖈 → Gen 𝖈

CoArbitrary_->.coarbitrary

(CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖇, 𝖆) → Gen 𝖈 → Gen 𝖈

CoArbitrary_(,).coarbitrary

(CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖇 | 𝖆) → Gen 𝖈 → Gen 𝖈

CoArbitrary_Either.coarbitrary

(Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ Gen (𝖇, 𝖈, 𝖆)

Arbitrary_(,,).arbitrary

(Arbitrary 𝖈, Arbitrary 𝖉, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ (𝖈, 𝖉, 𝖇, 𝖆) → [(𝖈, 𝖉, 𝖇, 𝖆)]

Arbitrary_(,,,).shrink

(CoArbitrary 𝖇, CoArbitrary 𝖈, CoArbitrary 𝖆) ⇒ (𝖇, 𝖈, 𝖆) → Gen 𝖉 → Gen 𝖉

CoArbitrary_(,,).coarbitrary

(Arbitrary 𝖈, Arbitrary 𝖉, Arbitrary 𝖇, Arbitrary 𝖆) ⇒ Gen (𝖈, 𝖉, 𝖇, 𝖆)

Arbitrary_(,,,).arbitrary

(Arbitrary 𝖉, Arbitrary 𝖊, Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ (𝖉, 𝖊, 𝖇, 𝖈, 𝖆) → [(𝖉, 𝖊, 𝖇, 𝖈, 𝖆)]

Arbitrary_(,,,,).shrink

(CoArbitrary 𝖈, CoArbitrary 𝖉, CoArbitrary 𝖇, CoArbitrary 𝖆) ⇒ (𝖈, 𝖉, 𝖇, 𝖆) → Gen 𝖊 → Gen 𝖊

CoArbitrary_(,,,).coarbitrary

(Arbitrary 𝖉, Arbitrary 𝖊, Arbitrary 𝖇, Arbitrary 𝖈, Arbitrary 𝖆) ⇒ Gen (𝖉, 𝖊, 𝖇, 𝖈, 𝖆)

Arbitrary_(,,,,).arbitrary

(CoArbitrary 𝖉, CoArbitrary 𝖊, CoArbitrary 𝖇, CoArbitrary 𝖈, CoArbitrary 𝖆) ⇒ (𝖉, 𝖊, 𝖇, 𝖈, 𝖆) → Gen 𝖋 → Gen 𝖋

CoArbitrary_(,,,,).coarbitrary

Valid HTML 4.01 Strict