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

arbitrary ∷ Arbitrary a ⇒ Gen a

A generator for values of the given type.

shrink ∷ Arbitrary a ⇒ a → [a]

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

shrinkList ∷ (a → [a]) → [a] → [[a]]
arbitrarySizedIntegral ∷ Num a ⇒ Gen a

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

arbitrarySizedFloating ∷ Floating 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.

shrinkIntegral ∷ Integral a ⇒ a → [a]

Shrink an integral number.

shrinkFloating ∷ Floating 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

coarbitrary ∷ CoArbitrary 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
coarbitraryIntegral ∷ Integral a ⇒ a → Gen b → Gen b
coarbitraryShow ∷ Show a ⇒ a → Gen b → Gen b

CoArbitrary.coarbitrary helper for lazy people :-).

coarbitraryEnum ∷ Enum a ⇒ a → Gen b → Gen b

A CoArbitrary.coarbitrary implementation for enums.

vector ∷ Arbitrary a ⇒ Int → Gen [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

arbitrary ∷ Gen ()
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

arbitrary ∷ Gen Bool
shrink ∷ Bool → [Bool]
instance Arbitrary Byte

Member Functions

arbitrary ∷ Gen Byte
shrink ∷ Byte → [Byte]

inherited from Arbitrary.shrink

instance Arbitrary Char

Member Functions

arbitrary ∷ Gen Char
shrink ∷ Char → [Char]
instance Arbitrary Double

Member Functions

arbitrary ∷ Gen Double
shrink ∷ Double → [Double]
instance (Arbitrary a, Arbitrary b) ⇒ Arbitrary (a | b)

Member Functions

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

Member Functions

arbitrary ∷ Gen Float
shrink ∷ Float → [Float]
instance Arbitrary Int

Member Functions

arbitrary ∷ Gen Int
shrink ∷ Int → [Int]
instance Arbitrary Integer

Member Functions

arbitrary ∷ Gen Integer
shrink ∷ Integer → [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

arbitrary ∷ Gen Long
shrink ∷ Long → [Long]
instance Arbitrary a ⇒ Arbitrary (Maybe a)

Member Functions

arbitrary ∷ Arbitrary 𝖆 ⇒ Gen (Maybe 𝖆)
shrink ∷ Arbitrary 𝖆 ⇒ Maybe 𝖆 → [Maybe 𝖆]
instance Arbitrary Ordering

Member Functions

arbitrary ∷ Gen Ordering
shrink ∷ Ordering → [Ordering]
instance Arbitrary Short

Member Functions

arbitrary ∷ Gen Short
shrink ∷ Short → [Short]
instance Arbitrary String

Member Functions

arbitrary ∷ Gen String
shrink ∷ String → [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

arbitrary ∷ Arbitrary 𝖆 ⇒ Gen [𝖆]
shrink ∷ Arbitrary 𝖆 ⇒ [𝖆] → [[𝖆]]
instance Bounded Ordering

Member Functions

maxBound ∷ Ordering

Function generated for derived instance.

minBound ∷ Ordering

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

coarbitrary ∷ Bool → Gen 𝖆 → Gen 𝖆
instance CoArbitrary Char

Member Functions

coarbitrary ∷ Char → Gen 𝖆 → Gen 𝖆
instance CoArbitrary Double

Member Functions

coarbitrary ∷ Double → Gen 𝖆 → Gen 𝖆
instance (CoArbitrary a, CoArbitrary b) ⇒ CoArbitrary (a | b)

Member Functions

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

Member Functions

coarbitrary ∷ Float → Gen 𝖆 → Gen 𝖆
instance CoArbitrary Int

Member Functions

coarbitrary ∷ Int → Gen 𝖆 → Gen 𝖆
instance CoArbitrary Integer

Member Functions

coarbitrary ∷ Integer → Gen 𝖆 → Gen 𝖆
instance CoArbitrary Long

Member Functions

coarbitrary ∷ Long → Gen 𝖆 → Gen 𝖆
instance CoArbitrary a ⇒ CoArbitrary (Maybe a)

Member Functions

coarbitrary ∷ CoArbitrary 𝖆 ⇒ Maybe 𝖆 → Gen 𝖇 → Gen 𝖇
instance CoArbitrary Ordering

Member Functions

coarbitrary ∷ Ordering → Gen 𝖆 → Gen 𝖆
instance CoArbitrary String

Member Functions

coarbitrary ∷ String → Gen 𝖆 → 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

coarbitrary ∷ CoArbitrary 𝖆 ⇒ [𝖆] → 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

String → Gen 𝖆 → Gen 𝖆

CoArbitrary_String.coarbitrary

() → Gen 𝖆 → Gen 𝖆

CoArbitrary_().coarbitrary

Bool → Gen 𝖆 → Gen 𝖆

CoArbitrary_Bool.coarbitrary

Char → Gen 𝖆 → Gen 𝖆

CoArbitrary_Char.coarbitrary

Double → Gen 𝖆 → Gen 𝖆

CoArbitrary_Double.coarbitrary

Float → Gen 𝖆 → Gen 𝖆

CoArbitrary_Float.coarbitrary

Int → Gen 𝖆 → Gen 𝖆

CoArbitrary_Int.coarbitrary

Integer → Gen 𝖆 → Gen 𝖆

CoArbitrary_Integer.coarbitrary

Long → Gen 𝖆 → Gen 𝖆

CoArbitrary_Long.coarbitrary

Ordering → Gen 𝖆 → 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 ⇒ Int → Gen [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