packages feed

text-2.1.4: benchmarks/haskell/Benchmarks/Multilang.hs

{-# LANGUAGE BangPatterns, OverloadedStrings, RankNTypes #-}

module Benchmarks.Multilang (benchmark) where

import qualified Data.ByteString as B
import qualified Data.Text as Text
import Data.Text.Encoding (decodeUtf8)
import Data.Text (Text)
import Test.Tasty.Bench (Benchmark, bgroup, bench, env, nf)

readYiwiki :: IO Text
readYiwiki = decodeUtf8 `fmap` B.readFile "benchmarks/text-test-data/yiwiki.xml"

benchmark :: Benchmark
benchmark = env readYiwiki $ \content -> bgroup "Multilang"
  [ bench "find_first" $ nf (Text.isInfixOf "en:Benin") content
  , bench "find_index" $ nf (Text.findIndex (=='c')) content
  ]