packages feed

verismith-0.4.0.0: test/Benchmark.hs

module Main where

import           Control.Lens   ((&), (.~))
import           Criterion.Main (bench, bgroup, defaultMain, nfAppIO)
import           Verismith      (configProperty, defaultConfig, proceduralIO,
                                 propSize, propStmntDepth)

main :: IO ()
main = defaultMain
    [ bgroup "generation"
        [ bench "default" $ nfAppIO (proceduralIO "top") defaultConfig
        , bench "depth" . nfAppIO (proceduralIO "top") $ defaultConfig & configProperty . propStmntDepth .~ 10
        , bench "size" . nfAppIO (proceduralIO "top") $ defaultConfig & configProperty . propSize .~ 40
        ]
    ]