module Main where
import BasePrelude
import Test.Hspec
import Data.Text (Text)
import ListT.Attoparsec
import Data.Attoparsec.Text
import qualified ListT.Text
import qualified ListT
main =
hspec $ do
context "sample 1" $ do
let textStream = ListT.Text.stream 2 "abcdefg"
context "result" $ do
result <- flip consume textStream $ string "abc" *> string "de" *> char 'f'
context "head" $ do
head <- return $ fmap fst result
it "should be correct" $ shouldBe head (Right 'f')
context "remainder" $ do
remainder <- traverse ListT.toList $ fmap snd result
it "should be correct" $ shouldBe remainder (Right ["g"])