@hackage / hedgehog-quickcheck

Use QuickCheck generators in Hedgehog and vice versa.

Latest v0.1.1

About

Metadata

  • Last updated:
  • License: BSD-3-Clause
  • Categories: Testing
  • Maintained by: Jacob Stanley <jacob@stanley.io>
  • Lottery factor: 5

Links

Installation

Tested Compilers

  1. 8.0.2
  2. 8.2.2
  3. 8.4.4
  4. 8.6.5
  5. 8.8.3
  6. 8.10.1

Build targets

  • JS
  • WASM

Uploaders

  1. Howard Knight
  2. Warren Griffin
  3. Sarah Bass

Readme

hedgehog-quickcheck Hackage

Hedgehog will eat all your bugs.

Use QuickCheck generators in Hedgehog and vice versa.

Example

The Hedgehog.Gen.QuickCheck module allows the use of QuickCheck generators inside Hedgehog.

{-# LANGUAGE TemplateHaskell #-}

import Hedgehog import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Gen.QuickCheck as Gen import qualified Hedgehog.Range as Range

Once you have your imports set up, you can write a property which mixes QuickCheck and Hedgehog generators together:

prop_reverse :: Property
prop_reverse =
  property $ do
    xs <- forAll $ Gen.list (Range.linear 0 100) (Gen.arbitrary :: Gen Char)
    reverse (reverse xs) === xs

And add the Template Haskell splice which will discover your properties:

tests :: IO Bool
tests =
  checkParallel $$(discover)

You can then load the module in GHCi, and run it:

λ tests
━━━ Test.Example ━━━
  ✓ prop_reverse passed 100 tests.