msgpack-types 0.3.0 → 0.3.1
raw patch · 2 files changed
+30/−1 lines, 2 files
Files
msgpack-types.cabal view
@@ -1,5 +1,5 @@ name: msgpack-types-version: 0.3.0+version: 0.3.1 synopsis: A Haskell implementation of MessagePack. homepage: http://msgpack.org/ license: BSD3@@ -56,6 +56,7 @@ hs-source-dirs: test main-is: testsuite.hs other-modules:+ Data.MessagePack.Arbitrary Data.MessagePack.Types.AssocSpec Data.MessagePack.Types.ClassSpec ghc-options:
+ test/Data/MessagePack/Arbitrary.hs view
@@ -0,0 +1,28 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE Trustworthy #-}+module Data.MessagePack.Arbitrary () where++import qualified Data.ByteString as S+import Data.MessagePack.Types (Object (..))+import qualified Data.Text as T+import qualified Data.Vector as V+import Test.QuickCheck.Arbitrary (Arbitrary, arbitrary)+import qualified Test.QuickCheck.Gen as Gen+++instance Arbitrary Object where+ arbitrary = Gen.sized $ \n -> Gen.oneof+ [ pure ObjectNil+ , ObjectBool <$> arbitrary+ , ObjectInt <$> negatives+ , ObjectWord <$> arbitrary+ , ObjectFloat <$> arbitrary+ , ObjectDouble <$> arbitrary+ , ObjectStr <$> (T.pack <$> arbitrary)+ , ObjectBin <$> (S.pack <$> arbitrary)+ , ObjectArray <$> (V.fromList <$> Gen.resize (n `div` 2) arbitrary)+ , ObjectMap <$> (V.fromList <$> Gen.resize (n `div` 4) arbitrary)+ , ObjectExt <$> arbitrary <*> (S.pack <$> arbitrary)+ ]+ where negatives = Gen.choose (minBound, -1)