{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
module Main where
import Criterion.Main as Criterion
import Data.GenValidity
import Data.GenValidity.Containers
import Data.GenValidity.Criterion
import Data.Map (Map)
import Data.Sequence (Seq)
import Data.Set (Set)
import Data.Tree (Forest, Tree)
import Test.QuickCheck
main :: IO ()
main =
Criterion.defaultMain
[ genValidBench @(Set Int),
genValidBench @(Seq Int),
genValidBench @(Tree Int),
genValidBench @(Forest Int),
genValidBench @(Map Int Int),
genBenchSizes "genSeqOf" $ genSeqOf (genValid :: Gen Int),
genBenchSizes "genSetOf" $ genSetOf (genValid :: Gen Int),
genBenchSizes "genMapOf" $ genMapOf (genValid :: Gen (Int, Int))
]