The quickspec package
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
, 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 (
zsin the example above).
Data.Typeable.Typeableinstances 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!
[Skip to Readme]
|Versions||0.9, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6|
|Dependencies||array, base (<5), containers, ghc-prim, mtl, QuickCheck, random, spoon (>=0.2), transformers [details]|
|Copyright||2009-2013 Nick Smallbone|
|Source repo||head: git clone git://github.com/nick8325/quickspec.git -b master|
|Uploaded||Wed Mar 13 16:00:24 UTC 2013 by NickSmallbone|
|Downloads||2823 total (53 in the last 30 days)|
|Rating||1.75 (votes: 1) [estimated by rule of succession]|
|Status||Docs not available [build log]
Successful builds reported [all 7 reports]
Hackage Matrix CI
For package maintainers and hackage trustees