sequitur-0.2.0.0: bench/Main.hs
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE NumericUnderscores #-}
{-# LANGUAGE TypeApplications #-}
module Main where
import Criterion (bench, bgroup, env, whnf)
import Criterion.Main (defaultMain)
import Data.Functor ((<&>))
import Language.Grammar.Sequitur (encode)
import Test.QuickCheck (Arbitrary (arbitrary), generate, vectorOf)
main :: IO ()
main = do
defaultMain
[ bgroup "encoding runs in linear time" do
[500, 1_000 .. 100_000] <&> \x ->
env
do generate (vectorOf x (arbitrary @Char))
do bench ("size: " <> show x) . whnf encode
]