diff options
Diffstat (limited to 'tests/stdlib/nre/find.nim')
-rw-r--r-- | tests/stdlib/nre/find.nim | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/stdlib/nre/find.nim b/tests/stdlib/nre/find.nim new file mode 100644 index 000000000..05bfb848a --- /dev/null +++ b/tests/stdlib/nre/find.nim @@ -0,0 +1,25 @@ +import unittest, sequtils, nre, optional_nonstrict + +suite "find": + test "find text": + check("3213a".find(re"[a-z]").match == "a") + check(toSeq(findIter("1 2 3 4 5 6 7 8 ", re" ")).map( + proc (a: RegexMatch): string = a.match + ) == @[" ", " ", " ", " ", " ", " ", " ", " "]) + + test "find bounds": + check(toSeq(findIter("1 2 3 4 5 ", re" ")).map( + proc (a: RegexMatch): Slice[int] = a.matchBounds + ) == @[1..1, 3..3, 5..5, 7..7, 9..9]) + + test "overlapping find": + check("222".findAll(re"22") == @["22"]) + check("2222".findAll(re"22") == @["22", "22"]) + + test "len 0 find": + check("".findAll(re"\ ") == newSeq[string]()) + check("".findAll(re"") == @[""]) + check("abc".findAll(re"") == @["", "", "", ""]) + check("word word".findAll(re"\b") == @["", "", "", ""]) + check("word\r\lword".findAll(re"(*ANYCRLF)(?m)$") == @["", ""]) + check("слово слово".findAll(re"(*U)\b") == @["", "", "", ""]) |