Generic.md

June 6, 2016 ยท View on GitHub

Module Test.StrongCheck.Generic

Generic deriving for Arbitrary and CoArbitrary instances. Generation of arbitrary GenericSpines with corresponding GenericSignatures.

gArbitrary

gArbitrary :: forall a. Generic a => Gen a

Generate arbitrary values for any Generic data structure

gCoarbitrary

gCoarbitrary :: forall a r. Generic a => a -> Gen r -> Gen r

Perturb a generator using a Generic data structure

GenericValue

newtype GenericValue

Contains representation of an arbitrary value. Consists of GenericSpine and corresponding GenericSignature.

Instances
Arbitrary GenericValue

runGenericValue

runGenericValue :: GenericValue -> { signature :: GenericSignature, spine :: GenericSpine }

Extract GenericSignature and GenericSpine from a GenericValue

genericValue

genericValue :: GenericSignature -> GenericSpine -> Maybe GenericValue

Smart constructor for GenericValue. Would return Nothing if given GenericSpine doesn't conform to given GenericSignature

genGenericSignature

genGenericSignature :: Size -> Gen GenericSignature

Generates GenericSignatures. Size parameter affects how nested the structure is.

genGenericSpine

genGenericSpine :: GenericSignature -> Gen GenericSpine

Generates GenericSpines that conform to provided GenericSignature.