packages feed

genvalidity-hspec-binary 0.0.0.0 → 0.1.0.0

raw patch · 3 files changed

+57/−54 lines, 3 filesdep ~genvaliditydep ~genvalidity-hspecPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: genvalidity, genvalidity-hspec

API changes (from Hackage documentation)

- Test.Validity.Binary: binarySpecOnGen :: forall a. (Show a, Eq a, Typeable a, Binary a) => Gen a -> String -> Spec
+ Test.Validity.Binary: binarySpecOnGen :: forall a. (Show a, Eq a, Typeable a, Binary a) => Gen a -> String -> (a -> [a]) -> Spec
- Test.Validity.Binary: encodeAndDecodeAreInversesOnGen :: (Show a, Eq a, Binary a) => Gen a -> Property
+ Test.Validity.Binary: encodeAndDecodeAreInversesOnGen :: (Show a, Eq a, Binary a) => Gen a -> (a -> [a]) -> Property
- Test.Validity.Binary: neverFailsToEncodeOnGen :: (Show a, Binary a) => Gen a -> Property
+ Test.Validity.Binary: neverFailsToEncodeOnGen :: (Show a, Binary a) => Gen a -> (a -> [a]) -> Property

Files

genvalidity-hspec-binary.cabal view
@@ -1,29 +1,35 @@-name:                genvalidity-hspec-binary-version:             0.0.0.0-synopsis:            Standard spec's for binary-related Instances-description:         Standard spec's for cereal-related Instances, see https://hackage.haskell.org/package/binary.-homepage:            https://github.com/NorfairKing/validity#readme-license:             MIT-license-file:        LICENSE-author:              Nick Van den Broeck-maintainer:          syd.kerckhove@gmail.com-copyright:           2017 Tom Sydney Kerckhove-category:            Testing-build-type:          Simple-extra-source-files:  README.md-cabal-version:       >=1.10+name: genvalidity-hspec-binary+version: 0.1.0.0+cabal-version: >=1.10+build-type: Simple+license: MIT+license-file: LICENSE+copyright: 2017 Tom Sydney Kerckhove+maintainer: syd.kerckhove@gmail.com+homepage: https://github.com/NorfairKing/validity#readme+synopsis: Standard spec's for binary-related Instances+description:+    Standard spec's for cereal-related Instances, see https://hackage.haskell.org/package/binary.+category: Testing+author: Nick Van den Broeck+extra-source-files:+    README.md +source-repository head+    type: git+    location: https://github.com/NorfairKing/validity+ library     exposed-modules:         Test.Validity.Binary     build-depends:         base >=4.9 && <=5,-        genvalidity-hspec >=0.3 && <0.5,-        genvalidity >=0.3 && <0.4,-        hspec,+        QuickCheck -any,         binary >=0.5 && <0.9,-        QuickCheck,-        deepseq >=1.4 && <1.5+        deepseq >=1.4 && <1.5,+        genvalidity >=0.4 && <0.5,+        genvalidity-hspec >=0.5 && <0.6,+        hspec -any     default-language: Haskell2010     hs-source-dirs: src/     ghc-options: -Wall@@ -38,21 +44,16 @@     default-language: Haskell2010     hs-source-dirs: test     ghc-options: -threaded- test-suite genvalidity-hspec-binary-test     type: exitcode-stdio-1.0     main-is: Spec.hs     build-depends:         base -any,-        genvalidity >=0.3 && <0.4,+        genvalidity -any,         genvalidity-hspec-binary -any,-        hspec+        hspec -any     default-language: Haskell2010     hs-source-dirs: test/     other-modules:         Test.Validity.BinarySpec     ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall--source-repository head-  type:     git-  location: https://github.com/NorfairKing/validity
src/Test/Validity/Binary.hs view
@@ -33,7 +33,7 @@ binarySpecOnValid ::        forall a. (Show a, Eq a, Typeable a, GenValid a, Binary a)     => Spec-binarySpecOnValid = binarySpecOnGen (genValid @a) "valid"+binarySpecOnValid = binarySpecOnGen (genValid @a) "valid" shrinkValid  -- | Standard test spec for properties of 'Binary'-related functions for unchecked values --@@ -43,7 +43,7 @@ binarySpec ::        forall a. (Show a, Eq a, Typeable a, GenUnchecked a, Binary a)     => Spec-binarySpec = binarySpecOnGen (genUnchecked @a) "unchecked"+binarySpec = binarySpecOnGen (genUnchecked @a) "unchecked" shrinkUnchecked  -- | Standard test spec for properties of 'Binary'-related functions for arbitrary values --@@ -53,19 +53,20 @@ binarySpecOnArbitrary ::        forall a. (Show a, Eq a, Typeable a, Arbitrary a, Binary a)     => Spec-binarySpecOnArbitrary = binarySpecOnGen (arbitrary @a) "arbitrary"+binarySpecOnArbitrary = binarySpecOnGen (arbitrary @a) "arbitrary" shrink  -- | Standard test spec for properties of 'Binary'-related functions for a given generator (and a name for that generator). -- -- Example usage: ----- > binarySpecOnGen (genListOf $ pure 'a') "sequence of 'a's"+-- > binarySpecOnGen (genListOf $ pure 'a') "sequence of 'a's" (const []) binarySpecOnGen ::        forall a. (Show a, Eq a, Typeable a, Binary a)     => Gen a     -> String+    -> (a -> [a])     -> Spec-binarySpecOnGen gen genname =+binarySpecOnGen gen genname s =     parallel $ do         let name = nameOf @a         describe ("Binary " ++ name ++ " (" ++ genname ++ ")") $ do@@ -77,7 +78,7 @@                          , "\"" ++ genname                          , name ++ "\""                          ]) $-                neverFailsToEncodeOnGen gen+                neverFailsToEncodeOnGen gen s             describe                 ("decode :: " ++ name ++ " -> Data.ByteString.Lazy.ByteString") $                 it@@ -86,34 +87,35 @@                          , "\"" ++ genname                          , name ++ "\"" ++ "'s"                          ]) $-                encodeAndDecodeAreInversesOnGen gen+                encodeAndDecodeAreInversesOnGen gen s  -- | ----- prop> neverFailsToEncodeOnGen @Bool arbitrary--- prop> neverFailsToEncodeOnGen @Bool genUnchecked--- prop> neverFailsToEncodeOnGen @Bool genValid--- prop> neverFailsToEncodeOnGen @Int arbitrary--- prop> neverFailsToEncodeOnGen @Int genUnchecked--- prop> neverFailsToEncodeOnGen @Int genValid-neverFailsToEncodeOnGen :: (Show a, Binary a) => Gen a -> Property-neverFailsToEncodeOnGen gen =-    forAll gen $ \(a :: a) ->+-- prop> neverFailsToEncodeOnGen @Bool arbitrary shrink+-- prop> neverFailsToEncodeOnGen @Bool genUnchecked shrinkUnchecked+-- prop> neverFailsToEncodeOnGen @Bool genValid shrinkValid+-- prop> neverFailsToEncodeOnGen @Int arbitrary shrink+-- prop> neverFailsToEncodeOnGen @Int genUnchecked shrinkUnchecked+-- prop> neverFailsToEncodeOnGen @Int genValid shrinkValid+neverFailsToEncodeOnGen :: (Show a, Binary a) => Gen a -> (a -> [a]) -> Property+neverFailsToEncodeOnGen gen s =+    forAllShrink gen s $ \(a :: a) ->         evaluate (deepseq (Binary.encode a) ()) `shouldReturn` ()  -- | ----- prop> encodeAndDecodeAreInversesOnGen @Bool arbitrary--- prop> encodeAndDecodeAreInversesOnGen @Bool genUnchecked--- prop> encodeAndDecodeAreInversesOnGen @Bool genValid--- prop> encodeAndDecodeAreInversesOnGen @Int arbitrary--- prop> encodeAndDecodeAreInversesOnGen @Int genUnchecked--- prop> encodeAndDecodeAreInversesOnGen @Int genValid-encodeAndDecodeAreInversesOnGen :: (Show a, Eq a, Binary a) => Gen a -> Property-encodeAndDecodeAreInversesOnGen gen =-    forAll gen $ \(a :: a) ->+-- prop> encodeAndDecodeAreInversesOnGen @Bool arbitrary shrinkValid+-- prop> encodeAndDecodeAreInversesOnGen @Bool genUnchecked shrinkUnchecked+-- prop> encodeAndDecodeAreInversesOnGen @Bool genValid shrinkValid+-- prop> encodeAndDecodeAreInversesOnGen @Int arbitrary shrink+-- prop> encodeAndDecodeAreInversesOnGen @Int genUnchecked shrinkUnchecked+-- prop> encodeAndDecodeAreInversesOnGen @Int genValid shrinkValid+encodeAndDecodeAreInversesOnGen ::+       (Show a, Eq a, Binary a) => Gen a -> (a -> [a]) -> Property+encodeAndDecodeAreInversesOnGen gen s =+    forAllShrink gen s $ \(a :: a) ->         case Binary.decodeOrFail (Binary.encode a) of             Right (_, _, b) -> a `shouldBe` b-            Left (_, _, s) ->+            Left (_, _, s_) ->                 expectationFailure $-                unwords ["decode of encode is not identity:", s]+                unwords ["decode of encode is not identity:", s_]
test/Test/Validity/BinarySpec.hs view
@@ -9,7 +9,7 @@  spec :: Spec spec = do-    binarySpecOnGen (genListOf $ pure 'a') "sequence of 'a's"+    binarySpecOnGen (genListOf $ pure 'a') "sequence of 'a's" (const [])     binarySpecOnValid @Double     binarySpec @Int     binarySpecOnArbitrary @Int