packages feed

api-tools-0.9.0.0: bench/Main.hs

{-# LANGUAGE OverloadedStrings #-}

import Criterion.Main
import Data.API.Time
import qualified Data.Text as T
import Data.Time

main :: IO ()
main =
  defaultMain
  [ bgroup "parseUTC_old" [ bench (T.unpack x) $ nf parseUTC_old x
                          | x <- time_inputs ]
  , bgroup "parseUTC"     [ bench (T.unpack x) $ nf parseUTC x
                          | x <- time_inputs ]
  , bgroup "parseDay"     [ bench (T.unpack x) $ nf parseUTC x
                          | x <- day_inputs ]
  , bgroup "read Day"     [ bench (T.unpack x) $ nf (reads . T.unpack :: T.Text -> [(UTCTime,String)]) x
                          | x <- day_inputs ]
  ]
  where
    time_inputs = [ "nonsense"
                  , "2013-05-27T19:13:50Z"
                  , "1965-03-10T09:23:01.000001Z"
                  , "2999-03-10T09:23"
                  , "2021-03-16T12:24:32+0100"
                  ]

    day_inputs = ["nonsense", "2020-11-11" ]