diff --git a/re_test.go b/re_test.go index bdddb15..d94c552 100644 --- a/re_test.go +++ b/re_test.go @@ -479,7 +479,35 @@ var reTests = []struct { {`*?`, nil, `-`, nil}, {`a*?`, nil, `-`, nil}, // non-greedy operators are not supported - // Todo - add numeric range tests + // Numeric range tests - this is a feature that I added, and doesn't exist + // in any other mainstream regex engine + {`<0-255>`, nil, `0`, []Group{{0, 1}}}, + {`<0-255>`, nil, `7`, []Group{{0, 1}}}, + {`<0-255>`, nil, `46`, []Group{{0, 2}}}, + {`<0-255>`, nil, `90`, []Group{{0, 2}}}, + {`<0-255>`, nil, `107`, []Group{{0, 3}}}, + {`<0-255>`, nil, `198`, []Group{{0, 3}}}, + {`<0-255>`, nil, `254`, []Group{{0, 3}}}, + {`<0-255>`, nil, `255`, []Group{{0, 3}}}, + {`<0-255>`, nil, `256`, []Group{{0, 2}, {2, 3}}}, + {`^<0-255>$`, nil, `256`, []Group{}}, + + {`^<0-299792458>$`, nil, `299000999`, []Group{{0, 9}}}, + {`^<0-299792458>$`, nil, `299792531`, []Group{}}, + + {`^<3-0>$`, nil, `-`, nil}, + {`^<0-0>$`, nil, `0`, []Group{{0, 1}}}, + {`2<0-55>`, nil, `231`, []Group{{0, 3}}}, + {`2<0-55>`, nil, `271`, []Group{{0, 2}}}, + {`^2<0-55>$`, nil, `271`, []Group{}}, + + {`<389`, nil, `-`, nil}, + {`<389>`, nil, `-`, nil}, + {`<-389>`, nil, `-`, nil}, + {`<389->`, nil, `-`, nil}, + {`<389-400`, nil, `-`, nil}, + {`<389-400>`, nil, `391`, []Group{{0, 3}}}, + {`\b<1-10000>\b`, nil, `America declared independence in 1776.`, []Group{{33, 37}}}, } var groupTests = []struct { @@ -634,6 +662,8 @@ var groupTests = []struct { {`^([ab]*)(?=(b)?)c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}}, {`^([ab]*)(?!(b))c`, nil, `abc`, []Match{[]Group{{0, 3}, {0, 2}}}}, {`^([ab]*)(?)`, nil, `391`, []Match{[]Group{{0, 3}, {0, 3}}}}, } func TestFindAllMatches(t *testing.T) {