From d814e4da1720f01725caa1e82a1ffff7a675720d Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Tue, 19 Mar 2024 16:03:38 +1100 Subject: fix sloppy fastq parsing Previously chunked on @, which prevented it being used in quality scores --- test.hs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'test.hs') diff --git a/test.hs b/test.hs index a8780ff..b0574a1 100644 --- a/test.hs +++ b/test.hs @@ -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' -- cgit v1.2.3