@@ -34,6 +34,7 @@ import Streamly.Prelude ((.:), nil)
34import Streamly as S
34import Streamly as S
35import qualified Streamly.Prelude as S
35import qualified Streamly.Prelude as S
36import qualified Streamly.Data.Fold as FL
36import qualified Streamly.Data.Fold as FL
37+import qualified Streamly.Internal.Data.Fold as FL
38-- Coverage build takes too long with default number of tests
39-- Coverage build takes too long with default number of tests
39maxTestCount :: Int
40maxTestCount :: Int
@@ -492,6 +493,22 @@ transformCombineOpsCommon constr desc eq t = do
492 let f x = if odd x then Just (x + 100) else Nothing
493 let f x = if odd x then Just (x + 100) else Nothing
493 prop (desc <> " mapMaybe") $ transform (mapMaybe f) t (S.mapMaybe f)
494 prop (desc <> " mapMaybe") $ transform (mapMaybe f) t (S.mapMaybe f)
497+ prop (desc <> " tap FL.sum . map (+1)") $ \a b ->
498+ withMaxSuccess maxTestCount $
500+ cref <- run $ newIORef 0
501+ let sumfoldinref = FL.Fold (\_ e -> modifyIORef' cref (e+))
504+ op = S.tap sumfoldinref . S.mapM (\x -> return (x+1))
506+ stream <- run ((S.toList . t) $ op (constr a <> constr b))
507+ let list = listOp (a <> b)
508+ ssum <- run $ readIORef cref
509+ assert (sum list == ssum)
510+ listEquals eq stream list
495 -- reordering
512 -- reordering
496 prop (desc <> " reverse") $ transform reverse t S.reverse
513 prop (desc <> " reverse") $ transform reverse t S.reverse
497 -- prop (desc <> " reverse'") $ transform reverse t S.reverse'
514 -- prop (desc <> " reverse'") $ transform reverse t S.reverse'