packages feed

genvalidity-hspec 0.2.0.3 → 0.2.0.4

raw patch · 2 files changed

+220/−1 lines, 2 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Test.Validity: equivalentWhenFirstSucceeds :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property
+ Test.Validity: equivalentWhenFirstSucceeds2 :: (Show a, Eq a, GenValidity a, Show b, Eq b, GenValidity b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property
+ Test.Validity: equivalentWhenFirstSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Gen a -> Property
+ Test.Validity: equivalentWhenFirstSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Gen (a, b) -> Property
+ Test.Validity: equivalentWhenFirstSucceedsOnValid :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property
+ Test.Validity: equivalentWhenFirstSucceedsOnValids2 :: (Show a, Eq a, GenValidity a, Show b, Eq b, GenValidity b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property
+ Test.Validity: equivalentWhenSecondSucceeds :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property
+ Test.Validity: equivalentWhenSecondSucceeds2 :: (Show a, Eq a, GenValidity a, Show b, Eq b, GenValidity b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property
+ Test.Validity: equivalentWhenSecondSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Gen a -> Property
+ Test.Validity: equivalentWhenSecondSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Gen (a, b) -> Property
+ Test.Validity: equivalentWhenSecondSucceedsOnValid :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property
+ Test.Validity: equivalentWhenSecondSucceedsOnValids2 :: (Show a, Eq a, GenValidity a, Show b, Eq b, GenValidity b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property
+ Test.Validity: equivalentWhenSucceed :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property
+ Test.Validity: equivalentWhenSucceed2 :: (Show a, Eq a, GenValidity a, Show b, Eq b, GenValidity b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property
+ Test.Validity: equivalentWhenSucceedOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Gen a -> Property
+ Test.Validity: equivalentWhenSucceedOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Gen (a, b) -> Property
+ Test.Validity: equivalentWhenSucceedOnValid :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property
+ Test.Validity: equivalentWhenSucceedOnValids2 :: (Show a, Eq a, GenValidity a, Show b, Eq b, GenValidity b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property

Files

genvalidity-hspec.cabal view
@@ -1,5 +1,5 @@ name:                genvalidity-hspec-version:             0.2.0.3+version:             0.2.0.4 synopsis:            Standard spec's for GenValidity instances description:         Please see README.md homepage:            https://github.com/NorfairKing/validity#readme
src/Test/Validity.hs view
@@ -63,6 +63,24 @@     , equivalentOnGens2     , equivalentOnValids2     , equivalent2+    , equivalentWhenFirstSucceedsOnGen+    , equivalentWhenFirstSucceedsOnValid+    , equivalentWhenFirstSucceeds+    , equivalentWhenFirstSucceedsOnGens2+    , equivalentWhenFirstSucceedsOnValids2+    , equivalentWhenFirstSucceeds2+    , equivalentWhenSecondSucceedsOnGen+    , equivalentWhenSecondSucceedsOnValid+    , equivalentWhenSecondSucceeds+    , equivalentWhenSecondSucceedsOnGens2+    , equivalentWhenSecondSucceedsOnValids2+    , equivalentWhenSecondSucceeds2+    , equivalentWhenSucceedOnGen+    , equivalentWhenSucceedOnValid+    , equivalentWhenSucceed+    , equivalentWhenSucceedOnGens2+    , equivalentWhenSucceedOnValids2+    , equivalentWhenSucceed2      -- * Standard tests involving inverse functions @@ -650,6 +668,207 @@   -> Property equivalent2 f g     = equivalentOnGens2 f g genUnchecked++equivalentWhenFirstSucceedsOnGen+  :: (Show a, Eq a, Show b, Eq b, CanFail f)+  => (a -> f b)+  -> (a -> b)+  -> Gen a+  -> Property+equivalentWhenFirstSucceedsOnGen f g gen =+    forAll gen $ \a ->+        case resultIfSucceeded (f a) of+            Nothing -> return () -- fine+            Just r  -> r `shouldBe` g a++equivalentWhenFirstSucceedsOnValid+  :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f)+  => (a -> f b)+  -> (a -> b)+  -> Property+equivalentWhenFirstSucceedsOnValid f g+    = equivalentWhenFirstSucceedsOnGen f g genValid++equivalentWhenFirstSucceeds+  :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f)+  => (a -> f b)+  -> (a -> b)+  -> Property+equivalentWhenFirstSucceeds f g+    = equivalentWhenFirstSucceedsOnGen f g genUnchecked++equivalentWhenFirstSucceedsOnGens2+  :: (Show a, Eq a,+      Show b, Eq b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> f c)+  -> (a -> b -> c)+  -> Gen (a, b)+  -> Property+equivalentWhenFirstSucceedsOnGens2 f g gen =+    forAll gen $ \(a, b) ->+        case resultIfSucceeded (f a b) of+            Nothing -> return () -- fine+            Just rs -> rs `shouldBe` g a b++equivalentWhenFirstSucceedsOnValids2+  :: (Show a, Eq a, GenValidity a,+      Show b, Eq b, GenValidity b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> f c)+  -> (a -> b -> c)+  -> Property+equivalentWhenFirstSucceedsOnValids2 f g+    = equivalentWhenFirstSucceedsOnGens2 f g genValid++equivalentWhenFirstSucceeds2+  :: (Show a, Eq a, GenValidity a,+      Show b, Eq b, GenValidity b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> f c)+  -> (a -> b -> c)+  -> Property+equivalentWhenFirstSucceeds2 f g+    = equivalentWhenFirstSucceedsOnGens2 f g genUnchecked++equivalentWhenSecondSucceedsOnGen+  :: (Show a, Eq a, Show b, Eq b, CanFail f)+  => (a -> b)+  -> (a -> f b)+  -> Gen a+  -> Property+equivalentWhenSecondSucceedsOnGen f g gen =+    forAll gen $ \a ->+        case resultIfSucceeded (g a) of+            Nothing -> return () -- fine+            Just r  -> r `shouldBe` f a++equivalentWhenSecondSucceedsOnValid+  :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f)+  => (a -> b)+  -> (a -> f b)+  -> Property+equivalentWhenSecondSucceedsOnValid f g+    = equivalentWhenSecondSucceedsOnGen f g genValid++equivalentWhenSecondSucceeds+  :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f)+  => (a -> b)+  -> (a -> f b)+  -> Property+equivalentWhenSecondSucceeds f g+    = equivalentWhenSecondSucceedsOnGen f g genUnchecked++equivalentWhenSecondSucceedsOnGens2+  :: (Show a, Eq a,+      Show b, Eq b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> c)+  -> (a -> b -> f c)+  -> Gen (a, b)+  -> Property+equivalentWhenSecondSucceedsOnGens2 f g gen =+    forAll gen $ \(a, b) ->+        case resultIfSucceeded (g a b) of+            Nothing -> return () -- fine+            Just rs -> rs `shouldBe` f a b++equivalentWhenSecondSucceedsOnValids2+  :: (Show a, Eq a, GenValidity a,+      Show b, Eq b, GenValidity b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> c)+  -> (a -> b -> f c)+  -> Property+equivalentWhenSecondSucceedsOnValids2 f g+    = equivalentWhenSecondSucceedsOnGens2 f g genValid++equivalentWhenSecondSucceeds2+  :: (Show a, Eq a, GenValidity a,+      Show b, Eq b, GenValidity b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> c)+  -> (a -> b -> f c)+  -> Property+equivalentWhenSecondSucceeds2 f g+    = equivalentWhenSecondSucceedsOnGens2 f g genUnchecked++equivalentWhenSucceedOnGen+  :: (Show a, Eq a, Show b, Eq b, CanFail f)+  => (a -> f b)+  -> (a -> f b)+  -> Gen a+  -> Property+equivalentWhenSucceedOnGen f g gen =+    forAll gen $ \a ->+        case do fa <- resultIfSucceeded $ f a+                ga <- resultIfSucceeded $ g a+                return $ (fa, ga)+            of+            Nothing -> return () -- fine+            Just (fa, ga)  -> fa `shouldBe` ga++equivalentWhenSucceedOnValid+  :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f)+  => (a -> f b)+  -> (a -> f b)+  -> Property+equivalentWhenSucceedOnValid f g+    = equivalentWhenSucceedOnGen f g genValid++equivalentWhenSucceed+  :: (Show a, Eq a, GenValidity a, Show b, Eq b, CanFail f)+  => (a -> f b)+  -> (a -> f b)+  -> Property+equivalentWhenSucceed f g+    = equivalentWhenSucceedOnGen f g genUnchecked++equivalentWhenSucceedOnGens2+  :: (Show a, Eq a,+      Show b, Eq b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> f c)+  -> (a -> b -> f c)+  -> Gen (a, b)+  -> Property+equivalentWhenSucceedOnGens2 f g gen =+    forAll gen $ \(a, b) ->+        case do fab <- resultIfSucceeded $ f a b+                gab <- resultIfSucceeded $ g a b+                return (fab, gab)+                of+            Nothing -> return () -- fine+            Just (fab, gab) -> fab `shouldBe` gab++equivalentWhenSucceedOnValids2+  :: (Show a, Eq a, GenValidity a,+      Show b, Eq b, GenValidity b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> f c)+  -> (a -> b -> f c)+  -> Property+equivalentWhenSucceedOnValids2 f g+    = equivalentWhenSucceedOnGens2 f g genValid++equivalentWhenSucceed2+  :: (Show a, Eq a, GenValidity a,+      Show b, Eq b, GenValidity b,+      Show c, Eq c,+      CanFail f)+  => (a -> b -> f c)+  -> (a -> b -> f c)+  -> Property+equivalentWhenSucceed2 f g+    = equivalentWhenSucceedOnGens2 f g genUnchecked  inverseFunctionsOnGen   :: (Show a, Eq a)