hw-streams 0.0.0.7 → 0.0.0.8
raw patch · 6 files changed
+69/−39 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- hw-streams.cabal +3/−2
- src/HaskellWorks/Data/Streams/Stream/Ops.hs +4/−1
- test/HaskellWorks/Data/Stream/Vector/StorableSpec.hs +0/−33
- test/HaskellWorks/Data/Streams/Stream/OpsSpec.hs +28/−0
- test/HaskellWorks/Data/Streams/Vector/StorableSpec.hs +33/−0
- test/Test/Gen.hs +1/−3
hw-streams.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: hw-streams-version: 0.0.0.7+version: 0.0.0.8 synopsis: Primitive functions and data types description: Primitive functions and data types. category: Data@@ -92,7 +92,8 @@ if flag(bounds-checking-enabled) cpp-options: -DBOUNDS_CHECKING_ENABLED other-modules:- HaskellWorks.Data.Stream.Vector.StorableSpec+ HaskellWorks.Data.Streams.Stream.OpsSpec+ HaskellWorks.Data.Streams.Vector.StorableSpec Test.Gen default-language: Haskell2010
src/HaskellWorks/Data/Streams/Stream/Ops.hs view
@@ -38,4 +38,7 @@ splice a b = (a .>. o) .|. (b .<. (64 - o)) add :: Stream Word64 -> Stream Word64 -> Stream Word64-add = HW.zipWithState (\a b c -> let d = a + b in (c + d, d `ltWord` a)) 0+add = HW.zipWithState (\a b c ->+ let d = a + b + c in+ let e = d `ltWord` a in+ (d, e)) 0
− test/HaskellWorks/Data/Stream/Vector/StorableSpec.hs
@@ -1,33 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE ScopedTypeVariables #-}--module HaskellWorks.Data.Stream.Vector.StorableSpec- ( spec- ) where--import HaskellWorks.Hspec.Hedgehog-import Hedgehog-import Test.Hspec--import qualified Data.Vector.Storable as DVS-import qualified HaskellWorks.Data.Streams.Vector.Storable as SDVS-import qualified Hedgehog.Gen as G-import qualified Hedgehog.Range as R-import qualified Test.Gen as G--{-# ANN module ("HLint: Ignore Redundant do" :: String) #-}--spec :: Spec-spec = describe "HaskellWorks.Data.Stream.Vector.StorableSpec" $ do- it "map" $ requireProperty $ do- v <- forAll $ G.vector (R.linear 0 100) (G.word64 (R.constantBounded))-- DVS.map (+ 1) v === SDVS.map (+ 1) v- it "foldl" $ requireProperty $ do- v <- forAll $ G.vector (R.linear 0 100) (G.word64 (R.constantBounded))-- DVS.foldl (+) 0 v === SDVS.foldl (+) 0 v- it "sum" $ requireProperty $ do- v <- forAll $ G.vector (R.linear 0 100) (G.word64 (R.constantBounded))-- DVS.sum v === SDVS.sum v
+ test/HaskellWorks/Data/Streams/Stream/OpsSpec.hs view
@@ -0,0 +1,28 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}++module HaskellWorks.Data.Streams.Stream.OpsSpec+ ( spec+ ) where++import Data.Semigroup ((<>))+import Data.Word+import HaskellWorks.Hspec.Hedgehog+import Hedgehog+import Test.Hspec++import qualified Data.Vector.Storable as DVS+import qualified HaskellWorks.Data.Streams.Stream.Ops as S+import qualified HaskellWorks.Data.Streams.Vector.Storable as SDVS++{-# ANN module ("HLint: Ignore Redundant do" :: String) #-}++spec :: Spec+spec = describe "HaskellWorks.Data.Stream.Vector.StorableSpec" $ do+ it "map" $ requireTest $ do+ u <- forAll $ pure $ DVS.fromList $ replicate 4 (0xffffffffffffffff :: Word64)+ v <- forAll $ pure $ DVS.fromList $ [0x0000000000000001 :: Word64] <> replicate 3 0++ let result = SDVS.unstream (S.add (SDVS.stream u) (SDVS.stream v))++ result === DVS.replicate 4 (0x0000000000000000 :: Word64)
+ test/HaskellWorks/Data/Streams/Vector/StorableSpec.hs view
@@ -0,0 +1,33 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}++module HaskellWorks.Data.Streams.Vector.StorableSpec+ ( spec+ ) where++import HaskellWorks.Hspec.Hedgehog+import Hedgehog+import Test.Hspec++import qualified Data.Vector.Storable as DVS+import qualified HaskellWorks.Data.Streams.Vector.Storable as SDVS+import qualified Hedgehog.Gen as G+import qualified Hedgehog.Range as R+import qualified Test.Gen as G++{-# ANN module ("HLint: Ignore Redundant do" :: String) #-}++spec :: Spec+spec = describe "HaskellWorks.Data.Stream.Vector.StorableSpec" $ do+ it "map" $ requireProperty $ do+ v <- forAll $ G.vector (R.linear 0 100) (G.word64 (R.constantBounded))++ DVS.map (+ 1) v === SDVS.map (+ 1) v+ it "foldl" $ requireProperty $ do+ v <- forAll $ G.vector (R.linear 0 100) (G.word64 (R.constantBounded))++ DVS.foldl (+) 0 v === SDVS.foldl (+) 0 v+ it "sum" $ requireProperty $ do+ v <- forAll $ G.vector (R.linear 0 100) (G.word64 (R.constantBounded))++ DVS.sum v === SDVS.sum v
test/Test/Gen.hs view
@@ -1,9 +1,7 @@ module Test.Gen where -import Data.Vector.Storable (Storable)-import HaskellWorks.Hspec.Hedgehog+import Data.Vector.Storable (Storable) import Hedgehog-import Test.Hspec import qualified Data.Vector.Storable as DVS import qualified Hedgehog.Gen as G