https://github.com/byteally/hedgehog-gen
Customizable Gen for ADT using Generics
https://github.com/byteally/hedgehog-gen
haskell hedgehog property-testing
Last synced: 7 months ago
JSON representation
Customizable Gen for ADT using Generics
- Host: GitHub
- URL: https://github.com/byteally/hedgehog-gen
- Owner: byteally
- License: bsd-3-clause
- Created: 2020-02-19T14:04:06.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-10T08:48:00.000Z (over 3 years ago)
- Last Synced: 2025-05-25T02:19:45.312Z (8 months ago)
- Topics: haskell, hedgehog, property-testing
- Language: Haskell
- Size: 11.7 KB
- Stars: 1
- Watchers: 5
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# hedgehog-gen
Customizable Gen for ADT using Generics
[](https://hackage.haskell.org/package/hedgehog-gen)
## Tutorial
```haskell
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"])
```