module Main where
import Criterion.Main
import System.Terminal.Emulator.Parsing.Types
import System.Terminal.Emulator.Term (mkTerm)
import System.Terminal.Emulator.Term.Process (processTermAtoms)
lotsOfAAAAA :: Int -> [TermAtom]
lotsOfAAAAA numRows =
concat
( replicate
numRows
( ( replicate 30 (TermAtom_VisibleChar 'A')
<> [ TermAtom_SingleCharacterFunction Control_CarriageReturn,
TermAtom_SingleCharacterFunction Control_LineFeed
]
)
)
)
main :: IO ()
main =
defaultMain
[ bgroup
"term"
[ bench "As 10" $ whnf (processTermAtoms (lotsOfAAAAA 10)) (mkTerm (40, 40)),
bench "As 100" $ whnf (processTermAtoms (lotsOfAAAAA 100)) (mkTerm (40, 40)),
bench "As 1000" $ whnf (processTermAtoms (lotsOfAAAAA 1000)) (mkTerm (40, 40)),
bench "As 10000" $ whnf (processTermAtoms (lotsOfAAAAA 10000)) (mkTerm (40, 40))
]
]