packages feed

genvalidity-time-1.0.0.0: test/Data/GenValidity/TimeSpec.hs

{-# LANGUAGE TypeApplications #-}

module Data.GenValidity.TimeSpec
  ( spec,
  )
where

import Data.GenValidity.Time
import Data.Time
import Test.Hspec
import Test.Validity

spec :: Spec
spec = do
  genValidSpec @Day
  describe "genSmartDayAround" $ it "generates valid days" $ forAllValid $ \d -> genGeneratesValid $ genSmartDayAround d
  describe "genDayAround" $ it "generates valid days" $ forAllValid $ \d -> genGeneratesValid $ genDayAround d
  describe "genDayCloselyAround" $ it "generates valid days" $ forAllValid $ \d -> genGeneratesValid $ genDayCloselyAround d
  genValidSpec @UniversalTime
  genValidSpec @DiffTime
  genValidSpec @UTCTime
  genValidSpec @NominalDiffTime
  genValidSpec @TimeZone
  genValidSpec @TimeOfDay
  genValidSpec @LocalTime
  genValidSpec @ZonedTime
  genValidSpec @TimeLocale
  genValidSpec @CalendarDiffDays
  genValidSpec @DayOfWeek
  genValidSpec @CalendarDiffTime