@hackage hedgehog-gen0.1.0.0
Customizable Gen for ADT using Generics
Installation
Dependencies (5)
- base >=4.9 && <5
- bytestring >=0.10 && <0.11
- hedgehog >1.0 && <1.1
- text >=1.1 && <1.3
- typerep-map >=0.3.2 Show all…
Dependents (0)
hedgehog-gen
Customizable Gen for ADT using Generics
Tutorial
import Hedgehog
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
import Hedgehog.Gen.Generic
import Data.Function
data Gender = Male | Female | Other
deriving (Show, Eq, Generic)
data User = User
{ name :: Text
, age :: Word
, gender :: Gender
} deriving (Show, Eq, Generic)
userGen1 :: Hedgehog.Gen User
userGen1 = mkGen emptyGens
userGen2 :: Hedgehog.Gen User
userGen2 = mkGen $ emptyGens
& byField @User @"age" (Gen.word (Range.constant 1 120))
& byPos @User @1 (Gen.element ["foo", "bar", "baz"])