packages feed

hstest-0.0.0: hstest.cabal

Name:           hstest
Version:        0.0.0
Cabal-Version:  >= 1.2
Build-Type:     Custom
License:        BSD3
License-File:   LICENSE
Copyright:      © Dave Hinton, 2010; portions © Koen Claessen
Author:         Dave Hinton
Maintainer:     Dave Hinton <beakerchu@googlemail.com>
Stability:      alpha
Homepage:       http://bitbucket.org/dave4420/hstest/wiki/Home
Tested-With:    GHC == 6.10.1
Category:       Testing
Synopsis:       Tests properties in specified modules via QuickCheck; uses GHC api for speed
Description:
 .
 'hstest' looks through all Haskell source files in the current directory (by default), finds all properties to test (properties
 must have a name that starts 'prop_'), and runs them via QuickCheck.
 .
 For example, suppose you have this Haskell source file called 'mysort.hs':
 .
 > mySort xs = ... -- a function you wish to test (definition elided)
 >
 > prop_lengthStaysTheSame xs = length xs == length (mySort xs)
 > prop_sumStaysTheSame xs = sum xs == sum (mySort xs)
 > prop_lowestElementAtStart, prop_highestElementAtEnd :: [Int] -> Bool
 > prop_lowestElementAtStart xs = not (null xs) ==> minimum xs = head (mySort xs)
 > prop_highestElementAtEnd xs = not (null xs) ==> maximum xs = last (mySort xs)
 .
 Then to check all these tests, you run
 .
 > $ hstest
 > Failed prop_highestElementAtEnd:
 >  *  [-3,2,-2]
 > mysort.hs: Failed 1 property, passed 3 properties
 .
 Oops! Fix 'mySort' and try again:
 .
 > $ hstest
 > mysort.hs: Passed 4 properties

Executable hstest
        Main-Is:        hstest.hs
        Build-Depends:  base >= 4.0.0 && < 4.2,
                        -- tested with 4.0.0.0 and 4.1.0.0
                        directory >= 1.0.0 && < 1.1,
                        -- tested with 1.0.0.2 and 1.0.0.3
                        ghc >= 6.10.1 && < 6.12,
                        -- tested with 6.10.1 and 6.10.3
                        ghc-paths >= 0.1.0 && < 0.2,
                        -- tested with 0.1.0.5
                        mtl >= 1.1.0 && < 1.2,
                        -- tested with 1.1.0.2
                        QuickCheck >= 1.2.0.0 && < 1.3,
                        -- tested with 1.2.0.0
                        random >= 1.0.0 && < 1.1
                        -- tested with 1.0.0.1