fuzzyfind-2.1.0: tests/Bench.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-type-defaults #-}
module Main where
import Criterion.Main
import Text.FuzzyFind
import Control.DeepSeq
deriving instance NFData Alignment
deriving instance NFData Result
deriving instance NFData ResultSegment
main :: IO ()
main = defaultMain
[ env lipsumFile $ \lipsum ->
bgroup "fzf"
$ (\n -> bench (show (4 ^ n)) . nf (fuzzyFind ["lipsum"]) $ take
(4 ^ n)
lipsum
)
<$> [0 .. 6]
]
lipsumFile :: IO [String]
lipsumFile = ((take 50 <$>) . lines) <$> readFile "tests/lipsum.txt"