{-# LANGUAGE TupleSections #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import BenchShow
import Data.List
selectBench
:: (SortColumn -> Maybe GroupStyle -> Either String [(String, Double)])
-> [String]
selectBench f =
reverse
$ fmap fst
$ either
(const
$ either error (sortOn snd)
$ f (ColumnIndex 0) (Just PercentDiff))
(sortOn snd)
$ f (ColumnIndex 1) (Just PercentDiff)
main :: IO ()
main = do
let cfg = defaultConfig
{ classifyBenchmark = \bs ->
case stripPrefix "text-icu/" bs of
Just x -> Just ("ICU", x)
Nothing ->
case stripPrefix "unicode-transforms-text/" bs of
Just x -> Just ("unicode-transforms",x)
Nothing -> error "unknown benchmark"
, selectBenchmarks = selectBench
, selectGroups = \gs ->
filterGroup "unicode-transforms" gs ++ filterGroup "ICU" gs
, presentation = Groups Absolute
}
-- graph "results.csv" "unicode-graph" cfg
report "results.csv" Nothing cfg
where
filterGroup grp gs = filter (\(name,_) -> name == grp) gs