<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://idugov.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AText%2Ftestcases</id>
	<title>Module:Text/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://idugov.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AText%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://idugov.com/w/index.php?title=Module:Text/testcases&amp;action=history"/>
	<updated>2026-07-10T05:27:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://idugov.com/w/index.php?title=Module:Text/testcases&amp;diff=34509&amp;oldid=prev</id>
		<title>Sanctaria: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://idugov.com/w/index.php?title=Module:Text/testcases&amp;diff=34509&amp;oldid=prev"/>
		<updated>2023-05-23T12:37:04Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:37, 23 May 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sanctaria</name></author>
	</entry>
	<entry>
		<id>https://idugov.com/w/index.php?title=Module:Text/testcases&amp;diff=34508&amp;oldid=prev</id>
		<title>en&gt;Hike395: fix output fmt</title>
		<link rel="alternate" type="text/html" href="https://idugov.com/w/index.php?title=Module:Text/testcases&amp;diff=34508&amp;oldid=prev"/>
		<updated>2022-07-21T15:26:10Z</updated>

		<summary type="html">&lt;p&gt;fix output fmt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = require('Module:UnitTests')&lt;br /&gt;
local Text = require('Module:Text').Text()&lt;br /&gt;
&lt;br /&gt;
-- Tests re-written in Lua from  https://de.wikipedia.org/wiki/Wikipedia:Lua/Modul/Text/Test version 198988523&lt;br /&gt;
&lt;br /&gt;
function p:testChar()&lt;br /&gt;
	self:equals('',Text.char(),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{65,104,97}&amp;lt;/code&amp;gt;',Text.char({65,104,97}),'Aha')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;65&amp;quot;,104,97}&amp;lt;/code&amp;gt;',Text.char({&amp;quot;65&amp;quot;,104,97}),'Aha')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{98,108,97},2&amp;lt;/code&amp;gt;',Text.char({98,108,97},2),'blabla')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;something&amp;quot;}&amp;lt;/code&amp;gt;',mw.ustring.match(Text.char({'something'}),&amp;quot;error&amp;quot;),&amp;quot;error&amp;quot;)&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;&amp;quot;something&amp;quot;,1,true&amp;lt;/code&amp;gt;',Text.char('something',1,true),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{7,8,9}&amp;lt;/code&amp;gt;',mw.ustring.match(Text.char({7,8,9}),&amp;quot;error&amp;quot;),&amp;quot;error&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|char|65 104 97}}','Aha')&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|char|98 108 97|*=2}}','blabla')&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|char|something|errors=0}}','')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testConcatParams()&lt;br /&gt;
	self:equals('',Text.concatParams(),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;',Text.concatParams({}),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;',Text.concatParams('A'),'A')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;A&amp;quot;}&amp;lt;/code&amp;gt;',Text.concatParams({'A'}),'A')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;}&amp;lt;/code&amp;gt;',Text.concatParams({'A','B','C'}),'A|B|C',{nowiki=1})&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;},&amp;quot;-&amp;quot;&amp;lt;/code&amp;gt;',Text.concatParams({'A','B','C'},'-'),'A-B-C')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;3&amp;quot;},nil,&amp;quot;%.2f&amp;quot;&amp;lt;/code&amp;gt;',Text.concatParams({'1','2','3'},nil,'%.2f'),'1.00|2.00|3.00',{nowiki=1})&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|concatParams|1|2|3|separator=:|format=%.2f}}',&lt;br /&gt;
		'1.00:2.00:3.00')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testListToText()&lt;br /&gt;
	self:equals('',Text.listToText(),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;',Text.listToText({}),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;',Text.listToText('A'),'A')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;A&amp;quot;}&amp;lt;/code&amp;gt;',Text.listToText({'A'}),'A')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;}&amp;lt;/code&amp;gt;',Text.listToText({'A','B','C'}),'A, B and C')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;{&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;3&amp;quot;},&amp;quot;%.2f&amp;quot;&amp;lt;/code&amp;gt;',Text.listToText({'1','2','3'},'%.2f'),'1.00, 2.00 and 3.00')&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|listToText|1|2|3|format=%.2f}}',&lt;br /&gt;
		'1.00, 2.00 and 3.00')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testContainsCJK()&lt;br /&gt;
	local function singleTest(arg, expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;'..arg..'&amp;lt;/code&amp;gt;',Text.containsCJK(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	self:equals('',Text.containsCJK(),false)&lt;br /&gt;
	singleTest('Draco Dormiens Nunquam Titillandus',false)&lt;br /&gt;
	singleTest('Никогда не щекочи спящего дракона',false)&lt;br /&gt;
	singleTest('सोए शेर को न जगाओ',false)&lt;br /&gt;
	singleTest('永远不要惊醒卧龙',true)&lt;br /&gt;
	singleTest('眠っているドラゴンをくすぐることはありません',true)&lt;br /&gt;
	singleTest('잠자는 용을 간지럽히지 마십시오',true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testGetPlain()&lt;br /&gt;
	local function singleTest(arg, expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;'..arg..'&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;',&lt;br /&gt;
			Text.getPlain(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	singleTest('a and b','a and b')&lt;br /&gt;
	singleTest('a&amp;lt;!--comment--&amp;gt;b','ab')&lt;br /&gt;
	singleTest(' &amp;lt;!--comment--&amp;gt;hello, world&amp;lt;!--comment 2--&amp;gt; ',' hello, world ')&lt;br /&gt;
	singleTest('a &amp;lt;nowiki&amp;gt;b&amp;lt;/nowiki&amp;gt; c','a b c')&lt;br /&gt;
	singleTest(&amp;quot;'''a'''&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;''b''&amp;quot;,&amp;quot;b&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;'''a''' and ''b''&amp;quot;,&amp;quot;a and b&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;a&amp;amp;nbsp;and&amp;amp;nbsp;b&amp;quot;,&amp;quot;a and b&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;'''a'' and '''b''&amp;quot;,&amp;quot;a and b&amp;quot;)&lt;br /&gt;
    singleTest(&amp;quot;a&amp;lt;!--I am an unclosed comment&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;'''unclosed bold&amp;quot;,&amp;quot;unclosed bold&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;&amp;lt;!-- hello -- --&amp;gt;'''a'''&amp;amp;nbsp;&amp;lt;!--world--&amp;gt;''&amp;lt;nowiki&amp;gt;b&amp;lt;/nowiki&amp;gt;''&amp;quot;,&amp;quot;a b&amp;quot;)&lt;br /&gt;
	singleTest(&amp;quot;&amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&amp;amp;nbsp;'''b'''&amp;lt;!-- hello -- world --&amp;gt;,&amp;amp;nbsp;&amp;lt;div style='font-size:100%;'&amp;gt;c&amp;lt;/div&amp;gt;&amp;quot;,&amp;quot;a b, c&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testRemoveDelimited()&lt;br /&gt;
	self:equals('comment',Text.removeDelimited('a&amp;lt;!--comment--&amp;gt;b','&amp;lt;!--','--&amp;gt;'),'ab')&lt;br /&gt;
	self:equals('2 comments',Text.removeDelimited(' &amp;lt;!--comment--&amp;gt;hello, world&amp;lt;!--comment 2--&amp;gt; ','&amp;lt;!--','--&amp;gt;'),' hello, world ')&lt;br /&gt;
	self:equals('ref',Text.removeDelimited('in foo.&amp;lt;ref name=foo&amp;gt;{{cite web|title=Title|url=https://www.example.com}}&amp;lt;/ref&amp;gt;','&amp;lt;ref','&amp;lt;/ref&amp;gt;'),'in foo.')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testIsLatin()&lt;br /&gt;
	local function singleTest(arg,expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;'..arg..'&amp;lt;/code&amp;gt;',Text.isLatinRange(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	self:equals('',Text.isLatinRange(),true)&lt;br /&gt;
	singleTest('abcd',true)&lt;br /&gt;
	singleTest('Ça ira',true)&lt;br /&gt;
	singleTest('α – Ω',false)&lt;br /&gt;
	singleTest('a日本d',false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testIsQuote()&lt;br /&gt;
	local function singleTest(arg,expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;'..arg..'&amp;lt;/code&amp;gt;',Text.isQuote(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	self:equals('',Text.isQuote(),false)&lt;br /&gt;
	singleTest('&amp;quot;',true)&lt;br /&gt;
	singleTest('日',false)&lt;br /&gt;
	singleTest('abc&amp;quot;',false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testQuote()&lt;br /&gt;
	self:equals('',Text.quote(),'“”')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;abcd&amp;lt;/code&amp;gt;',Text.quote('abcd'),'“abcd”')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt;',Text.quote('&amp;quot;abcd&amp;quot;'),'“&amp;quot;abcd&amp;quot;”')&lt;br /&gt;
	self:equals('fr',Text.quote('abcd','fr'),'«&amp;amp;#160;abcd&amp;amp;#160;»')&lt;br /&gt;
	self:equals('fr2',Text.quote('abcd','fr',2),'‹&amp;amp;#160;abcd&amp;amp;#160;›')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testQuoteUnquoted()&lt;br /&gt;
	self:equals('',Text.quoteUnquoted(),'')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;abcd&amp;lt;/code&amp;gt;',Text.quoteUnquoted('abcd'),'“abcd”')&lt;br /&gt;
	self:equals('&amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt;',Text.quoteUnquoted('&amp;quot;abcd&amp;quot;'),'&amp;quot;abcd&amp;quot;')&lt;br /&gt;
	self:equals('fr',Text.quoteUnquoted('abcd','fr'),'«&amp;amp;#160;abcd&amp;amp;#160;»')&lt;br /&gt;
	self:equals('fr2',Text.quoteUnquoted('abcd','fr',2),'‹&amp;amp;#160;abcd&amp;amp;#160;›')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testRemoveDiacritics()&lt;br /&gt;
	local function singleTest(arg,expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;'..arg..'&amp;lt;/code&amp;gt;',Text.removeDiacritics(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	self:equals('',Text.removeDiacritics(),'')&lt;br /&gt;
	singleTest('abcd','abcd')&lt;br /&gt;
	singleTest('âbçdé','abcde')&lt;br /&gt;
	singleTest('a日本d','a日本d')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testSentenceTerminated()&lt;br /&gt;
	local function singleTest(arg,expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;'..arg..'&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;',&lt;br /&gt;
			Text.sentenceTerminated(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	singleTest('Hello',false)&lt;br /&gt;
	singleTest('(Hello)',false)&lt;br /&gt;
	singleTest('Hello.',true)&lt;br /&gt;
	singleTest('„Deutsche“',false)&lt;br /&gt;
	singleTest('„Deutsche?“',true)&lt;br /&gt;
	singleTest('&amp;quot;English?&amp;quot;',true)&lt;br /&gt;
	singleTest('[[Hello!]]',true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testUCFirstAll()&lt;br /&gt;
	local function singleTest(arg,expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;'..tostring(arg)..'&amp;lt;/code&amp;gt;',Text.ucfirstAll(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	self:equals('',Text.ucfirstAll(),'')&lt;br /&gt;
	singleTest(25,'25')&lt;br /&gt;
	singleTest('Help test me','Help Test Me')&lt;br /&gt;
	singleTest('an der Schönen','An Der Schönen')&lt;br /&gt;
	singleTest('an der Schönen &amp;amp;lauen','An Der Schönen &amp;amp;Lauen')&lt;br /&gt;
	self:equals('HTML ndash',Text.ucfirstAll('an der Schönen &amp;amp;lauen donau &amp;amp;ndash; X y z'),&lt;br /&gt;
		'An Der Schönen &amp;amp;amp;Lauen Donau '..mw.text.decode('&amp;amp;ndash;',true)..' X Y Z')&lt;br /&gt;
	self:equals('HTML nbsp',Text.ucfirstAll('a&amp;amp;nbsp;b'),'A&amp;amp;nbsp;B')&lt;br /&gt;
	self:equals('many HTML',Text.ucfirstAll(&amp;quot;&amp;amp;amp;&amp;amp;lt;&amp;amp;gt;&amp;amp;nbsp;&amp;amp;#8201;&amp;amp;#8204;&amp;amp;#8205;&amp;amp;#8206;&amp;amp;#8207;&amp;quot;),&lt;br /&gt;
		'&amp;amp;amp;&amp;amp;lt;&amp;amp;gt;&amp;amp;nbsp;'..mw.text.decode(&amp;quot;&amp;amp;#8201;&amp;amp;#8204;&amp;amp;#8205;&amp;amp;#8206;&amp;amp;#8207;&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testUprightNonLatin()&lt;br /&gt;
	local function singleTest(arg,expected)&lt;br /&gt;
		self:equals('&amp;lt;code&amp;gt;'..arg..'&amp;lt;/code&amp;gt;',Text.uprightNonlatin(arg),expected)&lt;br /&gt;
	end&lt;br /&gt;
	singleTest('abc','abc')&lt;br /&gt;
	singleTest('abc ','abc ')&lt;br /&gt;
	singleTest('Mutsṭafah','Mutsṭafah')&lt;br /&gt;
	singleTest('μm','μm')&lt;br /&gt;
    singleTest('1 α-particle','1 α-particle')&lt;br /&gt;
	singleTest('Method 3α','Method 3α')&lt;br /&gt;
	singleTest('ΣΨΩ',&amp;quot;&amp;lt;span dir='auto' style='font-style:normal'&amp;gt;ΣΨΩ&amp;lt;/span&amp;gt;&amp;quot;)&lt;br /&gt;
    singleTest('abcΣΨΩxyz',&lt;br /&gt;
		&amp;quot;abc&amp;lt;span dir='auto' style='font-style:normal'&amp;gt;ΣΨΩ&amp;lt;/span&amp;gt;xyz&amp;quot;)&lt;br /&gt;
	singleTest('abЩyz',&amp;quot;ab&amp;lt;span dir='auto' style='font-style:normal'&amp;gt;Щ&amp;lt;/span&amp;gt;yz&amp;quot;)&lt;br /&gt;
	singleTest('Войната 1915 година. Втора Македония',&lt;br /&gt;
		&amp;quot;&amp;lt;span dir='auto' style='font-style:normal'&amp;gt;Войната 1915 година. Втора Македония&amp;lt;/span&amp;gt;&amp;quot;)&lt;br /&gt;
	singleTest('a日本d',&amp;quot;a&amp;lt;span dir='auto' style='font-style:normal'&amp;gt;日本&amp;lt;/span&amp;gt;d&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testExport()&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|containsCJK|a}}',&amp;quot;&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|containsCJK|日}}',&amp;quot;1&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|isLatinRange|日}}',&amp;quot;&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|isLatinRange|a}}',&amp;quot;1&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|isQuote|日}}',&amp;quot;&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|isQuote|„}}',&amp;quot;1&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|sentenceTerminated|日}}',&amp;quot;&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|sentenceTerminated|a.}}',&amp;quot;1&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|getPlain|a}}',&amp;quot;a&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|removeDiacritics|a}}',&amp;quot;a&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|ucfirstAll|a}}',&amp;quot;A&amp;quot;)&lt;br /&gt;
	self:preprocess_equals('{{#invoke:Text|uprightNonlatin|a}}',&amp;quot;a&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;Hike395</name></author>
	</entry>
</feed>