28 lines
548 B
Idris
28 lines
548 B
Idris
module Main
|
|
|
|
import SSG.Djot.Lines
|
|
|
|
import Control.Eff
|
|
import Data.String
|
|
import Hedgehog
|
|
|
|
lines' : Eff [Lines] (List String)
|
|
lines' = do
|
|
Just next <- take
|
|
| _ => pure []
|
|
map (next ::) lines'
|
|
|
|
propLinesEquiv : Property
|
|
propLinesEquiv = property $ do
|
|
str <- forAll $ string (linear 0 256) ascii
|
|
let std_lines = lines str
|
|
let (our_lines, rest) = extract $ runLines str lines'
|
|
our_lines === std_lines
|
|
|
|
main : IO ()
|
|
main = test $
|
|
[ MkGroup
|
|
"Lines effect"
|
|
[ ("Lines effect equivalent to lines", propLinesEquiv)
|
|
]
|
|
]
|