Module:string utilities/testcases
Jump to navigation
Jump to search
- 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ж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 | 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[^a]bar | false | false | |
![]() | [^] | false | false | |
![]() | foo%[^a]bar | foo%[^a]bar | foo%[^a]bar | |
![]() | 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%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 | 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[БАР]*baz | false | false | |
![]() | foo[БАР]+baz | foo�[�-���]*[�-��]baz | foo�[�-���]*[�-��]baz | |
![]() | foo[БАР]-baz | false | false | |
![]() | foo[БАР]?baz | false | false | |
![]() | 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[bar]baz | foo%f[bar]baz | foo%f[bar]baz | |
![]() | 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\194-\244][\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\194-\244][\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]*"},
{"foo.-.", "foo.-[^\128-\191][\128-\191]*"},
{"foo.?.", "foo[^\128-\191]?[\128-\191]*[^\128-\191][\128-\191]*"},
{"foo%Z*%Z", "foo%Z*[\1-\127\194-\244][\128-\191]*"},
{"foo%Z+%Z", "foo%Z+[\1-\127\194-\244][\128-\191]*"},
{"foo%Z-%Z", "foo%Z-[\1-\127\194-\244][\128-\191]*"},
{"foo%Z?%Z", "foo[\1-\127\194-\244]?[\128-\191]*[\1-\127\194-\244][\128-\191]*"},
{"fooжbar", "fooжbar"},
{"fooж*bar", false},
{"fooж+bar", "foo\208[ж]*\182bar"},
{"fooж-bar", false},
{"fooж?bar", false},
{"fooကbar", "fooကbar"},
{"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[^a]bar", false},
{"[^]", false},
{"foo%[^a]bar", "foo%[^a]bar"},
{"foo[bar", false},
{"foo[bar]baz", "foo[bar]baz"},
{"foo[bar]%a", false},
{"foo[bar%abaz]", false},
{"foo[bar%zbaz]", "foo[bar%zbaz]"},
{"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[БАР]baz", "foo\208[\144-\145\160]baz"},
{"foo[БАР]*baz", false},
{"foo[БАР]+baz", "foo\208[\144-\145\160\208]*[\144-\145\160]baz"},
{"foo[БАР]-baz", false},
{"foo[БАР]?baz", false},
{"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[bar]baz", "foo%f[bar]baz"},
{"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