HyperSpec.hs
1 module HyperSpec where 2 3 import Test.Hspec(Spec, describe, it, shouldBe) 4 import Hyper (progC, gen, runCont) 5 import Control.Monad.Writer (execWriterT) 6 7 spec :: Spec 8 spec = 9 describe "Coroutines" $ do 10 it "can run sample program" $ do 11 runCont (execWriterT $ progC gen) id `shouldBe` 12 ["in prog", "received 1", "sent 10, received 2", "sent 20, received 3", "sent 30, received 1"]