summary refs log tree commit diff stats
path: root/tests/stdlib/nre/match.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/nre/match.nim')
-rw-r--r--tests/stdlib/nre/match.nim18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/stdlib/nre/match.nim b/tests/stdlib/nre/match.nim
new file mode 100644
index 000000000..7e09a4b2f
--- /dev/null
+++ b/tests/stdlib/nre/match.nim
@@ -0,0 +1,18 @@
+include nre, unittest, optional_nonstrict
+
+block: # match
+  block: # upper bound must be inclusive
+    check("abc".match(re"abc", endpos = -1) == none(RegexMatch))
+    check("abc".match(re"abc", endpos = 1) == none(RegexMatch))
+    check("abc".match(re"abc", endpos = 2) != none(RegexMatch))
+
+  block: # match examples
+    check("abc".match(re"(\w)").captures[0] == "a")
+    check("abc".match(re"(?<letter>\w)").captures["letter"] == "a")
+    check("abc".match(re"(\w)\w").captures[-1] == "ab")
+    check("abc".match(re"(\w)").captureBounds[0] == 0 .. 0)
+    check("abc".match(re"").captureBounds[-1] == 0 .. -1)
+    check("abc".match(re"abc").captureBounds[-1] == 0 .. 2)
+
+  block: # match test cases
+    check("123".match(re"").matchBounds == 0 .. -1)