unicode-data-0.5.0: bench/Unicode/Char/Case/CompatBench.hs
module Unicode.Char.Case.CompatBench
( benchmarks
) where
import qualified Data.Char as Char
import Test.Tasty.Bench (Benchmark)
import Unicode.Char.Bench (
Bench (..),
CharRange,
bgroupWithCharRange,
bgroupWithChars,
)
import qualified Unicode.Char.Case.Compat as CC
{-# NOINLINE benchmarks #-}
benchmarks :: CharRange -> Benchmark
benchmarks r = bgroupWithCharRange "Unicode.Char.Case.Compat" r $ \chars ->
[ bgroupWithChars "isLower" chars
[ Bench "base" Char.isLower
, Bench "unicode-data" CC.isLower
]
, bgroupWithChars "isUpper" chars
[ Bench "base" Char.isUpper
, Bench "unicode-data" CC.isUpper
]
, bgroupWithChars "toLower" chars
[ Bench "base" Char.toLower
, Bench "unicode-data" CC.toLower
]
, bgroupWithChars "toTitle" chars
[ Bench "base" Char.toTitle
, Bench "unicode-data" CC.toTitle
]
, bgroupWithChars "toUpper" chars
[ Bench "base" Char.toUpper
, Bench "unicode-data" CC.toUpper
]
]