inflections-0.4.1.0: bench/memory/Main.hs
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
import Weigh
import Prelude hiding (readFile, take, words)
import Data.Maybe (catMaybes)
import Data.Text (Text, pack, take, words)
import Data.Text.IO (readFile)
import Text.Inflections (SomeWord(..), mkWord, mkAcronym, ordinal, parameterize,
titleize, toCamelCased, toDashed, toHumanized, toUnderscore)
main :: IO ()
main = do
text <- readFile "bench/little_women.txt"
mainWith $ do
let !t1 = take 100 text
!t2 = take 10000 text
!t3 = take 1000000 text
somewords txt = catMaybes $ mkSomeWords $ words txt
mkSomeWords (f:s:rest) = (SomeWord <$> mkWord f) : (SomeWord <$> mkAcronym s) : mkSomeWords rest
mkSomeWords (f:rest) = (SomeWord <$> mkWord f) : mkSomeWords rest
mkSomeWords [] = []
func "toUnderscore text-len-100" toUnderscore t1
func "toUnderscore text-len-10000" toUnderscore t2
func "toUnderscore text-len-1000000" toUnderscore t3
func "toUnderscore all text" toUnderscore text
func "toDashed text-len-100" toDashed t1
func "toDashed text-len-10000" toDashed t2
func "toDashed text-len-1000000" toDashed t3
func "toDashed all text" toDashed text
func "toCamelCased False text-len-100" (toCamelCased False) t1
func "toCamelCased False text-len-10000" (toCamelCased False) t2
func "toCamelCased False text-len-1000000" (toCamelCased False) t3
func "toCamelCased False all text" (toCamelCased False) text
func "toHumanized False text-len-100" (toHumanized False) t1
func "toHumanized False text-len-10000" (toHumanized False) t2
func "toHumanized False text-len-1000000" (toHumanized False) t3
func "toHumanized False all text" (toHumanized False) text
func "parameterize text-len-100" parameterize t1
func "parameterize text-len-10000" parameterize t2
func "parameterize text-len-1000000" parameterize t3
func "parameterize all text" parameterize text
func "titleize text-len-100" titleize (somewords t1)
func "titleize text-len-10000" titleize (somewords t2)
func "titleize text-len-1000000" titleize (somewords t3)
func "titleize all text" titleize (somewords text)
func "ordinal 1" ordinal 1
func "ordinal 3" ordinal 13
func "ordinal 13" ordinal 13
func "ordinal 137" ordinal 137