hw-streams-0.0.0.8: test/HaskellWorks/Data/Streams/Stream/OpsSpec.hs
{-# 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)