diff options
Diffstat (limited to 'test.hs')
-rw-r--r-- | test.hs | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -10,6 +10,7 @@ import Data.Function import qualified Streamly.Data.Fold as F import qualified Streamly.Data.Stream as S import qualified Streamly.Data.Unfold as U +import System.IO.Temp import Test.QuickCheck import Test.QuickCheck.Arbitrary import Test.QuickCheck.Monadic @@ -19,15 +20,19 @@ instance Arbitrary Read where arbitrary = Read <$> genStr <*> genStr <*> genStr where genBS = fmap B.pack . listOf . elements - genStr = genBS $ [' ' .. '*'] ++ [',' .. '?'] ++ ['A' .. '~'] + genStr = genBS $ [' ' .. '~'] main :: IO () main = quickCheckWith stdArgs {maxSuccess = 10000} $ \rp -> monadicIO $ do - rp' <- run $ do - S.unfold U.fromList rp & unparse "a" "b" - cnt <- B.readFile "a" - B.writeFile "a" $ cnt <> cnt - cnt <- B.readFile "b" - B.writeFile "b" $ cnt <> cnt - parse "a" "b" & S.fold F.toList + rp' <- run $ withSystemTempDirectory "dedumi-test" $ \root -> do + let a = root <> "/a" + b = root <> "/b" + a' = root <> "/a2" + b' = root <> "/b2" + S.unfold U.fromList rp & unparse a b + cnt <- B.readFile a + B.writeFile a' $ cnt <> cnt + cnt <- B.readFile b + B.writeFile b' $ cnt <> cnt + parse a' b' & S.fold F.toList assert $ rp <> rp == rp' |