{-# LANGUAGE NoImplicitPrelude #-}
module Main where
import OpenSuse.Prelude
import OpenSuse.StripSpace
{-# INLINE (~~>) #-}
(~~>) :: String -> String -> (Text, Text)
(~~>) input result = (packText input, packText result)
testCases :: [(Text, Text)]
testCases =
[ "para1\n\r\n\n para2 \n\r\r\n\n" ~~> "para1\n\n para2\n"
, "line1\nline2\r\nline3\n" ~~> "line1\nline2\nline3\n"
, "line1\nline2\n" ~~> "line1\nline2\n"
, "line1" ~~> "line1\n"
, "line 1 \r and still line 1" ~~> "line 1 \r and still line 1\n"
, "" ~~> ""
, "\n" ~~> ""
, " \n" ~~> ""
, " \n \n\n \n " ~~> ""
]
main :: IO ()
main =
forM_ testCases $ \(inp,expct) -> do
let r = stripSpace inp
unless (r == expct) $
fail (unwords [ "stripped version of", show inp
, "is", show r
, "not the expected", show expct
])