ua-parser-0.7.2: bench/Main.hs
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Main
( main
) where
-------------------------------------------------------------------------------
import Control.Applicative as A
import Control.DeepSeq
import Criterion.Main
-------------------------------------------------------------------------------
import Web.UAParser
import Web.UAParser.SuiteUtils
-------------------------------------------------------------------------------
main :: IO ()
main = do
uas <- take 100 A.<$> loadTests "test_resources/firefox_user_agent_strings.yaml"
oses <- take 100 <$> loadTests "test_resources/additional_os_tests.yaml"
devs <- take 100 <$> loadTests "tests/test_device.yaml"
defaultMain [ bench "Parsing 100 UAs" $ nf (map (parseUA . uatcString)) uas
, bench "Parsing 100 OSes" $ nf (map (parseOS . ostcString)) oses
, bench "Parsing 100 Devices" $ nf (map (parseDev . dtcString)) devs
]
instance NFData UAResult
instance NFData OSResult
instance NFData DevResult