Automatic derivation of optimized QuickCheck random generators.
DRAGEN is a Template Haskell tool for automatically deriving QuickCheck generators in compile-time. The user sets a desired distribution of values, and DRAGEN will try optimize the generation parameters to satisfy it using probabilistic analyses based on multi-type branching processes. DRAGEN is based on the following paper Branching processes for QuickCheck generators. Agustín Mista, Alejandro Russo, John Hughes. Haskell Symposium, 2018. https://dl.acm.org/citation.cfm?doid=3242744.3242747
DRAGEN - Derivation of Random Generators
To test the tool please run:
$ stack setup
$ stack build
$ stack test
Please make sure you have BLAS
and LAPACK
installed in your system before compiling.
The predictions can be confirmed averaging a large set of generated values. See file test/Examples.hs
for an example of this.