mirror of
https://github.com/ilyakooo0/streamly.git
synced 2024-10-26 09:59:48 +03:00
74 lines
2.6 KiB
Haskell
74 lines
2.6 KiB
Haskell
{-# OPTIONS_GHC -Wno-deprecations #-}
|
|
|
|
-- |
|
|
-- Module : Streamly.Test.Prelude.ZipSerial
|
|
-- Copyright : (c) 2020 Composewell Technologies
|
|
--
|
|
-- License : BSD-3-Clause
|
|
-- Maintainer : streamly@composewell.com
|
|
-- Stability : experimental
|
|
-- Portability : GHC
|
|
|
|
module Streamly.Test.Prelude.ZipSerial (main) where
|
|
|
|
import Test.Hspec.QuickCheck
|
|
import Test.Hspec as H
|
|
|
|
import Streamly.Prelude
|
|
import qualified Streamly.Prelude as S
|
|
|
|
import Streamly.Test.Prelude.Common
|
|
|
|
moduleName :: String
|
|
moduleName = "Prelude.ZipSerial"
|
|
|
|
main :: IO ()
|
|
main = hspec
|
|
$ H.parallel
|
|
#ifdef COVERAGE_BUILD
|
|
$ modifyMaxSuccess (const 10)
|
|
#endif
|
|
$ describe moduleName $ do
|
|
let zipSerialOps :: IsStream t
|
|
=> ((ZipSerialM IO a -> t IO a) -> Spec) -> Spec
|
|
zipSerialOps spec = mapOps spec $ makeOps fromZipSerial
|
|
#ifndef COVERAGE_BUILD
|
|
<> [("rate AvgRate 0.00000001", fromZipSerial . avgRate 0.00000001)]
|
|
<> [("maxBuffer (-1)", fromZipSerial . maxBuffer (-1))]
|
|
#endif
|
|
|
|
describe "Functor operations" $ do
|
|
zipSerialOps $ functorOps S.fromFoldable "zipSerially" (==)
|
|
zipSerialOps $ functorOps folded "zipSerially folded" (==)
|
|
|
|
describe "Monoid operations" $ do
|
|
zipSerialOps $ monoidOps "zipSerially" mempty (==)
|
|
|
|
describe "Semigroup operations" $ do
|
|
zipSerialOps $ semigroupOps "zipSerially" (==)
|
|
|
|
-- XXX add tests for indexed/indexedR
|
|
describe "Zip operations" $ do
|
|
zipSerialOps $
|
|
prop "zipSerially applicative" . zipApplicative S.fromFoldable (==)
|
|
zipSerialOps $
|
|
prop "zipSerially applicative folded" . zipApplicative folded (==)
|
|
|
|
describe "Stream transform and combine operations" $ do
|
|
zipSerialOps $ transformCombineOpsCommon S.fromFoldable "zipSerially" (==)
|
|
zipSerialOps $ transformCombineOpsCommon folded "zipSerially" (==)
|
|
zipSerialOps $ transformCombineOpsOrdered S.fromFoldable "zipSerially" (==)
|
|
zipSerialOps $ transformCombineOpsOrdered folded "zipSerially" (==)
|
|
|
|
describe "Stream elimination operations" $ do
|
|
zipSerialOps $ eliminationOps S.fromFoldable "zipSerially"
|
|
zipSerialOps $ eliminationOps folded "zipSerially folded"
|
|
zipSerialOps $ eliminationOpsWord8 S.fromFoldable "zipSerially"
|
|
zipSerialOps $ eliminationOpsWord8 folded "zipSerially folded"
|
|
|
|
-- XXX Add a test where we chain all transformation APIs and make sure that
|
|
-- the state is being passed through all of them.
|
|
describe "Stream serial elimination operations" $ do
|
|
zipSerialOps $ eliminationOpsOrdered S.fromFoldable "zipSerially"
|
|
zipSerialOps $ eliminationOpsOrdered folded "zipSerially folded"
|