{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Test.QuickCheck.Instances.OldTime () where
import Prelude ()
import Test.QuickCheck.Instances.CustomPrelude
import Data.Int (Int32)
import Test.QuickCheck
import qualified System.Time as OldTime
instance Arbitrary OldTime.Month where
arbitrary :: Gen Month
arbitrary = forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum
instance CoArbitrary OldTime.Month where
coarbitrary :: forall b. Month -> Gen b -> Gen b
coarbitrary = forall a b. Enum a => a -> Gen b -> Gen b
coarbitraryEnum
instance Arbitrary OldTime.Day where
arbitrary :: Gen Day
arbitrary = forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum
instance CoArbitrary OldTime.Day where
coarbitrary :: forall b. Day -> Gen b -> Gen b
coarbitrary = forall a b. Enum a => a -> Gen b -> Gen b
coarbitraryEnum
instance Arbitrary OldTime.ClockTime where
arbitrary :: Gen ClockTime
arbitrary =
Integer -> Integer -> ClockTime
OldTime.TOD forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. Random a => (a, a) -> Gen a
choose (Integer
0, forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Bounded a => a
maxBound :: Int32))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> forall a. Random a => (a, a) -> Gen a
choose (Integer
0, Integer
1000000000000 forall a. Num a => a -> a -> a
- Integer
1)
shrink :: ClockTime -> [ClockTime]
shrink (OldTime.TOD Integer
s Integer
p) =
[ Integer -> Integer -> ClockTime
OldTime.TOD Integer
s' Integer
p | Integer
s' <- forall a. Arbitrary a => a -> [a]
shrink Integer
s ] forall a. [a] -> [a] -> [a]
++
[ Integer -> Integer -> ClockTime
OldTime.TOD Integer
s Integer
p' | Integer
p' <- forall a. Arbitrary a => a -> [a]
shrink Integer
p ]
instance CoArbitrary OldTime.ClockTime where
coarbitrary :: forall b. ClockTime -> Gen b -> Gen b
coarbitrary (OldTime.TOD Integer
s Integer
p) =
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Integer
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Integer
p
instance Arbitrary OldTime.TimeDiff where
arbitrary :: Gen TimeDiff
arbitrary =
TimeDiff -> TimeDiff
OldTime.normalizeTimeDiff forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
(ClockTime -> ClockTime -> TimeDiff
OldTime.diffClockTimes forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. Arbitrary a => Gen a
arbitrary forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> forall a. Arbitrary a => Gen a
arbitrary)
shrink :: TimeDiff -> [TimeDiff]
shrink td :: TimeDiff
td@(OldTime.TimeDiff Int
year Int
month Int
day Int
hour Int
minute Int
sec Integer
picosec) =
[ TimeDiff
td { tdYear :: Int
OldTime.tdYear = Int
y' } | Int
y' <- forall a. Arbitrary a => a -> [a]
shrink Int
year ] forall a. [a] -> [a] -> [a]
++
[ TimeDiff
td { tdMonth :: Int
OldTime.tdMonth = Int
m' } | Int
m' <- forall a. Arbitrary a => a -> [a]
shrink Int
month ] forall a. [a] -> [a] -> [a]
++
[ TimeDiff
td { tdDay :: Int
OldTime.tdDay = Int
d' } | Int
d' <- forall a. Arbitrary a => a -> [a]
shrink Int
day ] forall a. [a] -> [a] -> [a]
++
[ TimeDiff
td { tdHour :: Int
OldTime.tdHour = Int
h' } | Int
h' <- forall a. Arbitrary a => a -> [a]
shrink Int
hour ] forall a. [a] -> [a] -> [a]
++
[ TimeDiff
td { tdMin :: Int
OldTime.tdMin = Int
m' } | Int
m' <- forall a. Arbitrary a => a -> [a]
shrink Int
minute ] forall a. [a] -> [a] -> [a]
++
[ TimeDiff
td { tdSec :: Int
OldTime.tdSec = Int
s' } | Int
s' <- forall a. Arbitrary a => a -> [a]
shrink Int
sec ] forall a. [a] -> [a] -> [a]
++
[ TimeDiff
td { tdPicosec :: Integer
OldTime.tdPicosec = Integer
p' } | Integer
p' <- forall a. Arbitrary a => a -> [a]
shrink Integer
picosec ]
instance CoArbitrary OldTime.TimeDiff where
coarbitrary :: forall b. TimeDiff -> Gen b -> Gen b
coarbitrary (OldTime.TimeDiff Int
year Int
month Int
day Int
hour Int
minute Int
sec Integer
picosec) =
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
year forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
month forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
day forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
hour forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
minute forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
sec forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Integer
picosec
instance Arbitrary OldTime.CalendarTime where
arbitrary :: Gen CalendarTime
arbitrary = ClockTime -> CalendarTime
OldTime.toUTCTime forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. Arbitrary a => Gen a
arbitrary
instance CoArbitrary OldTime.CalendarTime where
coarbitrary :: forall b. CalendarTime -> Gen b -> Gen b
coarbitrary (OldTime.CalendarTime
Int
year Month
month Int
day Int
hour Int
minute Int
sec Integer
picosec
Day
wDay Int
yDay String
tzName Int
tz Bool
isDST) =
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
year forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Month
month forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
day forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
hour forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
minute forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
sec forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Integer
picosec forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Day
wDay forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
yDay forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary String
tzName forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Int
tz forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. CoArbitrary a => a -> Gen b -> Gen b
coarbitrary Bool
isDST