module HaskellWorks.Polysemy.Hedgehog.Time (
genPOSIXTime,
) where
import Data.Time.Clock.POSIX (POSIXTime)
import Hedgehog
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
import HaskellWorks.Prelude
genPOSIXTime :: Gen POSIXTime
genPOSIXTime :: Gen POSIXTime
genPOSIXTime = do
Word64
seconds <- Range Word64 -> GenT Identity Word64
forall (m :: * -> *) a. (MonadGen m, Integral a) => Range a -> m a
Gen.integral (Word64 -> Word64 -> Range Word64
forall a. Integral a => a -> a -> Range a
Range.linear Word64
0 Word64
4_102_444_800)
POSIXTime -> Gen POSIXTime
forall a. a -> GenT Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return (POSIXTime -> Gen POSIXTime) -> POSIXTime -> Gen POSIXTime
forall a b. (a -> b) -> a -> b
$ forall a b. (Integral a, Num b) => a -> b
fromIntegral @Word64 Word64
seconds