hw-hedgehog 0.1.0.1 → 0.1.0.2
raw patch · 3 files changed
+105/−34 lines, 3 filesdep ~basedep ~hedgehogdep ~vectorPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: base, hedgehog, vector
API changes (from Hackage documentation)
+ HaskellWorks.Hedgehog.Gen: tuple2 :: MonadGen m => m a -> m (a, a)
+ HaskellWorks.Hedgehog.Gen: tuple3 :: MonadGen m => m a -> m (a, a, a)
+ HaskellWorks.Hedgehog.Gen: tuple4 :: MonadGen m => m a -> m (a, a, a, a)
+ HaskellWorks.Hedgehog.Gen: tuple5 :: MonadGen m => m a -> m (a, a, a, a, a)
+ HaskellWorks.Hedgehog.Gen: tuple6 :: MonadGen m => m a -> m (a, a, a, a, a, a)
+ HaskellWorks.Hedgehog.Gen: tuple7 :: MonadGen m => m a -> m (a, a, a, a, a, a, a)
+ HaskellWorks.Hedgehog.Gen: tuple8 :: MonadGen m => m a -> m (a, a, a, a, a, a, a, a)
+ HaskellWorks.Hedgehog.Gen: tuple9 :: MonadGen m => m a -> m (a, a, a, a, a, a, a, a, a)
+ HaskellWorks.Hedgehog.Gen: word8x8 :: MonadGen m => m Word8 -> m Word64
Files
- LICENSE +1/−1
- hw-hedgehog.cabal +47/−32
- src/HaskellWorks/Hedgehog/Gen.hs +57/−1
LICENSE view
@@ -1,4 +1,4 @@-Copyright Author name here (c) 2017+Copyright John Ky (c) 2017-2018 All rights reserved.
hw-hedgehog.cabal view
@@ -1,36 +1,51 @@-name: hw-hedgehog-version: 0.1.0.1-synopsis: Extra hedgehog functionality-description: Extra hedgehog functionality-homepage: https://github.com/githubuser/hw-hedgehog#readme-license: BSD3-license-file: LICENSE-author: Author name here-maintainer: example@example.com-copyright: 2017 Author name here-category: Web-build-type: Simple-extra-source-files: README.md-cabal-version: >=1.10+-- This file has been generated from package.yaml by hpack version 0.18.1.+--+-- see: https://github.com/sol/hpack -library- hs-source-dirs: src- exposed-modules: HaskellWorks.Hedgehog- , HaskellWorks.Hedgehog.Gen- build-depends: base >= 4.7 && < 5- , hedgehog- , vector- default-language: Haskell2010+name: hw-hedgehog+version: 0.1.0.2+synopsis: Extra hedgehog functionality+description: Extra hedgehog functionality.+category: Test+homepage: https://github.com/haskell-works/hw-hedgehog#readme+bug-reports: https://github.com/haskell-works/hw-hedgehog/issues+author: John Ky+maintainer: newhoggy@gmail.com+copyright: 2017-2018 John Ky+license: BSD3+license-file: LICENSE+tested-with: GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.2+build-type: Simple+cabal-version: >= 1.10 -test-suite hw-hedgehog-test- type: exitcode-stdio-1.0- hs-source-dirs: test- main-is: Spec.hs- build-depends: base- , hw-hedgehog- ghc-options: -threaded -rtsopts -with-rtsopts=-N- default-language: Haskell2010+extra-source-files:+ README.md source-repository head- type: git- location: https://github.com/githubuser/hw-hedgehog+ type: git+ location: https://github.com/haskell-works/hw-hedgehog++library+ hs-source-dirs:+ src+ build-depends:+ base >=4.8 && <5+ , hedgehog >= 0.5 && < 0.7+ , vector >= 0.10 && < 0.13+ exposed-modules:+ HaskellWorks.Hedgehog+ HaskellWorks.Hedgehog.Gen+ other-modules:+ Paths_hw_hedgehog+ default-language: Haskell2010++test-suite hw-hedgehog-test+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ hs-source-dirs:+ test+ ghc-options: -threaded -rtsopts -with-rtsopts=-N+ build-depends:+ base+ , hw-hedgehog+ default-language: Haskell2010
src/HaskellWorks/Hedgehog/Gen.hs view
@@ -1,10 +1,23 @@+{-# LANGUAGE ScopedTypeVariables #-}+ module HaskellWorks.Hedgehog.Gen ( vector , storableVector+ , word8x8+ , tuple2+ , tuple3+ , tuple4+ , tuple5+ , tuple6+ , tuple7+ , tuple8+ , tuple9 ) where -import Hedgehog+import Data.Bits+import Data.Word import Foreign.Storable+import Hedgehog import qualified Data.Vector as DV import qualified Data.Vector.Storable as DVS@@ -16,3 +29,46 @@ storableVector :: (Storable a, MonadGen m) => Range Int -> m a -> m (DVS.Vector a) storableVector n g = DVS.fromList <$> G.list n g++word8x8 :: MonadGen m => m Word8 -> m Word64+word8x8 gen = do+ a :: Word64 <- fromIntegral <$> gen+ b :: Word64 <- fromIntegral <$> gen+ c :: Word64 <- fromIntegral <$> gen+ d :: Word64 <- fromIntegral <$> gen+ e :: Word64 <- fromIntegral <$> gen+ f :: Word64 <- fromIntegral <$> gen+ g :: Word64 <- fromIntegral <$> gen+ h :: Word64 <- fromIntegral <$> gen+ return $ (a `shiftL` 56) .|.+ (b `shiftL` 48) .|.+ (c `shiftL` 40) .|.+ (d `shiftL` 32) .|.+ (e `shiftL` 24) .|.+ (f `shiftL` 16) .|.+ (g `shiftL` 8) .|.+ (h `shiftL` 0)++tuple2 :: MonadGen m => m a -> m (a, a)+tuple2 gen = (,) <$> gen <*> gen++tuple3 :: MonadGen m => m a -> m (a, a, a)+tuple3 gen = (,,) <$> gen <*> gen <*> gen++tuple4 :: MonadGen m => m a -> m (a, a, a, a)+tuple4 gen = (,,,) <$> gen <*> gen <*> gen <*> gen++tuple5 :: MonadGen m => m a -> m (a, a, a, a, a)+tuple5 gen = (,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen++tuple6 :: MonadGen m => m a -> m (a, a, a, a, a, a)+tuple6 gen = (,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen++tuple7 :: MonadGen m => m a -> m (a, a, a, a, a, a, a)+tuple7 gen = (,,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen++tuple8 :: MonadGen m => m a -> m (a, a, a, a, a, a, a, a)+tuple8 gen = (,,,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen++tuple9 :: MonadGen m => m a -> m (a, a, a, a, a, a, a, a, a)+tuple9 gen = (,,,,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen