hw-polysemy-0.2.14.10: hedgehog/HaskellWorks/Polysemy/Hedgehog/Time.hs
{-# LANGUAGE NumericUnderscores #-}
{-# LANGUAGE TypeApplications #-}
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 = do
-- Generate a random integer within a reasonable range for POSIX time
-- POSIXTime is a type synonym for NominalDiffTime, which is in seconds
-- We'll use a range from 0 to a large number of seconds to cover a wide time span
seconds <- Gen.integral (Range.linear 0 4_102_444_800) -- Up to year 2100
return $ fromIntegral @Word64 seconds