From cd8272557feae951543c0d661b3c8d82e1a67c44 Mon Sep 17 00:00:00 2001 From: Feoramund <161657516+Feoramund@users.noreply.github.com> Date: Sun, 4 Aug 2024 18:33:36 -0400 Subject: [PATCH] Test that a RegEx Capture `pos` corresponds to its `groups` --- tests/core/text/regex/test_core_text_regex.odin | 7 +++++++ 1 file changed, 7 insertions(+) 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) {