ModuleQuickCheck-2.15.0.1Haskell2010
Test.QuickCheck.Features
- 6 values
- PackageQuickCheck-2.15.0.1
- Exports6
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceFeatures.hs
Given a property, which must use label, collect, classify or cover to associate labels with test cases, find an example test case for each possible label. The example test cases are minimised using shrinking.
For example, suppose we test delete x xs and record the number
of times that x occurs in xs:
prop_delete :: Int -> [Int] -> Property
prop_delete x xs =
classify (count x xs == 0) "count x xs == 0" $
classify (count x xs == 1) "count x xs == 1" $
classify (count x xs >= 2) "count x xs >= 2" $
counterexample (show (delete x xs)) $
count x (delete x xs) == max 0 (count x xs-1)
where count x xs = length (filter (== x) xs)labelledExamples generates three example test cases, one for each label:
labelledExamples prop_delete*** Found example of count x xs == 00[][]*** Found example of count x xs == 10[0][]*** Found example of count x xs >= 25[5,5][5]+++ OK, passed 100 tests:78% count x xs == 021% count x xs == 1 1% count x xs >= 2
A variant of labelledExamples that takes test arguments.
A variant of labelledExamples that returns a result.
A variant of labelledExamples that takes test arguments and returns a result.