packages feed

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 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