{-# LANGUAGE OverloadedStrings #-} module Main ( main ) where import qualified Data.Attoparsec.ByteString.Char8 as A import qualified Data.Attoparsec.ByteString.Streaming as AS import qualified Data.ByteString.Streaming as BS import Streaming import qualified Streaming.Prelude as S import Test.Tasty import Test.Tasty.HUnit --- main :: IO () main = defaultMain suite suite :: TestTree suite = testGroup "Unit Tests" [ testCase "parse" $ do (r,rest1) <- AS.parse (A.scientific <* A.many' A.space) "12.3 4.56 78.3" (s,rest2) <- AS.parse (A.scientific <* A.many' A.space) rest1 (t,rest3) <- AS.parse (A.scientific <* A.many' A.space) rest2 r @?= Right 12.3 s @?= Right 4.56 t @?= Right 78.3 BS.null_ rest3 >>= assertBool "Should be empty" , testCase "Simple parsing" $ do s <- S.sum_ . void . AS.parsed (A.scientific <* A.many' A.space) $ "12.3 4.56 78.9" s @?= (12.3 + 4.56 + 78.9) ]