From d4d606d95bdfcce5002860612be77ba422513ab3 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Thu, 13 Feb 2025 08:55:12 -0500 Subject: [PATCH] Added tests for unicode character classes; more tests for hex characters --- regex/re_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/regex/re_test.go b/regex/re_test.go index 1b717c4..f085761 100644 --- a/regex/re_test.go +++ b/regex/re_test.go @@ -430,6 +430,7 @@ var reTests = []struct { {`^(.+)?B`, []ReFlag{RE_CASE_INSENSITIVE}, `ab`, []Group{{0, 2}}}, {`\0009`, []ReFlag{RE_CASE_INSENSITIVE}, "\x009", []Group{{0, 2}}}, {`\0141`, []ReFlag{RE_CASE_INSENSITIVE}, "A", []Group{{0, 1}}}, + {`\0141\0141`, []ReFlag{RE_CASE_INSENSITIVE}, "AA", []Group{{0, 2}}}, {`a[-]?c`, []ReFlag{RE_CASE_INSENSITIVE}, `AC`, []Group{{0, 2}}}, @@ -460,8 +461,10 @@ var reTests = []struct { {`[\D5]+`, nil, `1234abc5678`, []Group{{4, 8}}}, {`[\da-fA-F]+`, nil, `123abc`, []Group{{0, 6}}}, {`\xff`, nil, "\u00ff", []Group{{0, 1}}}, + {`\xff+`, nil, "\u00ff\u00ff", []Group{{0, 2}}}, {`\xFF`, nil, "\u00ff", []Group{{0, 1}}}, {`\x00ff`, nil, "\u00ff", []Group{}}, + {`\x{0000ff}+`, nil, "\u00ff\u00ff", []Group{{0, 2}}}, {`\x{0000ff}`, nil, "\u00ff", []Group{{0, 1}}}, {`\x{0000FF}`, nil, "\u00ff", []Group{{0, 1}}}, {"\t\n\v\r\f\a", nil, "\t\n\v\r\f\a", []Group{{0, 6}}}, @@ -516,6 +519,14 @@ var reTests = []struct { {`<389-400`, nil, `-`, nil}, {`<389-400>`, nil, `391`, []Group{{0, 3}}}, {`\b<1-10000>\b`, nil, `America declared independence in 1776.`, []Group{{33, 37}}}, + + {`\p{Tamil}+`, nil, `உயிரெழுத்து`, []Group{{0, 11}}}, // Each letter and matra is counted as a separate rune, so 'u', 'ya', 'e (matra), 'ra', 'e (matra)', 'zha', (oo (matra), 'tha', 'ith', 'tha', 'oo (matra)'. + {`\P{Tamil}+`, nil, `vowel=உயிரெழுத்து`, []Group{{0, 6}}}, + {`\P`, nil, `உயிரெழுத்து`, nil}, + {`\PM\pM*`, nil, `உயிரெழுத்து`, []Group{{0, 1}, {1, 3}, {3, 5}, {5, 7}, {7, 9}, {9, 11}}}, + {`\pN+`, nil, `123abc456def`, []Group{{0, 3}, {6, 9}}}, + {`\PN+`, nil, `123abc456def`, []Group{{3, 6}, {9, 12}}}, + {`[\p{Greek}\p{Cyrillic}]`, nil, `ΣωШД`, []Group{{0, 1}, {1, 2}, {2, 3}, {3, 4}}}, } var groupTests = []struct {