quickcheck-instances 0.3.5 → 0.3.6
raw patch · 3 files changed
+30/−5 lines, 3 filesdep +hashabledep +unordered-containers
Dependencies added: hashable, unordered-containers
Files
- CHANGES +6/−0
- quickcheck-instances.cabal +4/−2
- src/Test/QuickCheck/Instances.hs +20/−3
CHANGES view
@@ -1,3 +1,9 @@+0.3.6++Author: Joao Cristovao <jcristovao@gmail.com>++* Added unordered-containers.+ 0.3.5 Author: Antoine Latter <aslatter@gmail.com>
quickcheck-instances.cabal view
@@ -1,5 +1,5 @@ Name: quickcheck-instances-Version: 0.3.5+Version: 0.3.6 Synopsis: Common quickcheck instances Description: QuickCheck instances. .@@ -21,7 +21,7 @@ Maintainer: aslatter@gmail.com Homepage: https://github.com/aslatter/qc-instances Bug-reports: https://github.com/aslatter/qc-instances/issues-Copyright: Copyright Antoine Latter, 2012+Copyright: Copyright Antoine Latter, 2012-2014 Category: Testing Build-type: Simple Extra-source-files: CHANGES@@ -40,6 +40,8 @@ array >= 0.3 && < 0.6, bytestring >= 0.9 && < 0.11, containers >= 0.3 && < 0.6,+ hashable >= 1.1.2.3 && < 1.3,+ unordered-containers >= 0.2.1 && < 0.3, old-time >= 1.0 && < 1.2, QuickCheck >= 2.1 && < 2.7, text >= 0.7 && < 1.1,
src/Test/QuickCheck/Instances.hs view
@@ -28,6 +28,7 @@ import Control.Applicative import Data.Foldable (toList) import Data.Int (Int32)+import Data.Hashable import Test.QuickCheck import qualified Data.Array.IArray as Array@@ -40,6 +41,8 @@ import qualified Data.Map as Map import qualified Data.Sequence as Seq import qualified Data.Set as Set+import qualified Data.HashSet as HS+import qualified Data.HashMap.Lazy as HML import qualified Data.Text as TS import qualified Data.Text.Lazy as TL import qualified Data.Time as Time@@ -153,6 +156,20 @@ instance CoArbitrary a => CoArbitrary (Set.Set a) where coarbitrary = coarbitrary . Set.toList +instance (Hashable a, Eq a, Arbitrary a) => Arbitrary (HS.HashSet a) where+ arbitrary = HS.fromList <$> arbitrary+ shrink hashset = HS.fromList <$> shrink (HS.toList hashset)++instance CoArbitrary a => CoArbitrary (HS.HashSet a) where+ coarbitrary = coarbitrary . HS.toList++instance (Hashable k, Eq k, Arbitrary k, Arbitrary v) => Arbitrary (HML.HashMap k v) where+ arbitrary = HML.fromList <$> arbitrary+ shrink m = HML.fromList <$> shrink (HML.toList m)++instance (CoArbitrary k, CoArbitrary v) => CoArbitrary (HML.HashMap k v) where+ coarbitrary = coarbitrary . HML.toList+ instance Arbitrary a => Arbitrary (Tree.Tree a) where arbitrary = sized $ \n -> do val <- arbitrary@@ -363,9 +380,9 @@ shrink EQ = [] instance CoArbitrary Ordering where- coarbitrary GT = variant 1- coarbitrary EQ = variant 0- coarbitrary LT = variant (-1)+ coarbitrary GT = variant (1 :: Integer)+ coarbitrary EQ = variant (0 :: Integer)+ coarbitrary LT = variant (-1 :: Integer) instance Fixed.HasResolution a => Arbitrary (Fixed.Fixed a) where arbitrary = arbitrarySizedFractional