{-# LANGUAGE FlexibleContexts #-} module Main where import Data.Ord (comparing) import Data.List (sortBy) import Data.List.Split (splitOn) import BenchShow main :: IO () main = do let classifier name = case splitOn "/" name of grp : rest -> Just (grp, concat rest) _ -> Nothing graph "test/results-doc.csv" "docs/full" defaultConfig report "test/results-doc.csv" Nothing defaultConfig { presentation = Fields } graph "test/results-doc.csv" "docs/grouped" defaultConfig { classifyBenchmark = classifier } report "test/results-doc.csv" Nothing defaultConfig { classifyBenchmark = classifier } graph "test/results-doc.csv" "docs/grouped-delta" defaultConfig { classifyBenchmark = classifier , presentation = Groups Diff } report "test/results-doc.csv" Nothing defaultConfig { classifyBenchmark = classifier , presentation = Groups Diff } graph "test/results-doc.csv" "docs/grouped-percent-delta" defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff } report "test/results-doc.csv" Nothing defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff } graph "test/results-doc.csv" "docs/grouped-percent-delta" defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , estimator = Regression } report "test/results-doc.csv" Nothing defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , estimator = Regression } graph "test/results-doc.csv" "docs/grouped-single-estimator" defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , estimator = Regression , diffStrategy = SingleEstimator } report "test/results-doc.csv" Nothing defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , estimator = Regression , diffStrategy = SingleEstimator , verbose = True } graph "test/results-doc.csv" "docs/grouped-percent-delta-sorted" defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , selectBenchmarks = \f -> reverse $ map fst $ sortBy (comparing snd) $ either error id $ f (ColumnIndex 1) Nothing } report "test/results-doc.csv" Nothing defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , selectBenchmarks = \f -> reverse $ map fst $ sortBy (comparing snd) $ either error id $ f (ColumnIndex 1) Nothing } graph "test/results-doc-multi.csv" "docs/regression-percent-descending" defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , selectBenchmarks = \f -> reverse $ map fst $ sortBy (comparing snd) $ either error id $ f (ColumnIndex 1) Nothing } report "test/results-doc-multi.csv" Nothing defaultConfig { classifyBenchmark = classifier , presentation = Groups PercentDiff , selectBenchmarks = \f -> reverse $ map fst $ sortBy (comparing snd) $ either error id $ f (ColumnIndex 1) Nothing }