ParamTree library for generating labelled test/benchmark trees from sets of parameters. Example usecases include criterion benchmark trees or tasty test trees.
Example
import Test.Tasty import Test.Tasty.HUnit genTestCase :: Int -> Bool -> Char -> String -> TestTree genTestCase i b c name = testCase name $ {- your code here -} params = simpleParam "Int" [1,2] . simpleParam "Bool" [True] . simpleParam "Char" "xyz" main :: IO () main = defaultMain $ testTree genTestCase params where testTree = growTree (Just "/") testGroup "my tests"
This generates a tasty TestTree with all combinations of values passed to
genTestCase. If the Maybe String argument is provided like in the above
example, groups with a single entry, such as "Bool" get collapsed into their
parent groups. So instead of a "1 Int" group containing a "True Bool" group
they get collapsed into a single "1 Int/True Bool" group, where the "/"
separator is the one specified by Just "/".