mirror of
https://github.com/nick8325/quickspec.git
synced 2024-09-11 08:35:32 +03:00
117 lines
3.5 KiB
Plaintext
117 lines
3.5 KiB
Plaintext
Name: quickspec
|
|
Version: 2.2
|
|
Cabal-version: >= 1.10
|
|
Build-type: Simple
|
|
|
|
Homepage: https://github.com/nick8325/quickspec
|
|
Author: Nick Smallbone
|
|
Maintainer: nicsma@chalmers.se
|
|
|
|
License: BSD3
|
|
License-file: LICENSE
|
|
Copyright: 2009-2019 Nick Smallbone
|
|
|
|
Category: Testing
|
|
|
|
Synopsis: Equational laws for free!
|
|
Description:
|
|
QuickSpec takes your Haskell code and, as if by magic, discovers laws
|
|
about it. You give QuickSpec a collection of Haskell functions;
|
|
QuickSpec tests your functions with QuickCheck and prints out laws which
|
|
seem to hold.
|
|
.
|
|
For example, give QuickSpec the functions @reverse@, @++@ and @[]@, and
|
|
it will find six laws:
|
|
.
|
|
> reverse [] == []
|
|
> xs ++ [] == xs
|
|
> [] ++ xs == xs
|
|
> reverse (reverse xs) == xs
|
|
> (xs ++ ys) ++ zs == xs ++ (ys ++ zs)
|
|
> reverse xs ++ reverse ys == reverse (ys ++ xs)
|
|
.
|
|
QuickSpec can find equational laws as well as conditional equations. All
|
|
you need to supply are the functions to test, as well as @Ord@ and
|
|
@Arbitrary@ instances for QuickSpec to use in testing; the rest is
|
|
automatic.
|
|
.
|
|
For information on how to use QuickSpec, see the documentation in the main
|
|
module, "QuickSpec". You can also look in the
|
|
@<https://github.com/nick8325/quickspec/tree/master/examples examples>@
|
|
directory, for example at
|
|
@<https://github.com/nick8325/quickspec/tree/master/examples/Lists.hs Lists.hs>@,
|
|
@<https://github.com/nick8325/quickspec/tree/master/examples/IntSet.hs IntSet.hs>@, or
|
|
@<https://github.com/nick8325/quickspec/tree/master/examples/Parsing.hs Parsing.hs>@.
|
|
To read about how
|
|
QuickSpec works, see our paper,
|
|
<http://www.cse.chalmers.se/~nicsma/papers/quickspec2.pdf Quick specifications for the busy programmer>.
|
|
|
|
Extra-source-files:
|
|
README.md
|
|
examples/Arith.hs
|
|
examples/Bools.hs
|
|
examples/Composition.hs
|
|
examples/Curry.hs
|
|
examples/Geometry.hs
|
|
examples/HugeLists.hs
|
|
examples/IntSet.hs
|
|
examples/ListMonad.hs
|
|
examples/Lists.hs
|
|
examples/Octonions.hs
|
|
examples/Parsing.hs
|
|
examples/PrettyPrinting.hs
|
|
examples/PrettyPrintingModel.hs
|
|
examples/Regex.hs
|
|
examples/Sorted.hs
|
|
examples/Zip.hs
|
|
|
|
source-repository head
|
|
type: git
|
|
location: git://github.com/nick8325/quickspec.git
|
|
branch: master
|
|
|
|
library
|
|
default-language: Haskell2010
|
|
ghc-options: -W
|
|
hs-source-dirs: src
|
|
Exposed-modules:
|
|
QuickSpec
|
|
QuickSpec.Internal
|
|
QuickSpec.Internal.Explore
|
|
QuickSpec.Internal.Explore.Conditionals
|
|
QuickSpec.Internal.Explore.Polymorphic
|
|
QuickSpec.Internal.Explore.Schemas
|
|
QuickSpec.Internal.Explore.Terms
|
|
QuickSpec.Internal.Haskell
|
|
QuickSpec.Internal.Haskell.Resolve
|
|
QuickSpec.Internal.Parse
|
|
QuickSpec.Internal.Prop
|
|
QuickSpec.Internal.Pruning
|
|
QuickSpec.Internal.Pruning.Background
|
|
QuickSpec.Internal.Pruning.Twee
|
|
QuickSpec.Internal.Pruning.Types
|
|
QuickSpec.Internal.Pruning.UntypedTwee
|
|
QuickSpec.Internal.Pruning.PartialApplication
|
|
QuickSpec.Internal.Term
|
|
QuickSpec.Internal.Terminal
|
|
QuickSpec.Internal.Testing
|
|
QuickSpec.Internal.Testing.DecisionTree
|
|
QuickSpec.Internal.Testing.QuickCheck
|
|
QuickSpec.Internal.Type
|
|
QuickSpec.Internal.Utils
|
|
|
|
Build-depends:
|
|
QuickCheck >= 2.14.2,
|
|
quickcheck-instances >= 0.3.16,
|
|
base >= 4.7 && < 5,
|
|
constraints,
|
|
containers,
|
|
data-lens-light >= 0.1.1,
|
|
dlist,
|
|
random,
|
|
spoon,
|
|
template-haskell,
|
|
transformers,
|
|
twee-lib,
|
|
uglymemo
|