Name: QuickCheck Version: 2.17.0.0 Cabal-Version: >= 1.10 Build-type: Simple License: BSD3 License-file: LICENSE Copyright: 2000-2019 Koen Claessen, 2006-2008 Björn Bringert, 2009-2019 Nick Smallbone Author: Koen Claessen Maintainer: Nick Smallbone Bug-reports: https://github.com/nick8325/quickcheck/issues Tested-with: GHC >= 8.10 && < 9.13, hugs Homepage: https://github.com/nick8325/quickcheck Category: Testing Synopsis: Automatic testing of Haskell programs Description: QuickCheck is a library for random testing of program properties. The programmer provides a specification of the program, in the form of properties which functions should satisfy, and QuickCheck then tests that the properties hold in a large number of randomly generated cases. Specifications are expressed in Haskell, using combinators provided by QuickCheck. QuickCheck provides combinators to define properties, observe the distribution of test data, and define test data generators. . Most of QuickCheck's functionality is exported by the main "Test.QuickCheck" module. The main exception is the monadic property testing library in "Test.QuickCheck.Monadic". . If you are new to QuickCheck, you can try looking at the following resources: . * The . It's a bit out-of-date in some details and doesn't cover newer QuickCheck features, but is still full of good advice. * , a detailed tutorial written by a user of QuickCheck. . The companion package provides instances for types in Haskell Platform packages at the cost of additional dependencies. extra-source-files: README changelog examples/Heap.hs examples/Heap_Program.hs examples/Heap_ProgramAlgebraic.hs examples/Lambda.hs examples/Merge.hs examples/Set.hs examples/Simple.hs make-hugs test-hugs test-mhs source-repository head type: git location: https://github.com/nick8325/quickcheck source-repository this type: git location: https://github.com/nick8325/quickcheck tag: 2.16 flag templateHaskell Description: Build Test.QuickCheck.All, which uses Template Haskell. Default: True Manual: True flag old-random Description: Build against a pre-1.2.0 version of the random package. Default: False Manual: False library Hs-source-dirs: src Build-depends: base >=4.14 && <5, containers Default-language: Haskell2010 -- New vs old random. if flag(old-random) Build-depends: random >= 1.0.0.3 && < 1.2 cpp-options: -DOLD_RANDOM else Build-depends: random >= 1.2.0 && < 1.4 -- We always use splitmix directly rather than going through StdGen -- (it's somewhat more efficient). -- However, Hugs traps overflow on Word64, so we have to stick -- with StdGen there. if impl(hugs) cpp-options: -DNO_SPLITMIX else Build-depends: splitmix >= 0.1.0.2 && <0.2 if impl(hugs) cpp-options: -DNO_SEMIGROUP -DNO_EXISTENTIAL_FIELD_SELECTORS -- Modules that are always built. Exposed-Modules: Test.QuickCheck, Test.QuickCheck.Arbitrary, Test.QuickCheck.Gen, Test.QuickCheck.Gen.Unsafe, Test.QuickCheck.Monadic, Test.QuickCheck.Monoids, Test.QuickCheck.Modifiers, Test.QuickCheck.Property, Test.QuickCheck.Test, Test.QuickCheck.Text, Test.QuickCheck.Poly, Test.QuickCheck.State, Test.QuickCheck.Random, Test.QuickCheck.Exception, Test.QuickCheck.Features -- GHC-specific modules. if impl(ghc) || impl(mhs) Exposed-Modules: Test.QuickCheck.Function Build-depends: transformers >= 0.3, deepseq >= 1.1.0.0 if impl(ghc) && flag(templateHaskell) Build-depends: template-haskell >= 2.4 Other-Extensions: TemplateHaskellQuotes Exposed-Modules: Test.QuickCheck.All else cpp-options: -DNO_TEMPLATE_HASKELL if !impl(ghc) && !impl(mhs) cpp-options: -DNO_CALLSTACK -DNO_SEMIGROUP -DNO_CTYPES_CONSTRUCTORS -DNO_FOREIGN_C_USECONDS -DNO_POLYKINDS -DNO_MONADFAIL -DNO_TRANSFORMERS -DNO_DEEPSEQ -- random is explicitly Trustworthy since 1.0.1.0 -- similar constraint for containers if impl(ghc) Build-depends: random >=1.0.1.0 , containers >=0.4.2.1 if impl(ghc >= 9.8) ghc-options: -Wno-x-partial if impl(ghc < 9.4) Build-depends: data-array-byte -- Switch off most optional features on non-GHC systems. if !impl(ghc) && !impl(mhs) -- If your Haskell compiler can cope without some of these, please -- send a message to the QuickCheck mailing list! cpp-options: -DNO_TIMEOUT -DNO_NEWTYPE_DERIVING -DNO_GENERICS -DNO_TEMPLATE_HASKELL -DNO_SAFE_HASKELL -DNO_TYPEABLE -DNO_GADTS -DNO_EXTRA_METHODS_IN_APPLICATIVE -DOLD_RANDOM -DNO_CALLSTACK if !impl(hugs) && !impl(uhc) cpp-options: -DNO_ST_MONAD -DNO_MULTI_PARAM_TYPE_CLASSES if impl(mhs) cpp-options: -DNO_GENERICS -DNO_TEMPLATE_HASKELL -DNO_CTYPES_CONSTRUCTORS -DNO_EXISTENTIAL_FIELD_SELECTORS -- LANGUAGE pragmas don't have any effect in Hugs. if impl(hugs) Default-Extensions: CPP Test-Suite test-quickcheck type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: examples main-is: Heap.hs build-depends: base, QuickCheck if !flag(templateHaskell) Buildable: False Test-Suite test-quickcheck-gcoarbitrary type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: GCoArbitraryExample.hs build-depends: base, QuickCheck if !flag(templateHaskell) buildable: False Test-Suite test-quickcheck-generators type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: Generators.hs build-depends: base, QuickCheck if !flag(templateHaskell) Buildable: False Test-Suite test-quickcheck-gshrink type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: GShrinkExample.hs build-depends: base, QuickCheck if !flag(templateHaskell) buildable: False Test-Suite test-quickcheck-terminal type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: Terminal.hs build-depends: base, process, deepseq >= 1.1.0.0, QuickCheck if !flag(templateHaskell) buildable: False Test-Suite test-quickcheck-monadfix type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: MonadFix.hs build-depends: base, QuickCheck if !flag(templateHaskell) buildable: False Test-Suite test-quickcheck-split type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: Split.hs build-depends: base, QuickCheck if impl(ghc >= 9.8) ghc-options: -Wno-x-partial Test-Suite test-quickcheck-strictness type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: Strictness.hs build-depends: base, QuickCheck, containers if !flag(templateHaskell) buildable: False Test-Suite test-quickcheck-misc type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: Misc.hs build-depends: base, QuickCheck, containers if !flag(templateHaskell) buildable: False Test-Suite test-quickcheck-discard type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: DiscardRatio.hs build-depends: base, QuickCheck Test-Suite test-quickcheck-monoids type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: Monoids.hs build-depends: base, QuickCheck Test-Suite test-quickcheck-withprogress type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests main-is: WithProgress.hs build-depends: base, QuickCheck Test-Suite test-quickcheck-instances type: exitcode-stdio-1.0 Default-language: Haskell2010 hs-source-dirs: tests other-modules: CollectDataTypes main-is: RunCollectDataTypes.hs build-depends: base, QuickCheck, transformers, split, process, template-haskell, hint if !flag(templateHaskell) || impl(ghc <= 8.10) buildable: False