Module:string utilities/testcases
Appearance
- The following documentation is located at Module:string utilities/testcases/documentation. [edit] Categories were auto-generated by Module:documentation. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • tested module • sandbox
All tests passed. (refresh)
Text | Expected | Actual | Differs at | |
---|---|---|---|---|
% | false | false | ||
%b() | %b() | %b() | ||
%b() | false | false | ||
%b() | false | false | ||
%b() | false | false | ||
%b()a | %b()a | %b()a | ||
%b()%a | false | false | ||
%a | false | false | ||
%b | false | false | ||
%c | false | false | ||
%d | false | false | ||
%e | %e | %e | ||
%f | false | false | ||
%g | %g | %g | ||
%h | %h | %h | ||
%i | %i | %i | ||
%j | %j | %j | ||
%k | %k | %k | ||
%l | false | false | ||
%m | %m | %m | ||
%n | %n | %n | ||
%o | %o | %o | ||
%p | false | false | ||
%q | %q | %q | ||
%r | %r | %r | ||
%s | false | false | ||
%t | %t | %t | ||
%u | false | false | ||
%v | %v | %v | ||
%w | false | false | ||
%x | false | false | ||
%y | %y | %y | ||
%z | %z | %z | ||
%A | false | false | ||
%B | %B | %B | ||
%C | false | false | ||
%D | false | false | ||
%E | %E | %E | ||
%F | %F | %F | ||
%G | %G | %G | ||
%H | %H | %H | ||
%I | %I | %I | ||
%J | %J | %J | ||
%K | %K | %K | ||
%L | false | false | ||
%M | %M | %M | ||
%N | %N | %N | ||
%O | %O | %O | ||
%P | false | false | ||
%Q | %Q | %Q | ||
%R | %R | %R | ||
%S | false | false | ||
%T | %T | %T | ||
%U | false | false | ||
%V | %V | %V | ||
%W | false | false | ||
%X | false | false | ||
%Y | %Y | %Y | ||
%Z | [�-�-�][�-�]* | [�-�-�][�-�]* | ||
%ж | %ж | %ж | ||
%ж? | false | false | ||
%%a | %%a | %%a | ||
%%c | %%c | %%c | ||
%%d | %%d | %%d | ||
%%l | %%l | %%l | ||
%%p | %%p | %%p | ||
%%s | %%s | %%s | ||
%%u | %%u | %%u | ||
%%w | %%w | %%w | ||
%%x | %%x | %%x | ||
%%A | %%A | %%A | ||
%%C | %%C | %%C | ||
%%D | %%D | %%D | ||
%%L | %%L | %%L | ||
%%P | %%P | %%P | ||
%%S | %%S | %%S | ||
%%U | %%U | %%U | ||
%%W | %%W | %%W | ||
%%X | %%X | %%X | ||
%%Z | %%Z | %%Z | ||
%%%a | false | false | ||
%%%c | false | false | ||
%%%d | false | false | ||
%%%l | false | false | ||
%%%p | false | false | ||
%%%s | false | false | ||
%%%u | false | false | ||
%%%w | false | false | ||
%%%x | false | false | ||
%%%A | false | false | ||
%%%C | false | false | ||
%%%D | false | false | ||
%%%L | false | false | ||
%%%P | false | false | ||
%%%S | false | false | ||
%%%U | false | false | ||
%%%W | false | false | ||
%%%X | false | false | ||
%%%Z | %%[�-�-�][�-�]* | %%[�-�-�][�-�]* | ||
%z%a | false | false | ||
%Z%a | false | false | ||
() | false | false | ||
%() | %() | %() | ||
(foo) | (foo) | (foo) | ||
((foo)bar) | ((foo)bar) | ((foo)bar) | ||
( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) | ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) | ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) | ||
( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) | false | false | ||
((((((((((((((((((((((((((((((((( | false | false | ||
( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )%( ) | ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )%( ) | ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )%( ) | ||
. | [^�-�][�-�]* | [^�-�][�-�]* | ||
..... | [^�-�][�-�]*[^�-�][�-�]*[^�-�][�-�]*[^�-�][�-�]*[^�-�][�-�]* | [^�-�][�-�]*[^�-�][�-�]*[^�-�][�-�]*[^�-�][�-�]*[^�-�][�-�]* | ||
foo.*. | foo.*[^�-�][�-�]* | foo.*[^�-�][�-�]* | ||
foo.+. | foo[^�-�].*[^�-�][�-�]* | foo[^�-�].*[^�-�][�-�]* | ||
foo.-. | foo.-[^�-�][�-�]* | foo.-[^�-�][�-�]* | ||
foo.?. | foo[^�-�]?[�-�]*[^�-�][�-�]* | foo[^�-�]?[�-�]*[^�-�][�-�]* | ||
foo%Z*%Z | foo%Z*[�-�-�][�-�]* | foo%Z*[�-�-�][�-�]* | ||
foo%Z+%Z | foo[�-�-�]%Z*[�-�-�][�-�]* | foo[�-�-�]%Z*[�-�-�][�-�]* | ||
foo%Z-%Z | foo%Z-[�-�-�][�-�]* | foo%Z-[�-�-�][�-�]* | ||
foo%Z?%Z | foo[�-�-�]?[�-�]*[�-�-�][�-�]* | foo[�-�-�]?[�-�]*[�-�-�][�-�]* | ||
foo%Z+*%Z | foo[�-�-�]%Z**[�-�-�][�-�]* | foo[�-�-�]%Z**[�-�-�][�-�]* | ||
foo%Z++%Z | foo[�-�-�]%Z*+[�-�-�][�-�]* | foo[�-�-�]%Z*+[�-�-�][�-�]* | ||
foo%Z+-%Z | foo[�-�-�]%Z*-[�-�-�][�-�]* | foo[�-�-�]%Z*-[�-�-�][�-�]* | ||
foo%Z+?%Z | foo[�-�-�]%Z*?[�-�-�][�-�]* | foo[�-�-�]%Z*?[�-�-�][�-�]* | ||
fooжbar | fooжbar | fooжbar | ||
fooж*bar | false | false | ||
fooж+bar | foo�[ж]*�bar | foo�[ж]*�bar | ||
fooж-bar | false | false | ||
fooж?bar | false | false | ||
fooж+*bar | foo�[ж]*�%*bar | foo�[ж]*�%*bar | ||
fooж++bar | foo�[ж]*�%+bar | foo�[ж]*�%+bar | ||
fooж+-bar | foo�[ж]*�%-bar | foo�[ж]*�%-bar | ||
fooж+?bar | foo�[ж]*�%?bar | foo�[ж]*�%?bar | ||
fooကbar | fooကbar | fooကbar | ||
fooက*bar | false | false | ||
fooက+bar | false | false | ||
fooက-bar | false | false | ||
fooက?bar | false | false | ||
fooက+*bar | false | false | ||
fooက++bar | false | false | ||
fooက+-bar | false | false | ||
fooက+?bar | false | false | ||
foo𠀀bar | foo𠀀bar | foo𠀀bar | ||
foo𠀀*bar | false | false | ||
foo𠀀+bar | false | false | ||
foo𠀀-bar | false | false | ||
foo𠀀?bar | false | false | ||
foo𠀀+*bar | false | false | ||
foo𠀀++bar | false | false | ||
foo𠀀+-bar | false | false | ||
foo𠀀+?bar | false | false | ||
foo[ | false | false | ||
foo[^ | false | false | ||
[] | false | false | ||
[^] | false | false | ||
[%] | false | false | ||
foo[^b]ar | false | false | ||
foo[^bar]baz | false | false | ||
foo[^]]bar | false | false | ||
foo[^%]]bar | false | false | ||
foo%[^bar]baz | foo%[^bar]baz | foo%[^bar]baz | ||
foo%[%a]bar | false | false | ||
foo[b]ar | foo[b]ar | foo[b]ar | ||
foo[%a]bar | false | false | ||
foo[%b]ar | foo[%b]ar | foo[%b]ar | ||
foo[bar | false | false | ||
foo[bar% | false | false | ||
foo[bar]baz | foo[bar]baz | foo[bar]baz | ||
foo[bar]%a | false | false | ||
foo[bar%abaz] | false | false | ||
foo[bar%bbaz] | foo[bar%bbaz] | foo[bar%bbaz] | ||
foo[bar%zbaz] | foo[bar%zbaz] | foo[bar%zbaz] | ||
foo[barжbaz] | false | false | ||
foo[barကbaz] | false | false | ||
foo[bar𠀀baz] | false | false | ||
foo[bar%жbaz] | false | false | ||
foo[bar%ကbaz] | false | false | ||
foo[bar%𠀀baz] | false | false | ||
foo[]bar%abaz] | false | false | ||
foo[]bar%bbaz] | foo[]bar%bbaz] | foo[]bar%bbaz] | ||
foo[]bar%zbaz] | foo[]bar%zbaz] | foo[]bar%zbaz] | ||
foo[]barжbaz] | false | false | ||
foo[]barကbaz] | false | false | ||
foo[]bar𠀀baz] | false | false | ||
foo[]bar%жbaz] | false | false | ||
foo[]bar%ကbaz] | false | false | ||
foo[]bar%𠀀baz] | false | false | ||
foo[%]bar%abaz] | false | false | ||
foo[%]bar%bbaz] | foo[%]bar%bbaz] | foo[%]bar%bbaz] | ||
foo[%]bar%zbaz] | foo[%]bar%zbaz] | foo[%]bar%zbaz] | ||
foo[%]barжbaz] | false | false | ||
foo[%]barကbaz] | false | false | ||
foo[%]bar𠀀baz] | false | false | ||
foo[%]bar%жbaz] | false | false | ||
foo[%]bar%ကbaz] | false | false | ||
foo[%]bar%𠀀baz] | false | false | ||
foo[bar%]baz%a] | false | false | ||
foo[bar%]baz%b] | foo[bar%]baz%b] | foo[bar%]baz%b] | ||
foo[bar%]baz%z] | foo[bar%]baz%z] | foo[bar%]baz%z] | ||
foo[bar%]bazж] | false | false | ||
foo[bar%]bazက] | false | false | ||
foo[bar%]baz𠀀] | false | false | ||
foo[bar%]baz%ж] | false | false | ||
foo[bar%]baz%က] | false | false | ||
foo[bar%]baz%𠀀] | false | false | ||
foo[bar%]%abaz] | false | false | ||
foo[bar%]%bbaz] | foo[bar%]%bbaz] | foo[bar%]%bbaz] | ||
foo[bar%]%zbaz] | foo[bar%]%zbaz] | foo[bar%]%zbaz] | ||
foo[bar%]жbaz] | false | false | ||
foo[bar%]ကbaz] | false | false | ||
foo[bar%]𠀀baz] | false | false | ||
foo[bar%]%жbaz] | false | false | ||
foo[bar%]%ကbaz] | false | false | ||
foo[bar%]%𠀀baz] | false | false | ||
foo[bar%%abaz] | foo[bar%%abaz] | foo[bar%%abaz] | ||
foo[bar%%bbaz] | foo[bar%%bbaz] | foo[bar%%bbaz] | ||
foo[bar%%zbaz] | foo[bar%%zbaz] | foo[bar%%zbaz] | ||
foo[bar%%жbaz] | false | false | ||
foo[bar%%ကbaz] | false | false | ||
foo[bar%%𠀀baz] | false | false | ||
foo[bar%%%жbaz] | false | false | ||
foo[bar%%%ကbaz] | false | false | ||
foo[bar%%%𠀀baz] | false | false | ||
foo[bar]*baz | foo[bar]*baz | foo[bar]*baz | ||
foo[bar]+baz | foo[bar]+baz | foo[bar]+baz | ||
foo[bar]-baz | foo[bar]-baz | foo[bar]-baz | ||
foo[bar]?baz | foo[bar]?baz | foo[bar]?baz | ||
foo[bar]**baz | foo[bar]**baz | foo[bar]**baz | ||
foo[bar]++baz | foo[bar]++baz | foo[bar]++baz | ||
foo[bar]--baz | foo[bar]--baz | foo[bar]--baz | ||
foo[bar]??baz | foo[bar]??baz | foo[bar]??baz | ||
foo[БАР]baz | foo�[�-��]baz | foo�[�-��]baz | ||
foo[БА% | false | false | ||
foo[%БАР]baz | foo�[�-��]baz | foo�[�-��]baz | ||
foo[Б%АР]baz | foo�[�-��]baz | foo�[�-��]baz | ||
foo[%Б%А%Р]baz | foo�[�-��]baz | foo�[�-��]baz | ||
foo[%Б%a%Р]baz | false | false | ||
foo[БАР]*baz | false | false | ||
foo[БАР]+baz | foo�[�-���]*[�-��]baz | foo�[�-���]*[�-��]baz | ||
foo[БАР]-baz | false | false | ||
foo[БАР]?baz | false | false | ||
foo[БАР]+*baz | foo�[�-���]*[�-��]%*baz | foo�[�-���]*[�-��]%*baz | ||
foo[БАР]++baz | foo�[�-���]*[�-��]%+baz | foo�[�-���]*[�-��]%+baz | ||
foo[БАР]+-baz | foo�[�-���]*[�-��]%-baz | foo�[�-���]*[�-��]%-baz | ||
foo[БАР]+?baz | foo�[�-���]*[�-��]%?baz | foo�[�-���]*[�-��]%?baz | ||
foo[БАРbaz]qux | false | false | ||
foo[bar%Б]baz | false | false | ||
foo[БАР%e]baz | false | false | ||
foo[бар]baz | false | false | ||
foo[бар]*baz | false | false | ||
foo[бар]+baz | false | false | ||
foo[бар]-baz | false | false | ||
foo[бар]?baz | false | false | ||
foo[バー]baz | foo�[��]baz | foo�[��]baz | ||
foo[バー]*baz | false | false | ||
foo[バー]+baz | false | false | ||
foo[バー]-baz | false | false | ||
foo[バー]?baz | false | false | ||
foo%f | false | false | ||
foo%fbar | false | false | ||
foo%f[ | false | false | ||
foo%f[^ | false | false | ||
%f[] | false | false | ||
%f[^] | false | false | ||
%f[%] | false | false | ||
foo%f[^b]ar | false | false | ||
foo%f[^bar]baz | false | false | ||
foo%f[^]]bar | false | false | ||
foo%f[^%]]bar | false | false | ||
foo%f%[^bar]baz | false | false | ||
foo%f%[%a]bar | false | false | ||
foo%f[b]ar | foo%f[b]ar | foo%f[b]ar | ||
foo%f[%a]bar | false | false | ||
foo%f[%b]ar | foo%f[%b]ar | foo%f[%b]ar | ||
foo%f[bar | false | false | ||
foo%f[bar% | false | false | ||
foo%f[bar]baz | foo%f[bar]baz | foo%f[bar]baz | ||
foo%f[bar]%a | false | false | ||
foo%f[bar%abaz] | false | false | ||
foo%f[bar%bbaz] | foo%f[bar%bbaz] | foo%f[bar%bbaz] | ||
foo%f[bar%zbaz] | foo%f[bar%zbaz] | foo%f[bar%zbaz] | ||
foo%f[barжbaz] | false | false | ||
foo%f[barကbaz] | false | false | ||
foo%f[bar𠀀baz] | false | false | ||
foo%f[bar%жbaz] | false | false | ||
foo%f[bar%ကbaz] | false | false | ||
foo%f[bar%𠀀baz] | false | false | ||
foo%f[]bar%abaz] | false | false | ||
foo%f[]bar%bbaz] | foo%f[]bar%bbaz] | foo%f[]bar%bbaz] | ||
foo%f[]bar%zbaz] | foo%f[]bar%zbaz] | foo%f[]bar%zbaz] | ||
foo%f[]barжbaz] | false | false | ||
foo%f[]barကbaz] | false | false | ||
foo%f[]bar𠀀baz] | false | false | ||
foo%f[]bar%жbaz] | false | false | ||
foo%f[]bar%ကbaz] | false | false | ||
foo%f[]bar%𠀀baz] | false | false | ||
foo%f[%]bar%abaz] | false | false | ||
foo%f[%]bar%bbaz] | foo%f[%]bar%bbaz] | foo%f[%]bar%bbaz] | ||
foo%f[%]bar%zbaz] | foo%f[%]bar%zbaz] | foo%f[%]bar%zbaz] | ||
foo%f[%]barжbaz] | false | false | ||
foo%f[%]barကbaz] | false | false | ||
foo%f[%]bar𠀀baz] | false | false | ||
foo%f[%]bar%жbaz] | false | false | ||
foo%f[%]bar%ကbaz] | false | false | ||
foo%f[%]bar%𠀀baz] | false | false | ||
foo%f[bar%]baz%a] | false | false | ||
foo%f[bar%]baz%b] | foo%f[bar%]baz%b] | foo%f[bar%]baz%b] | ||
foo%f[bar%]baz%z] | foo%f[bar%]baz%z] | foo%f[bar%]baz%z] | ||
foo%f[bar%]bazж] | false | false | ||
foo%f[bar%]bazက] | false | false | ||
foo%f[bar%]baz𠀀] | false | false | ||
foo%f[bar%]baz%ж] | false | false | ||
foo%f[bar%]baz%က] | false | false | ||
foo%f[bar%]baz%𠀀] | false | false | ||
foo%f[bar%]%abaz] | false | false | ||
foo%f[bar%]%bbaz] | foo%f[bar%]%bbaz] | foo%f[bar%]%bbaz] | ||
foo%f[bar%]%zbaz] | foo%f[bar%]%zbaz] | foo%f[bar%]%zbaz] | ||
foo%f[bar%]жbaz] | false | false | ||
foo%f[bar%]ကbaz] | false | false | ||
foo%f[bar%]𠀀baz] | false | false | ||
foo%f[bar%]%жbaz] | false | false | ||
foo%f[bar%]%ကbaz] | false | false | ||
foo%f[bar%]%𠀀baz] | false | false | ||
foo%f[bar%%abaz] | foo%f[bar%%abaz] | foo%f[bar%%abaz] | ||
foo%f[bar%%bbaz] | foo%f[bar%%bbaz] | foo%f[bar%%bbaz] | ||
foo%f[bar%%zbaz] | foo%f[bar%%zbaz] | foo%f[bar%%zbaz] | ||
foo%f[bar%%жbaz] | false | false | ||
foo%f[bar%%ကbaz] | false | false | ||
foo%f[bar%%𠀀baz] | false | false | ||
foo%f[bar%%%жbaz] | false | false | ||
foo%f[bar%%%ကbaz] | false | false | ||
foo%f[bar%%%𠀀baz] | false | false | ||
foo%f[bar]*baz | foo%f[bar]*baz | foo%f[bar]*baz | ||
foo%f[bar]+baz | foo%f[bar]+baz | foo%f[bar]+baz | ||
foo%f[bar]-baz | foo%f[bar]-baz | foo%f[bar]-baz | ||
foo%f[bar]?baz | foo%f[bar]?baz | foo%f[bar]?baz | ||
foo%f[bar]**baz | foo%f[bar]**baz | foo%f[bar]**baz | ||
foo%f[bar]++baz | foo%f[bar]++baz | foo%f[bar]++baz | ||
foo%f[bar]--baz | foo%f[bar]--baz | foo%f[bar]--baz | ||
foo%f[bar]??baz | foo%f[bar]??baz | foo%f[bar]??baz | ||
foo%f[БАР]baz | false | false | ||
foo%f[БА% | false | false | ||
foo%f[%БАР]baz | false | false | ||
foo%f[Б%АР]baz | false | false | ||
foo%f[%Б%А%Р]baz | false | false | ||
foo%f[%Б%a%Р]baz | false | false | ||
foo%f[БАР]*baz | false | false | ||
foo%f[БАР]+baz | false | false | ||
foo%f[БАР]-baz | false | false | ||
foo%f[БАР]?baz | false | false | ||
foo%f[БАРbaz]qux | false | false | ||
foo%f[bar%Б]baz | false | false | ||
foo%f[БАР%e]baz | false | false | ||
foo%f[бар]baz | false | false | ||
foo%f[бар]*baz | false | false | ||
foo%f[бар]+baz | false | false | ||
foo%f[бар]-baz | false | false | ||
foo%f[бар]?baz | false | false | ||
foo%f[バー]baz | false | false | ||
foo%f[バー]*baz | false | false | ||
foo%f[バー]+baz | false | false | ||
foo%f[バー]-baz | false | false | ||
foo%f[バー]?baz | false | false |
local tests = require("Module:UnitTests")
local ps = require("Module:string utilities").pattern_simplifier
function tests:check_pattern_simplifier(pattern, expected)
tests:equals(pattern, tostring(ps(pattern)), tostring(expected))
end
function tests:test_pattern_simplifier()
local examples = {
{"", ""},
{"%", false},
{"%b()", "%b()"},
{"%b()", false},
{"%b()", false},
{"%b()", false},
{"%b()a", "%b()a"},
{"%b()%a", false},
{"%a", false},
{"%b", false},
{"%c", false},
{"%d", false},
{"%e", "%e"},
{"%f", false},
{"%g", "%g"},
{"%h", "%h"},
{"%i", "%i"},
{"%j", "%j"},
{"%k", "%k"},
{"%l", false},
{"%m", "%m"},
{"%n", "%n"},
{"%o", "%o"},
{"%p", false},
{"%q", "%q"},
{"%r", "%r"},
{"%s", false},
{"%t", "%t"},
{"%u", false},
{"%v", "%v"},
{"%w", false},
{"%x", false},
{"%y", "%y"},
{"%z", "%z"},
{"%A", false},
{"%B", "%B"},
{"%C", false},
{"%D", false},
{"%E", "%E"},
{"%F", "%F"},
{"%G", "%G"},
{"%H", "%H"},
{"%I", "%I"},
{"%J", "%J"},
{"%K", "%K"},
{"%L", false},
{"%M", "%M"},
{"%N", "%N"},
{"%O", "%O"},
{"%P", false},
{"%Q", "%Q"},
{"%R", "%R"},
{"%S", false},
{"%T", "%T"},
{"%U", false},
{"%V", "%V"},
{"%W", false},
{"%X", false},
{"%Y", "%Y"},
{"%Z", "[\1-\127\192-\255][\128-\191]*"},
{"%ж", "%ж"},
{"%ж?", false},
{"%%a", "%%a"},
{"%%c", "%%c"},
{"%%d", "%%d"},
{"%%l", "%%l"},
{"%%p", "%%p"},
{"%%s", "%%s"},
{"%%u", "%%u"},
{"%%w", "%%w"},
{"%%x", "%%x"},
{"%%A", "%%A"},
{"%%C", "%%C"},
{"%%D", "%%D"},
{"%%L", "%%L"},
{"%%P", "%%P"},
{"%%S", "%%S"},
{"%%U", "%%U"},
{"%%W", "%%W"},
{"%%X", "%%X"},
{"%%Z", "%%Z"},
{"%%%a", false},
{"%%%c", false},
{"%%%d", false},
{"%%%l", false},
{"%%%p", false},
{"%%%s", false},
{"%%%u", false},
{"%%%w", false},
{"%%%x", false},
{"%%%A", false},
{"%%%C", false},
{"%%%D", false},
{"%%%L", false},
{"%%%P", false},
{"%%%S", false},
{"%%%U", false},
{"%%%W", false},
{"%%%X", false},
{"%%%Z", "%%[\1-\127\192-\255][\128-\191]*"},
{"%z%a", false},
{"%Z%a", false},
{"()", false},
{"%()", "%()"},
{"(foo)", "(foo)"},
{"((foo)bar)", "((foo)bar)"},
{("( )"):rep(32), ("( )"):rep(32)},
{("( )"):rep(33), false},
{("("):rep(33), false},
{("( )"):rep(32) .. "%( )", ("( )"):rep(32) .. "%( )"},
{".", "[^\128-\191][\128-\191]*"},
{("."):rep(5), ("[^\128-\191][\128-\191]*"):rep(5)},
{"foo.*.", "foo.*[^\128-\191][\128-\191]*"},
{"foo.+.", "foo[^\128-\191].*[^\128-\191][\128-\191]*"},
{"foo.-.", "foo.-[^\128-\191][\128-\191]*"},
{"foo.?.", "foo[^\128-\191]?[\128-\191]*[^\128-\191][\128-\191]*"},
{"foo%Z*%Z", "foo%Z*[\1-\127\192-\255][\128-\191]*"},
{"foo%Z+%Z", "foo[\1-\127\192-\255]%Z*[\1-\127\192-\255][\128-\191]*"},
{"foo%Z-%Z", "foo%Z-[\1-\127\192-\255][\128-\191]*"},
{"foo%Z?%Z", "foo[\1-\127\192-\255]?[\128-\191]*[\1-\127\192-\255][\128-\191]*"},
{"foo%Z+*%Z", "foo[\1-\127\192-\255]%Z**[\1-\127\192-\255][\128-\191]*"},
{"foo%Z++%Z", "foo[\1-\127\192-\255]%Z*+[\1-\127\192-\255][\128-\191]*"},
{"foo%Z+-%Z", "foo[\1-\127\192-\255]%Z*-[\1-\127\192-\255][\128-\191]*"},
{"foo%Z+?%Z", "foo[\1-\127\192-\255]%Z*?[\1-\127\192-\255][\128-\191]*"},
{"fooжbar", "fooжbar"},
{"fooж*bar", false},
{"fooж+bar", "foo\208[ж]*\182bar"},
{"fooж-bar", false},
{"fooж?bar", false},
{"fooж+*bar", "foo\208[ж]*\182%*bar"},
{"fooж++bar", "foo\208[ж]*\182%+bar"},
{"fooж+-bar", "foo\208[ж]*\182%-bar"},
{"fooж+?bar", "foo\208[ж]*\182%?bar"},
{"fooကbar", "fooကbar"},
{"fooက*bar", false},
{"fooက+bar", false},
{"fooက-bar", false},
{"fooက?bar", false},
{"fooက+*bar", false},
{"fooက++bar", false},
{"fooက+-bar", false},
{"fooက+?bar", false},
{"foo𠀀bar", "foo𠀀bar"},
{"foo𠀀*bar", false},
{"foo𠀀+bar", false},
{"foo𠀀-bar", false},
{"foo𠀀?bar", false},
{"foo𠀀+*bar", false},
{"foo𠀀++bar", false},
{"foo𠀀+-bar", false},
{"foo𠀀+?bar", false},
{"foo[", false},
{"foo[^", false},
{"[]", false},
{"[^]", false},
{"[%]", false},
{"foo[^b]ar", false},
{"foo[^bar]baz", false},
{"foo[^]]bar", false},
{"foo[^%]]bar", false},
{"foo%[^bar]baz", "foo%[^bar]baz"},
{"foo%[%a]bar", false},
{"foo[b]ar", "foo[b]ar"},
{"foo[%a]bar", false},
{"foo[%b]ar", "foo[%b]ar"},
{"foo[bar", false},
{"foo[bar%", false},
{"foo[bar]baz", "foo[bar]baz"},
{"foo[bar]%a", false},
{"foo[bar%abaz]", false},
{"foo[bar%bbaz]", "foo[bar%bbaz]"},
{"foo[bar%zbaz]", "foo[bar%zbaz]"},
{"foo[barжbaz]", false},
{"foo[barကbaz]", false},
{"foo[bar𠀀baz]", false},
{"foo[bar%жbaz]", false},
{"foo[bar%ကbaz]", false},
{"foo[bar%𠀀baz]", false},
{"foo[]bar%abaz]", false},
{"foo[]bar%bbaz]", "foo[]bar%bbaz]"},
{"foo[]bar%zbaz]", "foo[]bar%zbaz]"},
{"foo[]barжbaz]", false},
{"foo[]barကbaz]", false},
{"foo[]bar𠀀baz]", false},
{"foo[]bar%жbaz]", false},
{"foo[]bar%ကbaz]", false},
{"foo[]bar%𠀀baz]", false},
{"foo[%]bar%abaz]", false},
{"foo[%]bar%bbaz]", "foo[%]bar%bbaz]"},
{"foo[%]bar%zbaz]", "foo[%]bar%zbaz]"},
{"foo[%]barжbaz]", false},
{"foo[%]barကbaz]", false},
{"foo[%]bar𠀀baz]", false},
{"foo[%]bar%жbaz]", false},
{"foo[%]bar%ကbaz]", false},
{"foo[%]bar%𠀀baz]", false},
{"foo[bar%]baz%a]", false},
{"foo[bar%]baz%b]", "foo[bar%]baz%b]"},
{"foo[bar%]baz%z]", "foo[bar%]baz%z]"},
{"foo[bar%]bazж]", false},
{"foo[bar%]bazက]", false},
{"foo[bar%]baz𠀀]", false},
{"foo[bar%]baz%ж]", false},
{"foo[bar%]baz%က]", false},
{"foo[bar%]baz%𠀀]", false},
{"foo[bar%]%abaz]", false},
{"foo[bar%]%bbaz]", "foo[bar%]%bbaz]"},
{"foo[bar%]%zbaz]", "foo[bar%]%zbaz]"},
{"foo[bar%]жbaz]", false},
{"foo[bar%]ကbaz]", false},
{"foo[bar%]𠀀baz]", false},
{"foo[bar%]%жbaz]", false},
{"foo[bar%]%ကbaz]", false},
{"foo[bar%]%𠀀baz]", false},
{"foo[bar%%abaz]", "foo[bar%%abaz]"},
{"foo[bar%%bbaz]", "foo[bar%%bbaz]"},
{"foo[bar%%zbaz]", "foo[bar%%zbaz]"},
{"foo[bar%%жbaz]", false},
{"foo[bar%%ကbaz]", false},
{"foo[bar%%𠀀baz]", false},
{"foo[bar%%%жbaz]", false},
{"foo[bar%%%ကbaz]", false},
{"foo[bar%%%𠀀baz]", false},
{"foo[bar]*baz", "foo[bar]*baz"},
{"foo[bar]+baz", "foo[bar]+baz"},
{"foo[bar]-baz", "foo[bar]-baz"},
{"foo[bar]?baz", "foo[bar]?baz"},
{"foo[bar]**baz", "foo[bar]**baz"},
{"foo[bar]++baz", "foo[bar]++baz"},
{"foo[bar]--baz", "foo[bar]--baz"},
{"foo[bar]??baz", "foo[bar]??baz"},
{"foo[БАР]baz", "foo\208[\144-\145\160]baz"},
{"foo[БА%", false},
{"foo[%БАР]baz", "foo\208[\144-\145\160]baz"},
{"foo[Б%АР]baz", "foo\208[\144-\145\160]baz"},
{"foo[%Б%А%Р]baz", "foo\208[\144-\145\160]baz"},
{"foo[%Б%a%Р]baz", false},
{"foo[БАР]*baz", false},
{"foo[БАР]+baz", "foo\208[\144-\145\160\208]*[\144-\145\160]baz"},
{"foo[БАР]-baz", false},
{"foo[БАР]?baz", false},
{"foo[БАР]+*baz", "foo\208[\144-\145\160\208]*[\144-\145\160]%*baz"},
{"foo[БАР]++baz", "foo\208[\144-\145\160\208]*[\144-\145\160]%+baz"},
{"foo[БАР]+-baz", "foo\208[\144-\145\160\208]*[\144-\145\160]%-baz"},
{"foo[БАР]+?baz", "foo\208[\144-\145\160\208]*[\144-\145\160]%?baz"},
{"foo[БАРbaz]qux", false},
{"foo[bar%Б]baz", false},
{"foo[БАР%e]baz", false},
{"foo[бар]baz", false},
{"foo[бар]*baz", false},
{"foo[бар]+baz", false},
{"foo[бар]-baz", false},
{"foo[бар]?baz", false},
{"foo[バー]baz", "foo\227\131[\144\188]baz"},
{"foo[バー]*baz", false},
{"foo[バー]+baz", false},
{"foo[バー]-baz", false},
{"foo[バー]?baz", false},
{"foo%f", false},
{"foo%fbar", false},
{"foo%f[", false},
{"foo%f[^", false},
{"%f[]", false},
{"%f[^]", false},
{"%f[%]", false},
{"foo%f[^b]ar", false},
{"foo%f[^bar]baz", false},
{"foo%f[^]]bar", false},
{"foo%f[^%]]bar", false},
{"foo%f%[^bar]baz", false},
{"foo%f%[%a]bar", false},
{"foo%f[b]ar", "foo%f[b]ar"},
{"foo%f[%a]bar", false},
{"foo%f[%b]ar", "foo%f[%b]ar"},
{"foo%f[bar", false},
{"foo%f[bar%", false},
{"foo%f[bar]baz", "foo%f[bar]baz"},
{"foo%f[bar]%a", false},
{"foo%f[bar%abaz]", false},
{"foo%f[bar%bbaz]", "foo%f[bar%bbaz]"},
{"foo%f[bar%zbaz]", "foo%f[bar%zbaz]"},
{"foo%f[barжbaz]", false},
{"foo%f[barကbaz]", false},
{"foo%f[bar𠀀baz]", false},
{"foo%f[bar%жbaz]", false},
{"foo%f[bar%ကbaz]", false},
{"foo%f[bar%𠀀baz]", false},
{"foo%f[]bar%abaz]", false},
{"foo%f[]bar%bbaz]", "foo%f[]bar%bbaz]"},
{"foo%f[]bar%zbaz]", "foo%f[]bar%zbaz]"},
{"foo%f[]barжbaz]", false},
{"foo%f[]barကbaz]", false},
{"foo%f[]bar𠀀baz]", false},
{"foo%f[]bar%жbaz]", false},
{"foo%f[]bar%ကbaz]", false},
{"foo%f[]bar%𠀀baz]", false},
{"foo%f[%]bar%abaz]", false},
{"foo%f[%]bar%bbaz]", "foo%f[%]bar%bbaz]"},
{"foo%f[%]bar%zbaz]", "foo%f[%]bar%zbaz]"},
{"foo%f[%]barжbaz]", false},
{"foo%f[%]barကbaz]", false},
{"foo%f[%]bar𠀀baz]", false},
{"foo%f[%]bar%жbaz]", false},
{"foo%f[%]bar%ကbaz]", false},
{"foo%f[%]bar%𠀀baz]", false},
{"foo%f[bar%]baz%a]", false},
{"foo%f[bar%]baz%b]", "foo%f[bar%]baz%b]"},
{"foo%f[bar%]baz%z]", "foo%f[bar%]baz%z]"},
{"foo%f[bar%]bazж]", false},
{"foo%f[bar%]bazက]", false},
{"foo%f[bar%]baz𠀀]", false},
{"foo%f[bar%]baz%ж]", false},
{"foo%f[bar%]baz%က]", false},
{"foo%f[bar%]baz%𠀀]", false},
{"foo%f[bar%]%abaz]", false},
{"foo%f[bar%]%bbaz]", "foo%f[bar%]%bbaz]"},
{"foo%f[bar%]%zbaz]", "foo%f[bar%]%zbaz]"},
{"foo%f[bar%]жbaz]", false},
{"foo%f[bar%]ကbaz]", false},
{"foo%f[bar%]𠀀baz]", false},
{"foo%f[bar%]%жbaz]", false},
{"foo%f[bar%]%ကbaz]", false},
{"foo%f[bar%]%𠀀baz]", false},
{"foo%f[bar%%abaz]", "foo%f[bar%%abaz]"},
{"foo%f[bar%%bbaz]", "foo%f[bar%%bbaz]"},
{"foo%f[bar%%zbaz]", "foo%f[bar%%zbaz]"},
{"foo%f[bar%%жbaz]", false},
{"foo%f[bar%%ကbaz]", false},
{"foo%f[bar%%𠀀baz]", false},
{"foo%f[bar%%%жbaz]", false},
{"foo%f[bar%%%ကbaz]", false},
{"foo%f[bar%%%𠀀baz]", false},
{"foo%f[bar]*baz", "foo%f[bar]*baz"},
{"foo%f[bar]+baz", "foo%f[bar]+baz"},
{"foo%f[bar]-baz", "foo%f[bar]-baz"},
{"foo%f[bar]?baz", "foo%f[bar]?baz"},
{"foo%f[bar]**baz", "foo%f[bar]**baz"},
{"foo%f[bar]++baz", "foo%f[bar]++baz"},
{"foo%f[bar]--baz", "foo%f[bar]--baz"},
{"foo%f[bar]??baz", "foo%f[bar]??baz"},
{"foo%f[БАР]baz", false},
{"foo%f[БА%", false},
{"foo%f[%БАР]baz", false},
{"foo%f[Б%АР]baz", false},
{"foo%f[%Б%А%Р]baz", false},
{"foo%f[%Б%a%Р]baz", false},
{"foo%f[БАР]*baz", false},
{"foo%f[БАР]+baz", false},
{"foo%f[БАР]-baz", false},
{"foo%f[БАР]?baz", false},
{"foo%f[БАРbaz]qux", false},
{"foo%f[bar%Б]baz", false},
{"foo%f[БАР%e]baz", false},
{"foo%f[бар]baz", false},
{"foo%f[бар]*baz", false},
{"foo%f[бар]+baz", false},
{"foo%f[бар]-baz", false},
{"foo%f[бар]?baz", false},
{"foo%f[バー]baz", false},
{"foo%f[バー]*baz", false},
{"foo%f[バー]+baz", false},
{"foo%f[バー]-baz", false},
{"foo%f[バー]?baz", false},
}
self:iterate(examples, "check_pattern_simplifier")
end
return tests