Functional Enumeration of Algebraic Types
|Version on this page:||22.214.171.124|
|LTS Haskell 20.23:||126.96.36.199|
|Stackage Nightly 2023-06-04:||188.8.131.52|
|Latest on Hackage:||184.108.40.206|
Module documentation for 220.127.116.11
Feat (Functional Enumeration of Algebraic Types) provides
enumerations as functions from natural numbers to values
toEnum but for any algebraic data type). This
can be used for SmallCheck-style systematic testing,
QuickCheck style random testing, and hybrids of the two.
The enumerators are defined in a very boilerplate manner
and there is a Template Haskell script for deriving the
class instance for most types.
Test.Feat contain a subset of the other modules that
should be sufficient for most test usage. There
are some small and large example in the tar
The generators are provided by the size-based package. This means other libraries that implement the Sized class can use the same generator definitions. One such is the lazy-search package, that uses laziness to search for values and test properties. This is typically a lot faster than Feat for properties that have preconditions (logical implication), but can not be used for random selection of values.