All 104 tests passed.

test_escapePattern

test_escapePattern
Text Expected Actual
 Y {{#invoke:String/sandbox|escapePattern|foo}} foo foo
 Y {{#invoke:String/sandbox|escapePattern|A.D.}} A%.D%. A%.D%.
 Y {{#invoke:String/sandbox|escapePattern|0123}} 0123 0123
 Y {{#invoke:String/sandbox|escapePattern|^}} %^ %^
 Y {{#invoke:String/sandbox|escapePattern|$}} %$ %$
 Y {{#invoke:String/sandbox|escapePattern|(}} %( %(
 Y {{#invoke:String/sandbox|escapePattern|)}} %) %)
 Y {{#invoke:String/sandbox|escapePattern|%}} %% %%
 Y {{#invoke:String/sandbox|escapePattern|.}} %. %.
 Y {{#invoke:String/sandbox|escapePattern|[}} %[ %[
 Y {{#invoke:String/sandbox|escapePattern|]}} %] %]
 Y {{#invoke:String/sandbox|escapePattern|*}} %* %*
 Y {{#invoke:String/sandbox|escapePattern|+}} %+ %+
 Y {{#invoke:String/sandbox|escapePattern|-}} %- %-
 Y {{#invoke:String/sandbox|escapePattern|?}} %? %?
 Y {{#invoke:String/sandbox|escapePattern|!}} ! !
 Y {{#invoke:String/sandbox|escapePattern|"}} " "
 Y {{#invoke:String/sandbox|escapePattern|&}} & &
 Y {{#invoke:String/sandbox|escapePattern|'}} ' '
 Y {{#invoke:String/sandbox|escapePattern|{}} { {
 Y {{#invoke:String/sandbox|escapePattern|}}} } }
 Y {{#invoke:String/sandbox|escapePattern|`}} ` `
 Y {{#invoke:String/sandbox|escapePattern|@}} @ @
 Y {{#invoke:String/sandbox|escapePattern|,}} , ,
 Y {{#invoke:String/sandbox|escapePattern|<}} < <
 Y {{#invoke:String/sandbox|escapePattern|>}} > >
 Y {{#invoke:String/sandbox|escapePattern|/}} / /
 Y {{#invoke:String/sandbox|escapePattern|_}} _ _
 Y {{#invoke:String/sandbox|escapePattern|\}} \ \
 Y {{#invoke:String/sandbox|escapePattern|~}} ~ ~
 Y {{#invoke:String/sandbox|escapePattern| }}
 Y {{#invoke:String/sandbox|escapePattern|}}
 Y {{#invoke:String/sandbox|escapePattern|x#}} x# x#
 Y {{#invoke:String/sandbox|escapePattern|x;}} x; x;
 Y {{#invoke:String/sandbox|escapePattern|x:}} x: x:
 Y {{#invoke:String/sandbox|escapePattern|{{!}}}}
 Y {{#invoke:String/sandbox|escapePattern|1==}} = =
 Y {{#invoke:String/sandbox|escapePattern|no_category=true}} String Module Error: No pattern string specified String Module Error: No pattern string specified

test_find

test_find
Text Expected Actual
 Y {{#invoke:String/sandbox|find|}} 0 0
 Y {{#invoke:String/sandbox|find|source=}} 0 0
 Y {{#invoke:String/sandbox|find|source=|target=}} 0 0
 Y {{#invoke:String/sandbox|find|source=|target=Bob}} 0 0
 Y {{#invoke:String/sandbox|find|Bob|Joe}} 0 0
 Y {{#invoke:String/sandbox|find|Bob|b}} 3 3
 Y {{#invoke:String/sandbox|find|Bob Joe|oe}} 6 6
 Y {{#invoke:String/sandbox|find|source= Bob |o}} 2 2
 Y {{#invoke:String/sandbox|find| Bob |o}} 3 3
 Y {{#invoke:String/sandbox|find|높지만 급격히|만}} 3 3
 Y {{#invoke:String/sandbox|find|source=BAAAB|target=%w|plain=false}} 1 1
 Y {{#invoke:String/sandbox|find|source=BAAAB|target=%w|start=3|plain=false}} 3 3
 Y {{#invoke:String/sandbox|find|source=BAAAB|target=(%w)%1|plain=false}} 2 2

test_join

test_join
Text Expected Actual
 Y {{#invoke:String/sandbox|join|}}
 Y {{#invoke:String/sandbox|join|X}}
 Y {{#invoke:String/sandbox|join|X|a}} a a
 Y {{#invoke:String/sandbox|join|X|a|b}} aXb aXb
 Y {{#invoke:String/sandbox|join|X|a|b|c}} aXbXc aXbXc
 Y {{#invoke:String/sandbox|join|X|a|b|c|d}} aXbXcXd aXbXcXd
 Y {{#invoke:String/sandbox|join|X|a|b||d}} aXbXd aXbXd
 Y {{#invoke:String/sandbox|join|X|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z}} aXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXz aXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXz

test_len

test_len
Text Expected Actual
 Y {{#invoke:String/sandbox|len| foo }} 5 5
 Y {{#invoke:String/sandbox|len|s= foo }} 3 3
 Y {{#invoke:String/sandbox|len|}} 0 0
 Y {{#invoke:String/sandbox|len|s=}} 0 0
 Y {{#invoke:String/sandbox|len| }} 3 3
 Y {{#invoke:String/sandbox|len|最近の更新}} 5 5

test_match

test_match
Text Expected Actual
 Y {{#invoke:String|match|dog (cat)|%((%a-)%)}} cat cat
 Y {{#invoke:String|match|dog (cat) (canary) (fish)|%((%a-)%)||-1}} fish fish
 Y {{#invoke:String|match|dog (cat) (canary) (fish)|%((%a-)%)||2}} canary canary
 Y {{#invoke:String|match|dog (cat) (canary) (fish)|%((%a-)%)|6|1}} canary canary
 Y {{#invoke:String|match|dog (cat) (canary) (fish)|%((%a-)%)|6|2}} fish fish
 Y {{#invoke:String|match|dog (cat)|%((%a-)%)||2|no_category=true}} String Module Error: Match not found String Module Error: Match not found
 Y {{#invoke:String|match|dog (cat)|%((%a-)%)||2|ignore_errors=true}}
 Y {{#invoke:String/sandbox|match|dog (cat)|%((%a-)%)}} cat cat
 Y {{#invoke:String/sandbox|match|dog (cat) (canary) (fish)|%((%a-)%)||-1}} fish fish
 Y {{#invoke:String/sandbox|match|dog (cat) (canary) (fish)|%((%a-)%)||2}} canary canary
 Y {{#invoke:String/sandbox|match|dog (cat) (canary) (fish)|%((%a-)%)|6|1}} canary canary
 Y {{#invoke:String/sandbox|match|dog (cat) (canary) (fish)|%((%a-)%)|6|2}} fish fish
 Y {{#invoke:String/sandbox|match|dog (cat)|%((%a-)%)||2|no_category=true}} String Module Error: Match not found String Module Error: Match not found
 Y {{#invoke:String/sandbox|match|dog (cat)|%((%a-)%)||2|ignore_errors=true}}

test_match_reverse

test_match_reverse
Text Expected Actual
 Y {{#invoke:String|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-1}} 6 6
 Y {{#invoke:String|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-2}} 5 5
 Y {{#invoke:String|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-4}} 3 3
 Y {{#invoke:String|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-5}} 2 2
 Y {{#invoke:String|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-6}} 1 1
 Y {{#invoke:String|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-7|no_category=true}} String Module Error: Match not found String Module Error: Match not found
 Y {{#invoke:String/sandbox|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-1}} 6 6
 Y {{#invoke:String/sandbox|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-2}} 5 5
 Y {{#invoke:String/sandbox|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-4}} 3 3
 Y {{#invoke:String/sandbox|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-5}} 2 2
 Y {{#invoke:String/sandbox|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-6}} 1 1
 Y {{#invoke:String/sandbox|match|a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-7|no_category=true}} String Module Error: Match not found String Module Error: Match not found

test_rep

test_rep
Text Expected Actual
 Y {{#invoke:String|rep|abc|1}} abc abc
 Y {{#invoke:String|rep|a b|7}} a ba ba ba ba ba ba b a ba ba ba ba ba ba b
 Y {{#invoke:String|rep|bla|glug|no_category=true}} String Module Error: function rep expects a number as second parameter, received "glug" String Module Error: function rep expects a number as second parameter, received "glug"
 Y {{#invoke:String|rep|bla|glug|ignore_errors=true}}
 Y {{#invoke:String|rep|àèò|3}} àèòàèòàèò àèòàèòàèò
 Y {{#invoke:String/sandbox|rep|abc|1}} abc abc
 Y {{#invoke:String/sandbox|rep|a b|7}} a ba ba ba ba ba ba b a ba ba ba ba ba ba b
 Y {{#invoke:String/sandbox|rep|bla|glug|no_category=true}} String Module Error: function rep expects a number as second parameter, received "glug" String Module Error: function rep expects a number as second parameter, received "glug"
 Y {{#invoke:String/sandbox|rep|bla|glug|ignore_errors=true}}
 Y {{#invoke:String/sandbox|rep|àèò|3}} àèòàèòàèò àèòàèòàèò

test_replace

test_replace
Text Expected Actual
 Y {{#invoke:String/sandbox|replace|1.1.1.1|.|/}} 1/1/1/1 1/1/1/1
 Y {{#invoke:String/sandbox|replace|alpha (beta)| (| gamma (}} alpha gamma (beta) alpha gamma (beta)
 Y {{#invoke:String/sandbox|replace|Dog (cat)|%s%(.*%)||plain=false}} Dog Dog