QuickCheckVariant 0.1.0.3 → 0.1.0.4
raw patch · 2 files changed
+43/−5 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
QuickCheckVariant.cabal view
@@ -2,7 +2,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.1.0.3+version: 0.1.0.4 synopsis: Generator of "valid" and "invalid" data in a type class description: Generator of "valid" and "invalid" data in a type class homepage: https://github.com/sanjorgek/QuickCheckVariant
src/Test/QuickCheck/Variant.hs view
@@ -19,9 +19,18 @@ >>> instance (Varaint a) => Arbitrary a where {arbitrary = oneof [valid, invalid]} -} class Variant a where+ -- |Get a generator of valid random data type valid :: Gen a+ -- |Get a generator of invalid random data type invalid :: Gen a +{-|+Variant of a list.++A valid list only had valid data.++A invalid list had only invalid data or some valid data with invalid data.+-} instance (Variant a) => Variant [a] where valid = do x <- valid@@ -30,8 +39,15 @@ invalid = do x <- invalid xs <- invalid- (oneof . map return) [[], [x], x:xs]+ y <- valid+ ys <- valid+ (oneof . map return) [[x], x:xs, x:ys, y:xs] +{-|+Variant Maybe++Only Just data can be invalid, nothing always is valid.+-} instance (Variant a) => Variant (Maybe a) where invalid = do x <- invalid@@ -40,6 +56,9 @@ x <- valid (oneof . map return) [Nothing, Just x] +{-|+Varaint Either.+-} instance (Variant a, Variant b) => Variant (Either a b) where invalid = do x <- invalid@@ -50,24 +69,43 @@ y <- valid (oneof . map return) [Left x, Right y] +{-|+Varaint tuple++Invalid tuple may had some valid data with invalid data or only invalid data.++Valid tuple had only valid data.+-} instance (Variant a, Variant b) => Variant ((,) a b) where invalid = do x <- invalid y <- invalid- return (x, y)+ z <- valid+ w <- valid+ (oneof . map return) [(x,y), (x,z), (w,y)] valid = do x <- valid y <- valid return (x, y) +{-|+Varaint 3-tuple++Invalid 3-tuple may had some valid data with invalid data or only invalid data.++Valid 3-tuple had only valid data.+-} instance (Variant a, Variant b, Variant c) => Variant ((,,) a b c) where invalid = do x <- invalid y <- invalid z <- invalid- return (x, y, z)+ w <- valid+ v <- valid+ u <- valid + (oneof . map return) [(x,y,z), (x,y,u), (x,v,z), (w,y,z), (w,v,z), (x,v,u), (w,y,u)] valid = do x <- valid y <- valid- z <- invalid + z <- valid return (x, y, z)