@@ -6,6 +6,7 @@ module Instances where
66import Types
77import Data.Function (on)
88import Control.Monad
9+import Test.QuickCheck (Arbitrary(..), Gen, choose, oneof, elements, Positive(..))
910import Test.QuickCheck
1011 ( Arbitrary(..), Gen, choose, oneof, elements
1112 , resize, listOf1, getNonNegative
@@ -19,6 +20,7 @@ import Data.Version
1920import qualified Data.Text as T
2021import qualified Data.Map as Map
2122import Data.Text (Text)
23+import Data.Maybe
2224import Data.Aeson.Types
2325import Control.Applicative
2426import Functions
@@ -31,8 +33,15 @@ instance Arbitrary Text where
3133instance (Ord k, Arbitrary k, Arbitrary v) => Arbitrary (Map.Map k v) where
3234 arbitrary = Map.fromList <$> arbitrary
3335
36+instance Arbitrary TimeOfDay where
37+ arbitrary = do
38+ h <- choose (0, 23)
39+ m <- choose (0, 59)
40+ s <- fromRational . toRational <$> choose (0, 59 :: Double)
41+ return $ TimeOfDay h m s
42+
3443instance Arbitrary LocalTime where
35− arbitrary = return $ LocalTime (ModifiedJulianDay 1) (TimeOfDay 1 2 3)
44+ arbitrary = LocalTime <$> arbitrary <*> arbitrary
3645
3746instance Arbitrary TimeZone where
3847 arbitrary = do