quickcheck-instances 0.3.27 → 0.3.28
raw patch · 6 files changed
+113/−28 lines, 6 filesdep +primitivedep ~basedep ~natsdep ~vectorPVP ok
version bump matches the API change (PVP)
Dependencies added: primitive
Dependency ranges changed: base, nats, vector
API changes (from Hackage documentation)
+ Test.QuickCheck.Instances.Primitive: instance Test.QuickCheck.Arbitrary.Arbitrary Data.Primitive.ByteArray.ByteArray
+ Test.QuickCheck.Instances.Primitive: instance Test.QuickCheck.Arbitrary.CoArbitrary Data.Primitive.ByteArray.ByteArray
+ Test.QuickCheck.Instances.Primitive: instance Test.QuickCheck.Function.Function Data.Primitive.ByteArray.ByteArray
Files
- CHANGES +5/−0
- quickcheck-instances.cabal +30/−25
- src/Test/QuickCheck/Instances.hs +4/−3
- src/Test/QuickCheck/Instances/Array/Byte.hs +36/−0
- src/Test/QuickCheck/Instances/Primitive.hs +36/−0
- test/Tests.hs +2/−0
CHANGES view
@@ -1,3 +1,8 @@+0.3.28++* Add instances for `Data.Array.Byte.ByteArray` (`base-4.17`)+* Add instances for `Data.Primitive.ByteArray` (`primitive`)+ 0.3.27 * Add instances for `Backwards`, `Reverse` and `Lift` from `transformers`
quickcheck-instances.cabal view
@@ -1,5 +1,5 @@ name: quickcheck-instances-version: 0.3.27+version: 0.3.28 synopsis: Common quickcheck instances description: QuickCheck instances.@@ -40,8 +40,9 @@ || ==8.6.5 || ==8.8.4 || ==8.10.4- || ==9.0.1- || ==9.2.1+ || ==9.0.2+ || ==9.2.4+ || ==9.4.1 source-repository head type: git@@ -57,6 +58,7 @@ exposed-modules: Test.QuickCheck.Instances Test.QuickCheck.Instances.Array+ Test.QuickCheck.Instances.Array.Byte Test.QuickCheck.Instances.ByteString Test.QuickCheck.Instances.CaseInsensitive Test.QuickCheck.Instances.Containers@@ -64,6 +66,7 @@ Test.QuickCheck.Instances.Hashable Test.QuickCheck.Instances.Natural Test.QuickCheck.Instances.OldTime+ Test.QuickCheck.Instances.Primitive Test.QuickCheck.Instances.Scientific Test.QuickCheck.Instances.Semigroup Test.QuickCheck.Instances.Solo@@ -81,31 +84,32 @@ other-modules: Test.QuickCheck.Instances.CustomPrelude hs-source-dirs: src build-depends:- base >=4.5 && <4.17+ base >=4.5 && <4.18 , QuickCheck >=2.14.1 && <2.14.3 , splitmix >=0.0.2 && <0.2 build-depends:- array >=0.4.0.0 && <0.6- , bytestring >=0.9.2.1 && <0.12- , case-insensitive >=1.2.0.4 && <1.3- , containers >=0.4.2.1 && <0.7- , data-fix >=0.3 && <0.4- , hashable >=1.2.7.0 && <1.5- , integer-logarithms >=1.0.3 && <1.1- , old-time >=1.1.0.0 && <1.2- , OneTuple >=0.3 && <0.4- , scientific >=0.3.6.2 && <0.4- , strict >=0.4 && <0.5- , tagged >=0.8.6 && <0.9- , text >=1.2.3.0 && <1.3- , these >=1.1.1.1 && <1.2- , time-compat >=1.9.4 && <1.10- , transformers >=0.3.0.0 && <0.7- , transformers-compat >=0.6.5 && <0.8- , unordered-containers >=0.2.2.0 && <0.3- , uuid-types >=1.0.3 && <1.1- , vector >=0.9 && <0.13+ array >=0.4.0.0 && <0.6+ , bytestring >=0.9.2.1 && <0.12+ , case-insensitive >=1.2.0.4 && <1.3+ , containers >=0.4.2.1 && <0.7+ , data-fix >=0.3 && <0.4+ , hashable >=1.2.7.0 && <1.5+ , integer-logarithms >=1.0.3 && <1.1+ , old-time >=1.1.0.0 && <1.2+ , OneTuple >=0.3 && <0.4+ , primitive >=0.6.4.0 && <0.8+ , scientific >=0.3.6.2 && <0.4+ , strict >=0.4 && <0.5+ , tagged >=0.8.6 && <0.9+ , text >=1.2.3.0 && <1.3 || >=2.0 && <2.1+ , these >=1.1.1.1 && <1.2+ , time-compat >=1.9.4 && <1.10+ , transformers >=0.3.0.0 && <0.7+ , transformers-compat >=0.6.5 && <0.8+ , unordered-containers >=0.2.2.0 && <0.3+ , uuid-types >=1.0.3 && <1.1+ , vector >=0.12.3.1 && <0.14 -- version is irrelevant. build-depends: time@@ -115,7 +119,7 @@ if !impl(ghc >=7.10) build-depends:- nats >=1 && <1.2+ nats >=1.1.2 && <1.2 , void >=0.7.2 && <0.8 if flag(bytestring-builder)@@ -140,6 +144,7 @@ build-depends: base , containers+ , primitive , QuickCheck , quickcheck-instances , tagged
src/Test/QuickCheck/Instances.hs view
@@ -1,6 +1,4 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE FlexibleContexts #-}-{-# OPTIONS_GHC -fno-warn-orphans #-} {-| Instances are provided for the types in the packages: @@ -32,6 +30,8 @@ * uuid + * primitive+ * vector Since all of these instances are provided as orphans, I recommend that@@ -44,14 +44,15 @@ module Test.QuickCheck.Instances () where import Test.QuickCheck.Instances.Array ()+import Test.QuickCheck.Instances.Array.Byte () import Test.QuickCheck.Instances.ByteString () import Test.QuickCheck.Instances.CaseInsensitive () import Test.QuickCheck.Instances.Containers () import Test.QuickCheck.Instances.DataFix () import Test.QuickCheck.Instances.Hashable () import Test.QuickCheck.Instances.Natural ()-import Test.QuickCheck.Instances.Natural () import Test.QuickCheck.Instances.OldTime ()+import Test.QuickCheck.Instances.Primitive () import Test.QuickCheck.Instances.Scientific () import Test.QuickCheck.Instances.Semigroup () import Test.QuickCheck.Instances.Solo ()
+ src/Test/QuickCheck/Instances/Array/Byte.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Test.QuickCheck.Instances.Array.Byte () where++#if MIN_VERSION_base(4,17,0)++import Prelude ()+import Test.QuickCheck.Instances.CustomPrelude+import Test.QuickCheck.Instances.Primitive ()++import Test.QuickCheck++import Data.Array.Byte (ByteArray (..))+import qualified Data.Primitive as P++-- | @since 0.3.28+instance Arbitrary ByteArray where+ arbitrary = fromP <$> arbitrary+ shrink ba = fromP <$> shrink (toP ba)++-- | @since 0.3.28+instance CoArbitrary ByteArray where+ coarbitrary ba = coarbitrary (toP ba)++-- | @since 0.3.28+instance Function ByteArray where+ function = functionMap toP fromP++toP :: ByteArray -> P.ByteArray+toP (ByteArray ba) = P.ByteArray ba++fromP :: P.ByteArray -> ByteArray+fromP (P.ByteArray ba) = ByteArray ba++#endif
+ src/Test/QuickCheck/Instances/Primitive.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Test.QuickCheck.Instances.Primitive () where++import Prelude ()+import Test.QuickCheck.Instances.CustomPrelude++import Data.Word (Word8)++import Test.QuickCheck++import qualified Data.Primitive as P++-------------------------------------------------------------------------------+-- ByteArray+-------------------------------------------------------------------------------++-- | @since 0.3.28+instance Arbitrary P.ByteArray where+ arbitrary = byteArrayFromList <$> arbitrary+ shrink ba = byteArrayFromList <$> shrink (byteArrayToList ba)++-- | @since 0.3.28+instance CoArbitrary P.ByteArray where+ coarbitrary ba = coarbitrary (byteArrayToList ba)++-- | @since 0.3.28+instance Function P.ByteArray where+ function = functionMap byteArrayToList byteArrayFromList++byteArrayFromList :: [Word8] -> P.ByteArray+byteArrayFromList = P.byteArrayFromList++byteArrayToList :: P.ByteArray -> [Word8]+byteArrayToList = P.foldrByteArray (:) []
test/Tests.hs view
@@ -5,6 +5,7 @@ import Test.QuickCheck.Instances () import qualified Data.Tree as Tree+import qualified Data.Primitive as Prim import Data.UUID.Types (UUID) -- | Example law: == (and thus ===) should be reflexive.@@ -20,3 +21,4 @@ quickCheck $ eqReflexive (Proxy :: Proxy Int) quickCheck $ eqReflexive (Proxy :: Proxy (Tree.Tree Int)) quickCheck $ eqReflexive (Proxy :: Proxy UUID)+ quickCheck $ eqReflexive (Proxy :: Proxy Prim.ByteArray)