/QuickCheck-safe

Safe reimplementation of QuickCheck's core

Primary LanguageHaskellMIT LicenseMIT

QuickCheck-safe reimplements the quickCheck functionality with a pure interface and a very small trusted base (see Test.QuickCheck.Safe.Trusted).

  • uses the existing Arbitrary instances
  • implemented features: testing, result minimization (i.e., shrinking)
  • missing features: expected failures, label frequencies, coverage

The package is targeted at users who want to leverage SafeHaskell for sandboxing.

> putStr $ quickCheck (inventQCGen ()) (\x -> length (x :: [()]) < 10)
*** Failed! Falsifiable (after 18 tests and 3 shrinks):
[(),(),(),(),(),(),(),(),(),(),(),(),(),(),()]