Module Test.QuickCheckGen

Test case generation.

Imports

Table of Content

Definitions

data Gen a

Generator type

Constructors

MkGen {unGen ∷ StdGenInt → a}

Member Functions

unGenGen 𝖆StdGenInt → 𝖆

access field unGen

variantIntegral n ⇒ n → Gen aGen a
sized ∷ (IntGen a) → Gen a

Used to construct generators that depend on the size parameter.

resizeIntGen aGen a

Overrides the size parameter. Returns a generator which uses the given size instead of the runtime-size parameter.

chooseRandom a ⇒ (a, a) → Gen a

Generates a random element in the given inclusive range.

promoteMonad m ⇒ m (Gen a) → Gen (m a)

Promotes a monadic generator to a generator of monadic values.

sample'Gen aIO [a]

Generates some example values.

sampleShow a ⇒ Gen aIO ()

Generates some example values and prints them to IO.stdout.

suchThatGen a → (a → Bool) → Gen a

Generates a value that satisfies a predicate.

suchThatMaybeGen a → (a → Bool) → Gen (Maybe a)

Tries to generate a value that satisfies a predicate.

oneof[Gen a]Gen a

Randomly uses one of the given generators. The input list must be non-empty.

frequency[(Int, Gen a)]Gen a

Chooses one of the given generators, with a weighted random distribution. The input list must be non-empty.

elements[a]Gen a

Generates one of the given values. The input list must be non-empty.

growingElements[a]Gen a

Takes a list of elements of increasing size, and chooses among an initial segment of the list. The size of this initial segment increases with the size parameter. The input list must be non-empty.

listOfGen a → Gen [a]

Generates a list of random length.

The maximum length depends on the size parameter.

listOf1Gen a → Gen [a]

Generates a non-empty list of random length.

The maximum length depends on the size parameter.

vectorOfIntGen a → Gen [a]

Generates a list of the given length.

Instances

instance Functor Gen

Member Functions

fmap ∷ (𝖆 → 𝖇) → Gen 𝖆Gen 𝖇
infixl  4
instance Monad Gen

Member Functions

*>Gen 𝖆 → Gen 𝖇 → Gen 𝖇
infixl  4

inherited from Applicative.*>

<*Gen 𝖆 → Gen 𝖇 → Gen 𝖆
infixl  4

inherited from Applicative.<*

<*>Gen (𝖆→𝖇) → Gen 𝖆 → Gen 𝖇
infixl  4
>>Gen 𝖆Gen 𝖇 → Gen 𝖇
infixl  3

inherited from Monad.>>

>>=Gen 𝖆 → (𝖆 → Gen 𝖇) → Gen 𝖇
infixl  3
joinGen (Gen 𝖆)Gen 𝖆

inherited from Monad.join

pure𝖆Gen 𝖆

Functions and Values by Type

(IntGen a) → Gen a

sized

(StdGenInt → a) → Gen a

Gen.MkGen

[(Int, Gen a)] → Gen a

frequency

[Gen a] → Gen a

oneof

[a] → Gen a

elements, growingElements

Gen (Gen 𝖆) → Gen 𝖆

Monad_Gen.join

Gen a → (a → Bool) → Gen (Maybe a)

suchThatMaybe

Gen a → (a → Bool) → Gen a

suchThat

Gen a → IO [a]

sample'

Gen a → Gen [a]

listOf, listOf1

Gen 𝖆 → StdGenInt → 𝖆

Gen.unGen

IntGen a → Gen [a]

vectorOf

IntGen a → Gen a

resize

𝖆 → Gen 𝖆

Monad_Gen.pure

𝖆 → Bool

Gen.has$unGen

Show a ⇒ Gen a → IO ()

sample

Random a ⇒ (a, a) → Gen a

choose

(𝖆 → 𝖇) → Gen 𝖆 → Gen 𝖇

Functor_Gen.fmap

Gen (𝖆→𝖇) → Gen 𝖆 → Gen 𝖇

Monad_Gen.<*>

Gen 𝖆 → (𝖆 → Gen 𝖇) → Gen 𝖇

Monad_Gen.>>=

Gen 𝖆 → (StdGenInt→𝖇) → Gen 𝖇

Gen.upd$unGen

Gen 𝖆 → Gen 𝖇 → Gen 𝖆

Monad_Gen.<*

Gen 𝖆 → Gen 𝖇 → Gen 𝖇

Monad_Gen.*>, Monad_Gen.>>

Gen 𝖇 → (-> StdGen (Int→𝖇)→StdGenInt→𝖆) → Gen 𝖆

Gen.chg$unGen

Integral n ⇒ n → Gen a → Gen a

variant

Monad m ⇒ m (Gen a) → Gen (m a)

promote

Valid HTML 4.01 Strict