packages feed

quickcheck-instances 0.3.20 → 0.3.21

raw patch · 7 files changed

+98/−12 lines, 7 filesdep +time-compatdep ~hashabledep ~semigroupsdep ~time

Dependencies added: time-compat

Dependency ranges changed: hashable, semigroups, time

Files

CHANGES view
@@ -1,3 +1,8 @@+0.3.21++* Use time-compat+* Add `Function` instances for vector, unordered-containers, scientific, nats+ 0.3.20  * Support QuickCheck-2.13
quickcheck-instances.cabal view
@@ -1,5 +1,5 @@ Name:                quickcheck-instances-Version:             0.3.20+Version:             0.3.21  Synopsis:            Common quickcheck instances Description:         QuickCheck instances.@@ -18,11 +18,11 @@  License:             BSD3 License-file:        LICENSE-Author:              Antoine Latter <aslatter@gmail.com>+Author:              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-Copyright:           Copyright Antoine Latter, 2012-2014+Copyright:           Copyright 2012-2016 Antoine Latter, 2017-2019 Oleg Grenrus Category:            Testing Build-type:          Simple Extra-source-files:  CHANGES@@ -35,7 +35,8 @@   GHC==8.0.2,   GHC==8.2.2,   GHC==8.4.4,-  GHC==8.6.4+  GHC==8.6.5,+  GHC==8.8.1  Source-repository head   type:     git@@ -75,21 +76,24 @@     bytestring           >=0.9.2.1 && <0.11,     case-insensitive     >=1.2.0.4 && <1.3,     containers           >=0.4.2.1 && <0.7,-    hashable             >=1.2.5.0 && <1.3,+    hashable             >=1.2.5.0 && <1.4,     old-time             >=1.1.0.0 && <1.2,     scientific           >=0.2.0.0 && <0.4,     tagged               >=0.8.5   && <0.9,     text                 >=1.0.0.0 && <1.3,-    time                 >=1.4     && <1.9,+    time-compat          >=1.9.2.2 && <1.10,     transformers         >=0.3.0.0 && <0.6,     transformers-compat  >=0.5     && <0.7,     unordered-containers >=0.2.2.0 && <0.3,     uuid-types           >=1.0.3   && <1.1,     vector               >=0.9     && <0.13 +  -- version is irrelevant.+  Build-depends: time+   if !impl(ghc >= 8.0)     build-depends:-      semigroups >=0.18 && <0.19+      semigroups >=0.18.5 && <0.20    if !impl(ghc >= 7.10)     build-depends:
src/Test/QuickCheck/Instances/Natural.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP              #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Test.QuickCheck.Instances.Natural () where@@ -8,7 +8,9 @@ import Numeric.Natural (Natural)  import Test.QuickCheck-import Test.QuickCheck.Function (functionIntegral)+       (Arbitrary (..), CoArbitrary (..), arbitrarySizedNatural,+       coarbitraryIntegral, shrinkIntegral)+import Test.QuickCheck.Function (Function (..), functionIntegral)  ------------------------------------------------------------------------------- -- nats
src/Test/QuickCheck/Instances/Scientific.hs view
@@ -24,3 +24,8 @@  instance CoArbitrary Scientific.Scientific where     coarbitrary s = coarbitrary (Scientific.coefficient s, Scientific.base10Exponent s)++instance Function Scientific.Scientific where+    function = functionMap+        (\s -> (Scientific.coefficient s, Scientific.base10Exponent s))+        (uncurry Scientific.scientific)
src/Test/QuickCheck/Instances/Time.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP              #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Test.QuickCheck.Instances.Time () where@@ -8,8 +8,11 @@  import Test.QuickCheck -import qualified Data.Time as Time-import qualified Data.Time.Clock.TAI as Time+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  ------------------------------------------------------------------------------- -- time@@ -70,6 +73,9 @@ instance CoArbitrary Time.NominalDiffTime where     coarbitrary = coarbitraryReal +instance Function Time.NominalDiffTime where+    function = functionMap toRational fromRational+ instance Arbitrary Time.TimeZone where     arbitrary =         Time.TimeZone@@ -136,3 +142,47 @@  instance CoArbitrary Time.AbsoluteTime where     coarbitrary = coarbitrary . flip Time.diffAbsoluteTime Time.taiEpoch++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++instance Arbitrary Time.SystemTime where+    arbitrary = Time.MkSystemTime <$> arbitrary <*> nano where+        -- generate 0 often.+        nano = frequency+            [ (1, pure 0)+            , (15, choose (0, 999999999))+            ]+    shrink (Time.MkSystemTime s n) = map (uncurry Time.MkSystemTime) (shrink (s, n))+instance CoArbitrary Time.SystemTime where+    coarbitrary (Time.MkSystemTime s n) = coarbitrary (s, n)+instance Function Time.SystemTime where+    function = functionMap+        (\(Time.MkSystemTime s n) -> (s, n))+        (uncurry Time.MkSystemTime)++instance Arbitrary Time.CalendarDiffDays where+    arbitrary = Time.CalendarDiffDays <$> arbitrary <*> arbitrary+    shrink (Time.CalendarDiffDays m d) = map (uncurry Time.CalendarDiffDays) (shrink (m, d))+instance CoArbitrary Time.CalendarDiffDays where+    coarbitrary (Time.CalendarDiffDays m d) = coarbitrary (m, d)+instance Function Time.CalendarDiffDays where+    function = functionMap+        (\(Time.CalendarDiffDays m d) -> (m, d))+        (uncurry Time.CalendarDiffDays)++instance Arbitrary Time.CalendarDiffTime where+    arbitrary = Time.CalendarDiffTime <$> arbitrary <*> arbitrary+    shrink (Time.CalendarDiffTime m d) = map (uncurry Time.CalendarDiffTime) (shrink (m, d))+instance CoArbitrary Time.CalendarDiffTime where+    coarbitrary (Time.CalendarDiffTime m nt) = coarbitrary (m, nt)+instance Function Time.CalendarDiffTime where+    function = functionMap+        (\(Time.CalendarDiffTime m nt) -> (m, nt))+        (uncurry Time.CalendarDiffTime)
src/Test/QuickCheck/Instances/UnorderedContainers.hs view
@@ -24,6 +24,9 @@ instance CoArbitrary a => CoArbitrary (HS.HashSet a) where     coarbitrary = coarbitrary . HS.toList +instance (Hashable a, Eq a, Function a) => Function (HS.HashSet a) where+    function = functionMap HS.toList HS.fromList+ instance (Hashable k, Eq k, Arbitrary k) => Arbitrary1 (HML.HashMap k) where     liftArbitrary arb =         HML.fromList <$> liftArbitrary (liftArbitrary2 arbitrary arb)@@ -36,3 +39,6 @@  instance (CoArbitrary k, CoArbitrary v) => CoArbitrary (HML.HashMap k v) where     coarbitrary = coarbitrary . HML.toList++instance (Hashable k, Eq k, Function k, Function v) => Function (HML.HashMap k v) where+    function = functionMap HML.toList HML.fromList
src/Test/QuickCheck/Instances/Vector.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Test.QuickCheck.Instances.Vector () where @@ -7,6 +8,7 @@ import Prelude.Compat  import Test.QuickCheck+import Test.QuickCheck.Function ((:->))  import qualified Data.Vector as Vector import qualified Data.Vector.Generic as GVector@@ -28,7 +30,10 @@ instance CoArbitrary a => CoArbitrary (Vector.Vector a) where     coarbitrary = coarbitraryVector +instance Function a => Function (Vector.Vector a) where+    function = functionVector + instance (SVector.Storable a, Arbitrary a) => Arbitrary (SVector.Vector a) where     arbitrary = arbitraryVector     shrink = shrinkVector@@ -36,6 +41,9 @@ instance (SVector.Storable a, CoArbitrary a) => CoArbitrary (SVector.Vector a) where     coarbitrary = coarbitraryVector +instance (SVector.Storable a, Function a) => Function (SVector.Vector a) where+    function = functionVector+ instance (UVector.Unbox a, Arbitrary a) => Arbitrary (UVector.Vector a) where     arbitrary = arbitraryVector     shrink = shrinkVector@@ -43,6 +51,9 @@ instance (UVector.Unbox a, CoArbitrary a) => CoArbitrary (UVector.Vector a) where     coarbitrary = coarbitraryVector +instance (UVector.Unbox a, Function a) => Function (UVector.Vector a) where+    function = functionVector+ arbitraryVector :: (GVector.Vector v a, Arbitrary a) => Gen (v a) arbitraryVector = GVector.fromList `fmap` arbitrary @@ -51,3 +62,6 @@  coarbitraryVector :: (GVector.Vector v a, CoArbitrary a) => v a -> Gen b -> Gen b coarbitraryVector = coarbitrary . GVector.toList++functionVector :: (GVector.Vector v a, Function a) => (v a -> c) -> v a :-> c+functionVector = functionMap GVector.toList GVector.fromList