Module:String/testcases
Appearance
![]() | This is the test cases page for the module Module:String. Results of the test cases. |
-- Unit tests for [[Module:String]]. Click talk page to run tests.localp=require('Module:UnitTests')functionp:test_len()self:preprocess_equals_many('{{#invoke:String/sandbox|len|','}}',{{' foo ','5'},{'s= foo ','3'},{'','0'},{'s=','0'},{' ','3'},{'最近の更新','5'},})endfunctionp:test_replace()self:preprocess_equals_many('{{#invoke:String/sandbox|replace|','}}',{{'1.1.1.1|.|/','1/1/1/1'},{'alpha (beta)| (| gamma (','alpha gamma (beta)'},{'Dog (cat)|%s%(.*%)||plain=false','Dog'},})endfunctionp:test_match()self:preprocess_equals_many('{{#invoke:String/sandbox|match|','}}',{{'dog (cat)|%((%a-)%)','cat'},{'dog (cat) (canary) (fish)|%((%a-)%)||-1','fish'},{'dog (cat) (canary) (fish)|%((%a-)%)||2','canary'},{'dog (cat) (canary) (fish)|%((%a-)%)|6|1','canary'},{'dog (cat) (canary) (fish)|%((%a-)%)|6|2','fish'},{'dog (cat)|%((%a-)%)||2|no_category=true','<strong class="error">String Module Error: Match not found</strong>'},{'dog (cat)|%((%a-)%)||2|ignore_errors=true',''},})endfunctionp:test_match()localcases={{'dog (cat)|%((%a-)%)','cat'},{'dog (cat) (canary) (fish)|%((%a-)%)||-1','fish'},{'dog (cat) (canary) (fish)|%((%a-)%)||2','canary'},{'dog (cat) (canary) (fish)|%((%a-)%)|6|1','canary'},{'dog (cat) (canary) (fish)|%((%a-)%)|6|2','fish'},{'dog (cat)|%((%a-)%)||2|no_category=true','<strong class="error">String Module Error: Match not found</strong>'},{'dog (cat)|%((%a-)%)||2|ignore_errors=true',''},}self:preprocess_equals_many('{{#invoke:String|match|','}}',cases)self:preprocess_equals_many('{{#invoke:String/sandbox|match|','}}',cases)endfunctionp:test_match_reverse()localcases={{'a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-1','6'},{'a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-2','5'},{'a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-4','3'},{'a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-5','2'},{'a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-6','1'},{'a (1) (2) (3) (4) (5) (6) (a)|%((%d)%)||-7|no_category=true','<strong class="error">String Module Error: Match not found</strong>'},}self:preprocess_equals_many('{{#invoke:String|match|','}}',cases)self:preprocess_equals_many('{{#invoke:String/sandbox|match|','}}',cases)endfunctionp:test_find()self:preprocess_equals_many('{{#invoke:String/sandbox|find|','}}',{{'','0'},{'source=','0'},{'source=|target=','0'},{'source=|target=Bob','0'},{'Bob|Joe','0'},{'Bob|b','3'},{'Bob Joe|oe','6'},{'source= Bob |o','2'},{' Bob |o','3'},{'높지만 급격히|만','3'},{'source=BAAAB|target=%w|plain=false','1'},{'source=BAAAB|target=%w|start=3|plain=false','3'},{'source=BAAAB|target=(%w)%1|plain=false','2'},})endfunctionp:test_rep()self:preprocess_equals_many('{{#invoke:String|rep|','}}',{{'abc|1','abc'},{'a b|7','a ba ba ba ba ba ba b'},{'bla|glug|no_category=true','<strong class="error">String Module Error: function rep expects a number as second parameter, received "glug"</strong>'},{'bla|glug|ignore_errors=true',''},{'àèò|3','àèòàèòàèò'}})self:preprocess_equals_many('{{#invoke:String/sandbox|rep|','}}',{{'abc|1','abc'},{'a b|7','a ba ba ba ba ba ba b'},{'bla|glug|no_category=true','<strong class="error">String Module Error: function rep expects a number as second parameter, received "glug"</strong>'},{'bla|glug|ignore_errors=true',''},{'àèò|3','àèòàèòàèò'}})endfunctionp:test_escapePattern()self:preprocess_equals_many('{{#invoke:String/sandbox|escapePattern|','}}',{{'foo','foo'},{'A.D.','A%.D%.'},{'0123','0123'},{'^','%^'},{'$','%$'},{'(','%('},{')','%)'},{'%','%%'},{'.','%.'},{'[','%['},{']','%]'},{'*','%*'},{'+','%+'},{'-','%-'},{'?','%?'},{'!','!'},{'"','"'},{'&','&'},{"'","'"},{'{','{'},{'}','}'},{'`','`'},{'@','@'},{',',','},{'<','<'},{'>','>'},{'/','/'},{'_','_'},{'\\','\\'},{'~','~'},{' ',' '},{'',''},{'x#','x#'},-- We can't just test "#" because it will be interpreted as a list{'x;','x;'},-- We can't just test ";" because it will be interpreted as a list{'x:','x:'},-- We can't just test ":" because it will be interpreted as a list{'{{!}}','|'},-- Need to escape the template pipe syntax{'1==','='},-- Need to escape the "foo = bar" template syntax{'no_category=true','<strong class="error">String Module Error: No pattern string specified</strong>'},})endfunctionp:test_join()self:preprocess_equals_many('{{#invoke:String/sandbox|join|','}}',{{'',''},{'X',''},{'X|a','a'},{'X|a|b','aXb'},{'X|a|b|c','aXbXc'},{'X|a|b|c|d','aXbXcXd'},{'X|a|b||d','aXbXd'},{'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'}})endreturnp