module Data.GenValidity.Time.Clock where
#if !MIN_VERSION_base(4,8,0)
import Control.Applicative ((<*>))
import Data.Functor ((<$>))
#endif
import Data.GenValidity
import Data.GenValidity.Time.Calendar ()
import Data.Time.Clock
import Data.Validity.Time.Clock ()
import Test.QuickCheck
instance GenUnchecked UniversalTime where
genUnchecked = ModJulianDate <$> genUnchecked
instance GenValid UniversalTime where
genValid = ModJulianDate <$> genValid
instance GenUnchecked DiffTime where
genUnchecked = picosecondsToDiffTime <$> genUnchecked
instance GenValid DiffTime where
genValid = picosecondsToDiffTime <$> genValid
instance GenUnchecked UTCTime where
genUnchecked = UTCTime <$> genUnchecked <*> genUnchecked
instance GenValid UTCTime where
genValid =
UTCTime <$> genValid <*>
(genValid `suchThat` (>= 0) `suchThat` (<= 86400))
instance GenInvalid UTCTime
instance GenUnchecked NominalDiffTime where
genUnchecked = (fromIntegral :: Integer -> NominalDiffTime) <$> genUnchecked
instance GenValid NominalDiffTime