reorg quickcheck to a separate module
This commit is contained in:
parent
3449c0e8ec
commit
689bdae03a
3 changed files with 53 additions and 38 deletions
51
Utility/Scheduled/QuickCheck.hs
Normal file
51
Utility/Scheduled/QuickCheck.hs
Normal file
|
@ -0,0 +1,51 @@
|
|||
{- quickcheck for scheduled activities
|
||||
-
|
||||
- Copyright 2013-2014 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- License: BSD-2-clause
|
||||
-}
|
||||
|
||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||
|
||||
module Utility.Scheduled.QuickCheck where
|
||||
|
||||
import Utility.Scheduled
|
||||
import Utility.QuickCheck
|
||||
|
||||
import Control.Applicative
|
||||
import Prelude
|
||||
|
||||
instance Arbitrary Schedule where
|
||||
arbitrary = Schedule <$> arbitrary <*> arbitrary
|
||||
|
||||
instance Arbitrary ScheduledTime where
|
||||
arbitrary = oneof
|
||||
[ pure AnyTime
|
||||
, SpecificTime
|
||||
<$> choose (0, 23)
|
||||
<*> choose (1, 59)
|
||||
]
|
||||
|
||||
instance Arbitrary Recurrance where
|
||||
arbitrary = oneof
|
||||
[ pure Daily
|
||||
, Weekly <$> arbday
|
||||
, Monthly <$> arbday
|
||||
, Yearly <$> arbday
|
||||
, Divisible
|
||||
<$> positive arbitrary
|
||||
<*> oneof -- no nested Divisibles
|
||||
[ pure Daily
|
||||
, Weekly <$> arbday
|
||||
, Monthly <$> arbday
|
||||
, Yearly <$> arbday
|
||||
]
|
||||
]
|
||||
where
|
||||
arbday = oneof
|
||||
[ Just <$> nonNegative arbitrary
|
||||
, pure Nothing
|
||||
]
|
||||
|
||||
prop_schedule_roundtrips :: Schedule -> Bool
|
||||
prop_schedule_roundtrips s = toSchedule (fromSchedule s) == Just s
|
Loading…
Add table
Add a link
Reference in a new issue