Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Text/sandbox/testcases
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = require('Module:UnitTests') local Text = require('Module:Text/sandbox').Text() -- Tests re-written in Lua from https://de.wikipedia.org/wiki/Wikipedia:Lua/Modul/Text/Test version 198988523 function p:testChar() self:equals('',Text.char(),'') self:equals('<code>{65,104,97}</code>',Text.char({65,104,97}),'Aha') self:equals('<code>{"65",104,97}</code>',Text.char({"65",104,97}),'Aha') self:equals('<code>{98,108,97},2</code>',Text.char({98,108,97},2),'blabla') self:equals('<code>{"something"}</code>',mw.ustring.match(Text.char({'something'}),"error"),"error") self:equals('<code>"something",1,true</code>',Text.char('something',1,true),'') self:equals('<code>{7,8,9}</code>',mw.ustring.match(Text.char({7,8,9}),"error"),"error") self:preprocess_equals('{{#invoke:Text/sandbox|char|65 104 97}}','Aha') self:preprocess_equals('{{#invoke:Text/sandbox|char|98 108 97|*=2}}','blabla') self:preprocess_equals('{{#invoke:Text/sandbox|char|something|errors=0}}','') end function p:testConcatParams() self:equals('',Text.concatParams(),'') self:equals('<code>{}</code>',Text.concatParams({}),'') self:equals('<code>A</code>',Text.concatParams('A'),'A') self:equals('<code>{"A"}</code>',Text.concatParams({'A'}),'A') self:equals('<code>{"A","B","C"}</code>',Text.concatParams({'A','B','C'}),'A|B|C',{nowiki=1}) self:equals('<code>{"A","B","C"},"-"</code>',Text.concatParams({'A','B','C'},'-'),'A-B-C') self:equals('<code>{"1","2","3"},nil,"%.2f"</code>',Text.concatParams({'1','2','3'},nil,'%.2f'),'1.00|2.00|3.00',{nowiki=1}) self:preprocess_equals('{{#invoke:Text/sandbox|concatParams|1|2|3|separator=:|format=%.2f}}', '1.00:2.00:3.00') end function p:testListToText() self:equals('',Text.listToText(),'') self:equals('<code>{}</code>',Text.listToText({}),'') self:equals('<code>A</code>',Text.listToText('A'),'A') self:equals('<code>{"A"}</code>',Text.listToText({'A'}),'A') self:equals('<code>{"A","B","C"}</code>',Text.listToText({'A','B','C'}),'A, B and C') self:equals('<code>{"1","2","3"},"%.2f"</code>',Text.listToText({'1','2','3'},'%.2f'),'1.00, 2.00 and 3.00') self:preprocess_equals('{{#invoke:Text/sandbox|listToText|1|2|3|format=%.2f}}', '1.00, 2.00 and 3.00') end function p:testContainsCJK() local function singleTest(arg, expected) self:equals('<code>'..arg..'</code>',Text.containsCJK(arg),expected) end self:equals('',Text.containsCJK(),false) singleTest('Draco Dormiens Nunquam Titillandus',false) singleTest('Никогда не щекочи спящего дракона',false) singleTest('सोए शेर को न जगाओ',false) singleTest('永远不要惊醒卧龙',true) singleTest('眠っているドラゴンをくすぐることはありません',true) singleTest('잠자는 용을 간지럽히지 마십시오',true) end function p:testGetPlain() local function singleTest(arg, expected) self:equals('<code><nowiki>'..arg..'</nowiki></code>', Text.getPlain(arg),expected) end singleTest('a and b','a and b') singleTest('a<!--comment-->b','ab') singleTest(' <!--comment-->hello, world<!--comment 2--> ',' hello, world ') singleTest('a <nowiki>b</nowiki> c','a b c') singleTest("'''a'''","a") singleTest("''b''","b") singleTest("'''a''' and ''b''","a and b") singleTest("a and b","a and b") singleTest("'''a'' and '''b''","a and b") singleTest("a<!--I am an unclosed comment","a") singleTest("'''unclosed bold","unclosed bold") singleTest("<!-- hello -- -->'''a''' <!--world-->''<nowiki>b</nowiki>''","a b") singleTest("<b>a</b> '''b'''<!-- hello -- world -->, <div style='font-size:100%;'>c</div>","a b, c") end function p:testRemoveDelimited() self:equals('comment',Text.removeDelimited('a<!--comment-->b','<!--','-->'),'ab') self:equals('2 comments',Text.removeDelimited(' <!--comment-->hello, world<!--comment 2--> ','<!--','-->'),' hello, world ') self:equals('ref',Text.removeDelimited('in foo.<ref name=foo>{{cite web|title=Title|url=https://www.example.com}}</ref>','<ref','</ref>'),'in foo.') end function p:testIsLatin() local function singleTest(arg,expected) self:equals('<code>'..arg..'</code>',Text.isLatinRange(arg),expected) end self:equals('',Text.isLatinRange(),true) singleTest('abcd',true) singleTest('Ça ira',true) singleTest('α – Ω',false) singleTest('a日本d',false) end function p:testIsQuote() local function singleTest(arg,expected) self:equals('<code>'..arg..'</code>',Text.isQuote(arg),expected) end self:equals('',Text.isQuote(),false) singleTest('"',true) singleTest('日',false) singleTest('abc"',false) end function p:testQuote() self:equals('',Text.quote(),'“”') self:equals('<code>abcd</code>',Text.quote('abcd'),'“abcd”') self:equals('<code>"abcd"</code>',Text.quote('"abcd"'),'“"abcd"”') self:equals('fr',Text.quote('abcd','fr'),'« abcd »') self:equals('fr2',Text.quote('abcd','fr',2),'‹ abcd ›') end function p:testQuoteUnquoted() self:equals('',Text.quoteUnquoted(),'') self:equals('<code>abcd</code>',Text.quoteUnquoted('abcd'),'“abcd”') self:equals('<code>"abcd"</code>',Text.quoteUnquoted('"abcd"'),'"abcd"') self:equals('fr',Text.quoteUnquoted('abcd','fr'),'« abcd »') self:equals('fr2',Text.quoteUnquoted('abcd','fr',2),'‹ abcd ›') end function p:testRemoveDiacritics() local function singleTest(arg,expected) self:equals('<code>'..arg..'</code>',Text.removeDiacritics(arg),expected) end self:equals('',Text.removeDiacritics(),'') singleTest('abcd','abcd') singleTest('âbçdé','abcde') singleTest('a日本d','a日本d') end function p:testSentenceTerminated() local function singleTest(arg,expected) self:equals('<code><nowiki>'..arg..'</nowiki></code>', Text.sentenceTerminated(arg),expected) end singleTest('Hello',false) singleTest('(Hello)',false) singleTest('Hello.',true) singleTest('„Deutsche“',false) singleTest('„Deutsche?“',true) singleTest('"English?"',true) singleTest('[[Hello!]]',true) end function p:testUCFirstAll() local function singleTest(arg,expected) self:equals('<code>'..tostring(arg)..'</code>',Text.ucfirstAll(arg),expected) end self:equals('',Text.ucfirstAll(),'') singleTest(25,'25') singleTest('Help test me','Help Test Me') singleTest('an der Schönen','An Der Schönen') singleTest('an der Schönen &lauen','An Der Schönen &Lauen') self:equals('HTML ndash',Text.ucfirstAll('an der Schönen &lauen donau – X y z'), 'An Der Schönen &Lauen Donau '..mw.text.decode('–',true)..' X Y Z') self:equals('HTML nbsp',Text.ucfirstAll('a b'),'A B') self:equals('many HTML',Text.ucfirstAll("&<>  ‌‍‎‏"), '&<> '..mw.text.decode(" ‌‍‎‏")) end function p:testUprightNonLatin() local function singleTest(arg,expected) self:equals('<code>'..arg..'</code>',Text.uprightNonlatin(arg),expected) end singleTest('abc','abc') singleTest('abc ','abc ') singleTest('Mutsṭafah','Mutsṭafah') singleTest('μm','μm') singleTest('1 α-particle','1 α-particle') singleTest('Method 3α','Method 3α') singleTest('ΣΨΩ',"<span dir='auto' style='font-style:normal'>ΣΨΩ</span>") singleTest('abcΣΨΩxyz', "abc<span dir='auto' style='font-style:normal'>ΣΨΩ</span>xyz") singleTest('abЩyz',"ab<span dir='auto' style='font-style:normal'>Щ</span>yz") singleTest('Войната 1915 година. Втора Македония', "<span dir='auto' style='font-style:normal'>Войната 1915 година. Втора Македония</span>") singleTest('a日本d',"a<span dir='auto' style='font-style:normal'>日本</span>d") end function p:testExport() self:preprocess_equals('{{#invoke:Text/sandbox|containsCJK|a}}',"") self:preprocess_equals('{{#invoke:Text/sandbox|containsCJK|日}}',"1") self:preprocess_equals('{{#invoke:Text/sandbox|isLatinRange|日}}',"") self:preprocess_equals('{{#invoke:Text/sandbox|isLatinRange|a}}',"1") self:preprocess_equals('{{#invoke:Text/sandbox|isQuote|日}}',"") self:preprocess_equals('{{#invoke:Text/sandbox|isQuote|„}}',"1") self:preprocess_equals('{{#invoke:Text/sandbox|sentenceTerminated|日}}',"") self:preprocess_equals('{{#invoke:Text/sandbox|sentenceTerminated|a.}}',"1") self:preprocess_equals('{{#invoke:Text/sandbox|getPlain|a}}',"a") self:preprocess_equals('{{#invoke:Text/sandbox|removeDiacritics|a}}',"a") self:preprocess_equals('{{#invoke:Text/sandbox|ucfirstAll|a}}',"A") self:preprocess_equals('{{#invoke:Text/sandbox|uprightNonlatin|a}}',"a") end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Text/sandbox/testcases/doc
(
edit
)