@@ -4,28 +4,35 @@ import Prelude
44import Data.Maybe
55import Control.Monad.Eff.Console (log )
66import Data.String.Regex
7+ import Data.Either (isLeft )
8+ import Data.Either.Unsafe (fromRight )
79import Test.Assert (assert )
810
11+ -- | Unsafe version of `regex`.
12+ regex' :: String -> RegexFlags -> Regex
13+ regex' pattern flags = fromRight (regex pattern flags)
14+
915testStringRegex = do
1016 log " regex"
11- assert $ test (regex " ^a" noFlags) " abc"
12- assert $ not (test (regex " ^b" noFlags) " abc" )
17+ assert $ test (regex' " ^a" noFlags) " abc"
18+ assert $ not (test (regex' " ^b" noFlags) " abc" )
19+ assert $ isLeft (regex " +" noFlags)
1320
1421 log " match"
15- assert $ match (regex " ^abc$" noFlags) " abc" == Just [Just " abc" ]
22+ assert $ match (regex' " ^abc$" noFlags) " abc" == Just [Just " abc" ]
1623
1724 log " replace"
18- assert $ replace (regex " -" noFlags) " !" " a-b-c" == " a!b-c"
25+ assert $ replace (regex' " -" noFlags) " !" " a-b-c" == " a!b-c"
1926
2027 log " replace'"
21- assert $ replace' (regex " -" noFlags) (\s xs -> " !" ) " a-b-c" == " a!b-c"
28+ assert $ replace' (regex' " -" noFlags) (\s xs -> " !" ) " a-b-c" == " a!b-c"
2229
2330 log " search"
24- assert $ search (regex " b" noFlags) " abc" == Just 1
25- assert $ search (regex " d" noFlags) " abc" == Nothing
31+ assert $ search (regex' " b" noFlags) " abc" == Just 1
32+ assert $ search (regex' " d" noFlags) " abc" == Nothing
2633
2734 log " split"
28- assert $ split (regex " " noFlags) " " == []
29- assert $ split (regex " " noFlags) " abc" == [" a" , " b" , " c" ]
30- assert $ split (regex " b" noFlags) " " == [" " ]
31- assert $ split (regex " b" noFlags) " abc" == [" a" , " c" ]
35+ assert $ split (regex' " " noFlags) " " == []
36+ assert $ split (regex' " " noFlags) " abc" == [" a" , " b" , " c" ]
37+ assert $ split (regex' " b" noFlags) " " == [" " ]
38+ assert $ split (regex' " b" noFlags) " abc" == [" a" , " c" ]
0 commit comments