diff options
| author | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2024-08-04 18:33:36 -0400 |
|---|---|---|
| committer | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2024-08-04 18:33:36 -0400 |
| commit | cd8272557feae951543c0d661b3c8d82e1a67c44 (patch) | |
| tree | 1a8f89d1c46cf73079ffc25759beaa01170bf8e9 | |
| parent | 62527123638ba5ac9e707e0fbcdeb9e9e56b9c31 (diff) | |
Test that a RegEx Capture `pos` corresponds to its `groups`
| -rw-r--r-- | tests/core/text/regex/test_core_text_regex.odin | 7 |
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) { |