packages feed

genvalidity-time-1.0.0.1: bench/Main.hs

{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module Main where

import Criterion.Main as Criterion
import Data.GenValidity.Criterion
import Data.GenValidity.Time ()
import Data.Time

main :: IO ()
main =
  Criterion.defaultMain
    [ bgroup
        "generators"
        [ genValidBench @Day,
          genValidBench @CalendarDiffDays,
          genValidBench @DayOfWeek,
          genValidBench @UniversalTime,
          genValidBench @DiffTime,
          genValidBench @UTCTime,
          genValidBench @NominalDiffTime,
          -- , genValidBench @TimeLocale -- No NFData instance
          genValidBench @TimeZone,
          genValidBench @TimeOfDay,
          genValidBench @LocalTime,
          genValidBench @ZonedTime
        ],
      bgroup
        "shrinkers"
        [ shrinkValidBench @Day,
          shrinkValidBench @CalendarDiffDays,
          shrinkValidBench @DayOfWeek,
          shrinkValidBench @UniversalTime,
          shrinkValidBench @DiffTime,
          shrinkValidBench @UTCTime,
          shrinkValidBench @NominalDiffTime,
          -- , shrinkValidBench @TimeLocale -- No NFData instance
          shrinkValidBench @TimeZone,
          shrinkValidBench @TimeOfDay,
          shrinkValidBench @LocalTime,
          shrinkValidBench @ZonedTime
        ]
    ]