quickcheck-instances 0.3.10 → 0.3.11
raw patch · 3 files changed
+39/−2 lines, 3 filesdep ~QuickCheck
Dependency ranges changed: QuickCheck
Files
- CHANGES +10/−0
- quickcheck-instances.cabal +2/−2
- src/Test/QuickCheck/Instances.hs +27/−0
CHANGES view
@@ -1,3 +1,13 @@+0.3.11++Author: Timo von Holtz <tvh@anchor.com.au>++* Add some Instances for Function++Author: Antoine Latter <aslatter@gmail.com>++* Allow building against QuickCheck 2.8.+ 0.3.10 Author: Antoine Latter <aslatter@gmail.com>
quickcheck-instances.cabal view
@@ -1,5 +1,5 @@ Name: quickcheck-instances-Version: 0.3.10+Version: 0.3.11 Synopsis: Common quickcheck instances Description: QuickCheck instances. .@@ -43,7 +43,7 @@ hashable >= 1.1.2.3 && < 1.3, unordered-containers >= 0.2.1 && < 0.3, old-time >= 1.0 && < 1.2,- QuickCheck >= 2.1 && < 2.8,+ QuickCheck >= 2.1 && < 2.9, text >= 0.7 && < 1.3, time >= 1.1 && < 1.6
src/Test/QuickCheck/Instances.hs view
@@ -28,10 +28,13 @@ module Test.QuickCheck.Instances () where import Control.Applicative+import Control.Arrow import Data.Foldable (toList) import Data.Int (Int32) import Data.Hashable+import Data.Ratio import Test.QuickCheck+import Test.QuickCheck.Function import qualified Data.Array.IArray as Array import qualified Data.Array.Unboxed as Array@@ -122,6 +125,12 @@ instance CoArbitrary TL.Text where coarbitrary = coarbitrary . TL.unpack +instance Function TS.Text where+ function = functionMap TS.unpack TS.pack++instance Function TL.Text where+ function = functionMap TL.unpack TL.pack+ -- Containers instance Arbitrary a => Arbitrary (IntMap.IntMap a) where arbitrary = IntMap.fromList <$> arbitrary@@ -158,6 +167,9 @@ instance CoArbitrary a => CoArbitrary (Set.Set a) where coarbitrary = coarbitrary . Set.toList +instance (Ord a, Function a) => Function (Set.Set a) where+ function = functionMap Set.toList Set.fromList+ instance (Hashable a, Eq a, Arbitrary a) => Arbitrary (HS.HashSet a) where arbitrary = HS.fromList <$> arbitrary shrink hashset = HS.fromList <$> shrink (HS.toList hashset)@@ -268,6 +280,9 @@ instance CoArbitrary Time.Day where coarbitrary = coarbitrary . Time.toModifiedJulianDay +instance Function Time.Day where+ function = functionMap Time.toModifiedJulianDay Time.ModifiedJulianDay+ instance Arbitrary Time.UniversalTime where arbitrary = Time.ModJulianDate <$> (2000 +) <$> arbitrary shrink = (Time.ModJulianDate <$>) . shrink . Time.getModJulianDate@@ -286,6 +301,9 @@ instance CoArbitrary Time.DiffTime where coarbitrary = coarbitraryReal +instance Function Time.DiffTime where+ function = functionMap toRational fromRational+ instance Arbitrary Time.UTCTime where arbitrary = Time.UTCTime@@ -299,6 +317,10 @@ coarbitrary (Time.UTCTime day dayTime) = coarbitrary day >< coarbitrary dayTime +instance Function Time.UTCTime where+ function = functionMap (\(Time.UTCTime day dt) -> (day,dt))+ (uncurry Time.UTCTime)+ instance Arbitrary Time.NominalDiffTime where arbitrary = arbitrarySizedFractional shrink = shrinkRealFrac@@ -402,4 +424,9 @@ coarbitraryEnum :: Enum a => a -> Gen c -> Gen c coarbitraryEnum = variant . fromEnum+#endif++#if !(MIN_VERSION_QuickCheck(2,8,0))+instance (Function a, Integral a) => Function (Ratio a) where+ function = functionMap (numerator &&& denominator) (uncurry (%)) #endif