genvalidity 0.2.0.0 → 0.2.0.1
raw patch · 2 files changed
+62/−2 lines, 2 filesdep ~basedep ~validityPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: base, validity
API changes (from Hackage documentation)
+ Data.GenValidity: instance (Data.GenValidity.GenValidity a, Data.GenValidity.GenValidity b) => Data.GenValidity.GenValidity (a, b)
+ Data.GenValidity: instance (Data.GenValidity.GenValidity a, Data.GenValidity.GenValidity b, Data.GenValidity.GenValidity c) => Data.GenValidity.GenValidity (a, b, c)
Files
- genvalidity.cabal +2/−2
- src/Data/GenValidity.hs +60/−0
genvalidity.cabal view
@@ -1,5 +1,5 @@ name: genvalidity-version: 0.2.0.0+version: 0.2.0.1 synopsis: Testing utilities for the validity library description: Please see README.md homepage: https://github.com/NorfairKing/validity#readme@@ -18,7 +18,7 @@ exposed-modules: Data.GenValidity , Data.GenRelativeValidity build-depends: base < 5- , validity >= 0.2 && < 0.3+ , validity >= 0.3 && < 0.4 , QuickCheck >= 2.8 && < 2.9 default-language: Haskell2010
src/Data/GenValidity.hs view
@@ -87,6 +87,66 @@ genInvalid = genUnchecked `suchThat` (not . isValid) {-# MINIMAL genUnchecked #-} +instance (GenValidity a, GenValidity b) => GenValidity (a, b) where+ genUnchecked = sized $ \n -> do+ (r, s) <- genSplit n+ a <- resize r genUnchecked+ b <- resize s genUnchecked+ return (a, b)++ genValid = sized $ \n -> do+ (r, s) <- genSplit n+ a <- resize r genValid+ b <- resize s genValid+ return (a, b)++ genInvalid = sized $ \n -> do+ (r, s) <- genSplit n+ oneof+ [ do+ a <- resize r genUnchecked+ b <- resize s genInvalid+ return (a, b)+ , do+ a <- resize r genInvalid+ b <- resize s genUnchecked+ return (a, b)+ ]++instance (GenValidity a, GenValidity b, GenValidity c) => GenValidity (a, b, c) where+ genUnchecked = sized $ \n -> do+ (r, s, t) <- genSplit3 n+ a <- resize r genUnchecked+ b <- resize s genUnchecked+ c <- resize t genUnchecked+ return (a, b, c)++ genValid = sized $ \n -> do+ (r, s, t) <- genSplit3 n+ a <- resize r genValid+ b <- resize s genValid+ c <- resize t genValid+ return (a, b, c)++ genInvalid = sized $ \n -> do+ (r, s, t) <- genSplit3 n+ oneof+ [ do+ a <- resize r genInvalid+ b <- resize s genUnchecked+ c <- resize t genUnchecked+ return (a, b, c)+ , do+ a <- resize r genUnchecked+ b <- resize s genInvalid+ c <- resize t genUnchecked+ return (a, b, c)+ , do+ a <- resize r genUnchecked+ b <- resize s genUnchecked+ c <- resize t genInvalid+ return (a, b, c)+ ] instance GenValidity a => GenValidity (Maybe a) where genUnchecked = oneof [pure Nothing, Just <$> genUnchecked]