quickcheck-instances 0.3.24 → 0.3.25
raw patch · 3 files changed
+57/−14 lines, 3 filesdep ~time-compat
Dependency ranges changed: time-compat
Files
- CHANGES +4/−0
- quickcheck-instances.cabal +7/−7
- src/Test/QuickCheck/Instances/Time.hs +46/−7
CHANGES view
@@ -1,3 +1,7 @@+0.3.25++* Add types from `time-1.11` / `time-compat-1.9.4`: `Month`, `Quarter`, `QuarterOfYear`+ 0.3.24 * Add `strict` instances.
quickcheck-instances.cabal view
@@ -1,5 +1,5 @@ name: quickcheck-instances-version: 0.3.24+version: 0.3.25 synopsis: Common quickcheck instances description: QuickCheck instances.@@ -22,8 +22,8 @@ Antoine Latter <aslatter@gmail.com>, Oleg Grenrus <oleg.grenrus@iki.fi> maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>-homepage: https://github.com/phadej/qc-instances-bug-reports: https://github.com/phadej/qc-instances/issues+homepage: https://github.com/haskellari/qc-instances+bug-reports: https://github.com/haskellari/qc-instances/issues copyright: Copyright 2012-2016 Antoine Latter, 2017-2019 Oleg Grenrus category: Testing build-type: Simple@@ -38,12 +38,12 @@ || ==8.2.2 || ==8.4.4 || ==8.6.5- || ==8.8.3- || ==8.10.1+ || ==8.8.4+ || ==8.10.2 source-repository head type: git- location: https://github.com/phadej/qc-instances.git+ location: https://github.com/haskellari/qc-instances.git flag bytestring-builder description: Use bytestring-builder (with old bytestring)@@ -96,7 +96,7 @@ , tagged >=0.8.6 && <0.9 , text >=1.2.3.0 && <1.3 , these >=1.1.1.1 && <1.2- , time-compat >=1.9.2.2 && <1.10+ , time-compat >=1.9.4 && <1.10 , transformers >=0.3.0.0 && <0.6 , transformers-compat >=0.6.5 && <0.7 , unordered-containers >=0.2.2.0 && <0.3
src/Test/QuickCheck/Instances/Time.hs view
@@ -8,11 +8,13 @@ import Test.QuickCheck -import qualified Data.Time.Calendar.Compat as Time-import qualified Data.Time.Clock.Compat as Time-import qualified Data.Time.Clock.System.Compat as Time-import qualified Data.Time.Clock.TAI.Compat as Time-import qualified Data.Time.LocalTime.Compat as Time+import qualified Data.Time.Calendar.Compat as Time+import qualified Data.Time.Calendar.Month.Compat as Time+import qualified Data.Time.Calendar.Quarter.Compat as Time+import qualified Data.Time.Clock.Compat as Time+import qualified Data.Time.Clock.System.Compat as Time+import qualified Data.Time.Clock.TAI.Compat as Time+import qualified Data.Time.LocalTime.Compat as Time ------------------------------------------------------------------------------- -- time@@ -145,10 +147,8 @@ instance Arbitrary Time.DayOfWeek where arbitrary = elements [Time.Monday .. Time.Sunday]- instance CoArbitrary Time.DayOfWeek where coarbitrary = coarbitrary . fromEnum- instance Function Time.DayOfWeek where function = functionMap fromEnum toEnum @@ -186,3 +186,42 @@ function = functionMap (\(Time.CalendarDiffTime m nt) -> (m, nt)) (uncurry Time.CalendarDiffTime)++instance Arbitrary Time.Month where+ arbitrary = do+ y <- arbitrary+ m <- chooseInt (1,12)+ return (Time.fromYearMonth (y + 2000) m)+ shrink mm = case Time.toYearMonth mm of+ (y, m) -> do+ (y', m') <- shrink (y - 2000, m)+ return (Time.fromYearMonth (y' + 2000) m')+instance CoArbitrary Time.Month where+ coarbitrary (Time.MkMonth m) = coarbitrary m+instance Function Time.Month where+ function = functionMap+ (\(Time.MkMonth m) -> m)+ Time.MkMonth++instance Arbitrary Time.QuarterOfYear where+ arbitrary = elements [ Time.Q1 .. Time.Q2 ]+instance CoArbitrary Time.QuarterOfYear where+ coarbitrary = coarbitrary . fromEnum+instance Function Time.QuarterOfYear where+ function = functionBoundedEnum++instance Arbitrary Time.Quarter where+ arbitrary = do+ y <- arbitrary+ q <- arbitrary+ return (Time.fromYearQuarter (y + 2000) q)+ shrink qq = case Time.toYearQuarter qq of+ (y, q) -> do+ (y', q') <- shrink (y - 2000, q)+ return (Time.fromYearQuarter (y' + 2000) q')+instance CoArbitrary Time.Quarter where+ coarbitrary (Time.MkQuarter x) = coarbitrary x+instance Function Time.Quarter where+ function = functionMap+ (\(Time.MkQuarter x) -> x)+ Time.MkQuarter