packages feed

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