module Arbitrary where
import Lawless
import Test.QuickCheck (Arbitrary(..), listOf1, suchThat)
import Text
import Time
import Textual.SepList
import Data.Time
import Data.Time.Clock
import Data.Time.Calendar
instance Arbitrary (SepList Char) where
arbitrary =
foldl1Of folded (<>) ∘ over traversed sepList <$> listOf1 arbitrary
instance Arbitrary Text where
arbitrary = view packed <$> listOf1 arbitrary
instance Arbitrary Day where
arbitrary = toEnum <$> arbitrary
instance Arbitrary DiffTime where
arbitrary =
fromRational <$> suchThat arbitrary (\t → t ≥ 0.0 ∧ t ≤ 86401.0)
instance Arbitrary UTCTime where
arbitrary =
UTCTime <$> arbitrary <*> arbitrary
instance Arbitrary Time where
arbitrary = review _Time <$> arbitrary