quickspec-0.9.1: quickspec.cabal
Name: quickspec
Version: 0.9.1
Cabal-version: >=1.6
Build-type: Simple
Homepage: https://github.com/nick8325/quickspec
Author: Nick Smallbone
Maintainer: nicsma@chalmers.se
License: BSD3
License-file: LICENSE
Copyright: 2009-2013 Nick Smallbone
Category: Testing
Synopsis: Equational laws for free
Description:
QuickSpec automatically finds equational properties of your program.
.
Give it an API, i.e. a collection of functions, and it will spit out
equations about those functions. For example, given @reverse@, @++@
and @[]@, QuickSpec finds six laws:
.
> xs++[] == xs
> []++xs == xs
> reverse [] == []
> (xs++ys)++zs == xs++(ys++zs)
> reverse (reverse xs) == xs
> reverse xs++reverse ys == reverse (ys++xs)
.
All you have to provide is:
.
* Some functions and constants to test. These are the /only/
functions that will appear in the equations.
.
* A collection of variables that can appear in the equations
(@xs@, @ys@ and @zs@ in the example above).
.
* 'Test.QuickCheck.Arbitrary' and 'Data.Typeable.Typeable' instances for the types you want to test.
.
Consider this a pre-release. Everything is complete but undocumented
:) The best place to start is the examples at
<http://github.com/nick8325/quickspec/tree/master/examples>. There
is also a paper at
<http://www.cse.chalmers.se/~nicsma/quickspec.pdf>.
Everything you need should be in the module "Test.QuickSpec".
.
If you want help, email me!
Extra-source-files:
README
examples/Arith.hs
examples/Bools.hs
examples/Composition.hs
examples/Heaps.hs
examples/Lists.hs
examples/TinyWM.hs
src/Test/QuickSpec/errors.h
source-repository head
type: git
location: git://github.com/nick8325/quickspec.git
branch: master
library
hs-source-dirs: src
Exposed-modules:
Test.QuickSpec,
Test.QuickSpec.Main,
Test.QuickSpec.Signature,
Test.QuickSpec.Prelude,
Test.QuickSpec.Term,
Test.QuickSpec.Equation,
Test.QuickSpec.Generate,
Test.QuickSpec.TestTree,
Test.QuickSpec.Reasoning.UnionFind,
Test.QuickSpec.Reasoning.CongruenceClosure,
Test.QuickSpec.Reasoning.NaiveEquationalReasoning,
Test.QuickSpec.Reasoning.PartialEquationalReasoning,
Test.QuickSpec.TestTotality,
Test.QuickSpec.Utils,
Test.QuickSpec.Utils.Typeable,
Test.QuickSpec.Utils.Typed,
Test.QuickSpec.Utils.TypeMap,
Test.QuickSpec.Utils.TypeRel,
Test.QuickSpec.Approximate
Other-modules:
-- Dangerous!
Test.QuickSpec.Utils.MemoValuation
Build-depends:
base < 5, containers, transformers, QuickCheck,
random, spoon >= 0.2, array, ghc-prim, mtl