/ lib / falsify.cabal
falsify.cabal
  1  cabal-version:      3.0
  2  name:               falsify
  3  version:            0.2.1
  4  synopsis:           Property-based testing with internal integrated shrinking
  5  description:        This library provides property based testing with support
  6                      for internal integrated shrinking: integrated in the sense
  7                      of Hedgehog, meaning that there is no need to write a
  8                      separate shrinker and generator; and internal in the sense
  9                      of Hypothesis, meaning that this works well even across
 10                      monadic bind. However, the actual techniques that power
 11                      @falsify@ are quite different from both of these two
 12                      libraries.
 13  
 14                      Most users will probably want to use the integration with
 15                      @<https://hackage.haskell.org/package/tasty tasty>@,
 16                      and use "Test.Tasty.Falsify" as their main entrypoint
 17                      into the library. The "Test.Falsify.Interactive" module
 18                      can be used to experiment with the library in @ghci@.
 19  
 20  license:            BSD-3-Clause
 21  license-file:       LICENSE
 22  author:             Edsko de Vries
 23  maintainer:         edsko@well-typed.com
 24  copyright:          Well-Typed LLP
 25  category:           Testing
 26  build-type:         Simple
 27  extra-doc-files:    CHANGELOG.md
 28  tested-with:        GHC==8.10.7
 29                    , GHC==9.0.2
 30                    , GHC==9.2.8
 31                    , GHC==9.4.8
 32                    , GHC==9.6.7
 33                    , GHC==9.8.4
 34                    , GHC==9.10.1
 35                    , GHC==9.12.2
 36  
 37  source-repository head
 38    type:     git
 39    location: https://github.com/well-typed/falsify
 40  
 41  common lang
 42    ghc-options:
 43        -Wall
 44        -Wredundant-constraints
 45        -Widentities
 46    build-depends:
 47        base >= 4.12 && < 4.22
 48    default-language:
 49        Haskell2010
 50    default-extensions:
 51        BangPatterns
 52        DataKinds
 53        DefaultSignatures
 54        DeriveAnyClass
 55        DeriveFoldable
 56        DeriveFunctor
 57        DeriveGeneric
 58        DeriveTraversable
 59        DerivingStrategies
 60        DerivingVia
 61        DisambiguateRecordFields
 62        FlexibleContexts
 63        FlexibleInstances
 64        GADTs
 65        GeneralizedNewtypeDeriving
 66        InstanceSigs
 67        KindSignatures
 68        LambdaCase
 69        MultiParamTypeClasses
 70        MultiWayIf
 71        NamedFieldPuns
 72        NumericUnderscores
 73        PatternSynonyms
 74        QuantifiedConstraints
 75        RankNTypes
 76        ScopedTypeVariables
 77        StandaloneDeriving
 78        TupleSections
 79        TypeApplications
 80        TypeOperators
 81        ViewPatterns
 82  
 83  library
 84    import:
 85        lang
 86    exposed-modules:
 87        Test.Falsify.GenDefault
 88        Test.Falsify.GenDefault.Std
 89        Test.Falsify.Generator
 90        Test.Falsify.Interactive
 91        Test.Falsify.Predicate
 92        Test.Falsify.Property
 93        Test.Falsify.Range
 94  
 95        -- For consistency with the other tasty runners, we places these modules
 96        -- in the @Test.Tasty.*@ hiearchy instead of @Test.Falsify.*@.
 97        Test.Tasty.Falsify
 98    other-modules:
 99        Test.Falsify.Internal.Driver
100        Test.Falsify.Internal.Driver.ReplaySeed
101        Test.Falsify.Internal.Driver.Tasty
102        Test.Falsify.Internal.Generator
103        Test.Falsify.Internal.Generator.Definition
104        Test.Falsify.Internal.Generator.Shrinking
105        Test.Falsify.Internal.Property
106        Test.Falsify.Internal.Range
107        Test.Falsify.Internal.SampleTree
108        Test.Falsify.Internal.Search
109        Test.Falsify.Reexported.Generator.Compound
110        Test.Falsify.Reexported.Generator.Function
111        Test.Falsify.Reexported.Generator.Precision
112        Test.Falsify.Reexported.Generator.Shrinking
113        Test.Falsify.Reexported.Generator.Simple
114  
115        Data.Falsify.Integer
116        Data.Falsify.List
117        Data.Falsify.Marked
118        Data.Falsify.Tree
119    hs-source-dirs:
120        src
121    build-depends:
122      , base16-bytestring    >= 1.0  && < 1.1
123      , binary               >= 0.8  && < 0.9
124      , bytestring           >= 0.10 && < 0.13
125      , containers           >= 0.6  && < 0.8
126      , data-default         >= 0.7  && < 0.9
127      , mtl                  >= 2.2  && < 2.4
128      , optics-core          >= 0.3  && < 0.5
129      , optparse-applicative >= 0.16 && < 0.19
130      , selective            >= 0.4  && < 0.8
131      , sop-core             >= 0.5  && < 0.6
132      , splitmix             >= 0.1  && < 0.2
133      , tagged               >= 0.8  && < 0.9
134      , tasty                >= 1.3  && < 1.6
135      , transformers         >= 0.5  && < 0.7
136      , vector               >= 0.12 && < 0.14
137    other-extensions:
138      CPP
139  
140  test-suite test-falsify
141    import:
142        lang
143    type:
144        exitcode-stdio-1.0
145    hs-source-dirs:
146        test
147    main-is:
148        Main.hs
149    other-modules:
150        TestSuite.GenDefault
151        TestSuite.Sanity.Predicate
152        TestSuite.Sanity.Range
153        TestSuite.Sanity.Selective
154        TestSuite.Prop.Generator.Compound
155        TestSuite.Prop.Generator.Function
156        TestSuite.Prop.Generator.Marking
157        TestSuite.Prop.Generator.Precision
158        TestSuite.Prop.Generator.Prim
159        TestSuite.Prop.Generator.Selective
160        TestSuite.Prop.Generator.Shrinking
161        TestSuite.Prop.Generator.Simple
162        TestSuite.Util.List
163        TestSuite.Util.Tree
164    build-depends:
165      , QuickCheck  >= 2.14 && < 2.16
166      , tasty-hunit >= 0.10 && < 0.11
167  
168        -- Inherit bounds from the main library
169      , containers
170      , data-default
171      , falsify
172      , selective
173      , tasty
174