aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeoramund <161657516+Feoramund@users.noreply.github.com>2024-08-04 18:33:36 -0400
committerFeoramund <161657516+Feoramund@users.noreply.github.com>2024-08-04 18:33:36 -0400
commitcd8272557feae951543c0d661b3c8d82e1a67c44 (patch)
tree1a8f89d1c46cf73079ffc25759beaa01170bf8e9
parent62527123638ba5ac9e707e0fbcdeb9e9e56b9c31 (diff)
Test that a RegEx Capture `pos` corresponds to its `groups`
-rw-r--r--tests/core/text/regex/test_core_text_regex.odin7
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/core/text/regex/test_core_text_regex.odin b/tests/core/text/regex/test_core_text_regex.odin
index 8ecf6cef2..d9d4f8cbc 100644
--- a/tests/core/text/regex/test_core_text_regex.odin
+++ b/tests/core/text/regex/test_core_text_regex.odin
@@ -44,6 +44,13 @@ check_expression_with_flags :: proc(t: ^testing.T, pattern: string, flags: regex
} else {
log.infof("match groups were: %v", capture.groups, location = loc)
}
+
+ for pos, g in capture.pos {
+ pos_str := haystack[pos[0]:pos[1]]
+ if !testing.expectf(t, pos_str == capture.groups[g], "position string %v %q does not correspond to group string %q", pos, pos_str, capture.groups[g]) {
+ break
+ }
+ }
}
check_expression :: proc(t: ^testing.T, pattern, haystack: string, needles: ..string, extra_flags: regex.Flags = {}, loc := #caller_location) {