Module:Ordinal/testcases
Lua
Documentation for this module may be created at Module:Ordinal/testcases/doc
Code
local p = require('Module:UnitTests')
function p:test_Ordinal_languages()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|1|lang=', '}}', {
{'en', '1<sup>st</sup>'},
{'de', '1.'},
{'fr', '1<sup>e</sup>'},
{'mk', '1‑виот'},
{'ru', '1‑й'},
{'ja', '第1'},
{'sv', '1:a'},
{'nn', '1.'},
{'ms', 'ke‑1'},
{'ta', '1‑ஆம்'},
{'hy', '1‑ին'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|2|lang=', '}}', {
{'en', '2<sup>nd</sup>'},
{'de', '2.'},
{'fr', '2<sup>e</sup>'},
{'mk', '2‑риот'},
{'ta', '2‑ஆம்'},
{'hy', '2‑րդ'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|3|lang=', '}}', {
{'en', '3<sup>rd</sup>'},
{'de', '3.'},
{'fr', '3<sup>e</sup>'},
{'mk', '3‑иот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|104|lang=', '}}', {
{'en', '104<sup>th</sup>'},
{'de', '104.'},
{'fr', '104<sup>e</sup>'},
{'mk', '104‑иот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|205|lang=', '}}', {
{'en', '205<sup>th</sup>'},
{'de', '205.'},
{'fr', '205<sup>e</sup>'},
{'mk', '205‑тиот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|11|lang=', '}}', {
{'en', '11<sup>th</sup>'},
{'de', '11.'},
{'fr', '11<sup>e</sup>'},
{'mk', '11‑виот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|12|lang=', '}}', {
{'en', '12<sup>th</sup>'},
{'de', '12.'},
{'fr', '12<sup>e</sup>'},
{'mk', '12‑риот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|13|lang=', '}}', {
{'en', '13<sup>th</sup>'},
{'de', '13.'},
{'fr', '13<sup>e</sup>'},
{'mk', '13‑иот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|26|lang=', '}}', {
{'en', '26<sup>th</sup>'},
{'de', '26.'},
{'fr', '26<sup>e</sup>'},
{'mk', '26‑иот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|27|lang=', '}}', {
{'en', '27<sup>th</sup>'},
{'de', '27.'},
{'fr', '27<sup>e</sup>'},
{'mk', '27‑миот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|28|lang=', '}}', {
{'en', '28<sup>th</sup>'},
{'de', '28.'},
{'fr', '28<sup>e</sup>'},
{'mk', '28‑миот'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|29|lang=', '}}', {
{'en', '29<sup>th</sup>'},
{'de', '29.'},
{'fr', '29<sup>e</sup>'},
{'mk', '29‑тиот'},
} )
end
function p:test_Ordinal_lang_English()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '|lang=en}}', {
{'101', '101<sup>st</sup>'},
{'102', '102<sup>nd</sup>'},
{'103', '103<sup>rd</sup>'},
{'104', '104<sup>th</sup>'},
{'101|nosup=y', '101st'},
{'102|nosup=y', '102nd'},
{'103|nosup=y', '103rd'},
{'104|nosup=y', '104th'},
{'13|style=d', '13d'},
{'101|style=d|nosup=y', '101d'},
} )
end
function p:test_Ordinal_lang_French()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '|lang=fr}}', {
{'101', '101<sup>e</sup>'},
{'999', '999<sup>e</sup>'},
{'1', '1<sup>e</sup>'},
{'1|gender=f', '1<sup>re</sup>'},
{'1|gender=m', '1<sup>er</sup>'},
{'1|gender=n', '1<sup>e</sup>'},
{'1|gender=xxxx', '1<sup>e</sup>'},
{'8|style=roman|gender=m', 'VIII<sup>e</sup>'},
{'8|style=roman-title|gender=m', 'VIII'},
{'101|style=roman year', 'CI<sup>e</sup>'},
{'101|style=roman|gender=f', 'CI<sup>e</sup>'},
{'102|nosup=y', '102e'},
} )
end
function p:test_Ordinal_lang_Polish()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '|lang=pl}}', {
{'1', '1‑szy'},
{'3', '3‑ci'},
{'11', '11‑ty'},
{'18', '18‑ty'},
{'101', '101‑szy'},
{'102', '102‑gi'},
{'103', '103‑ci'},
{'104', '104‑ty'},
{'105', '105‑ty'},
{'106', '106‑ty'},
{'107', '107‑my'},
{'108', '108‑my'},
{'109', '109‑ty'},
{'110', '110‑ty'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '|lang=pl|gender=m}}', {
{'1', '1‑szy'},
{'3', '3‑ci'},
{'11', '11‑ty'},
{'18', '18‑ty'},
{'101', '101‑szy'},
{'102', '102‑gi'},
{'103', '103‑ci'},
{'104', '104‑ty'},
{'105', '105‑ty'},
{'106', '106‑ty'},
{'107', '107‑my'},
{'108', '108‑my'},
{'109', '109‑ty'},
{'110', '110‑ty'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '|lang=pl|gender=f}}', {
{'1', '1‑sza'},
{'3', '3‑cia'},
{'11', '11‑ta'},
{'18', '18‑ta'},
{'101', '101‑sza'},
{'102', '102‑ga'},
{'103', '103‑cia'},
{'104', '104‑ta'},
{'105', '105‑ta'},
{'106', '106‑ta'},
{'107', '107‑ma'},
{'108', '108‑ma'},
{'109', '109‑ta'},
{'110', '110‑ta'},
} )
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '|lang=pl|gender=n}}', {
{'1', '1‑sze'},
{'3', '3‑cie'},
{'11', '11‑te'},
{'18', '18‑te'},
{'101', '101‑sze'},
{'102', '102‑gie'},
{'103', '103‑cie'},
{'104', '104‑te'},
{'105', '105‑te'},
{'106', '106‑te'},
{'107', '107‑me'},
{'108', '108‑me'},
{'109', '109‑te'},
{'110', '110‑te'},
} )
end
function p:test_Ordinal_lang_Spanish()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '}}', {
{'31|lang=es', '31.<sup>o</sup>'},
{'32|lang=es|gender=f', '32.<sup>a</sup>'},
{'33|lang=es|gender=m', '33.<sup>o</sup>'},
{'34|lang=es|gender=n', '34.<sup>o</sup>'},
{'35|lang=es|nosup=y', '35o'},
} )
end
function p:test_Ordinal_lang_Ukrainian()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '}}', {
{ '1|lang=uk', '1‑й'},
{ '1|lang=uk|gender=m', '1‑й'},
{ '1|lang=uk|gender=f', '1‑ша'},
{ '1|lang=uk|gender=n', '1‑ше'},
{ '2|lang=uk', '2‑й'},
{ '2|lang=uk|gender=m', '2‑й'},
{ '2|lang=uk|gender=f', '2‑га'},
{ '2|lang=uk|gender=n', '2‑ге'},
{ '3|lang=uk', '3‑й'},
{ '3|lang=uk|gender=m', '3‑й'},
{ '3|lang=uk|gender=f', '3‑тя'},
{ '3|lang=uk|gender=n', '3‑тє'},
{ '4|lang=uk', '4‑й'},
{ '4|lang=uk|gender=m', '4‑й'},
{ '4|lang=uk|gender=f', '4‑та'},
{ '4|lang=uk|gender=n', '4‑те'},
{ '5|lang=uk', '5‑й'},
{ '5|lang=uk|gender=m', '5‑й'},
{ '5|lang=uk|gender=f', '5‑та'},
{ '5|lang=uk|gender=n', '5‑те'},
{ '6|lang=uk', '6‑й'},
{ '6|lang=uk|gender=m', '6‑й'},
{ '6|lang=uk|gender=f', '6‑та'},
{ '6|lang=uk|gender=n', '6‑те'},
{ '7|lang=uk', '7‑й'},
{ '7|lang=uk|gender=m', '7‑й'},
{ '7|lang=uk|gender=f', '7‑ма'},
{ '7|lang=uk|gender=n', '7‑ме'},
{ '8|lang=uk', '8‑й'},
{ '8|lang=uk|gender=m', '8‑й'},
{ '8|lang=uk|gender=f', '8‑ма'},
{ '8|lang=uk|gender=n', '8‑ме'},
{ '9|lang=uk', '9‑й'},
{ '9|lang=uk|gender=m', '9‑й'},
{ '9|lang=uk|gender=f', '9‑та'},
{ '9|lang=uk|gender=n', '9‑те'},
{ '10|lang=uk', '10‑й'},
{ '10|lang=uk|gender=m', '10‑й'},
{ '10|lang=uk|gender=f', '10‑та'},
{ '10|lang=uk|gender=n', '10‑те'},
{ '11|lang=uk', '11‑й'},
{ '11|lang=uk|gender=m', '11‑й'},
{ '11|lang=uk|gender=f', '11‑та'},
{ '11|lang=uk|gender=n', '11‑те'},
{ '19|lang=uk', '19‑й'},
{ '19|lang=uk|gender=m', '19‑й'},
{ '19|lang=uk|gender=f', '19‑та'},
{ '19|lang=uk|gender=n', '19‑те'},
{ '20|lang=uk', '20‑й'},
{ '20|lang=uk|gender=m', '20‑й'},
{ '20|lang=uk|gender=f', '20‑та'},
{ '20|lang=uk|gender=n', '20‑те'},
{ '21|lang=uk', '21‑й'},
{ '21|lang=uk|gender=m', '21‑й'},
{ '21|lang=uk|gender=f', '21‑ша'},
{ '21|lang=uk|gender=n', '21‑ше'},
{ '40|lang=uk', '40‑й'},
{ '40|lang=uk|gender=m', '40‑й'},
{ '40|lang=uk|gender=f', '40‑ва'},
{ '40|lang=uk|gender=n', '40‑ве'},
{ '50|lang=uk', '50‑й'},
{ '50|lang=uk|gender=m', '50‑й'},
{ '50|lang=uk|gender=f', '50‑та'},
{ '50|lang=uk|gender=n', '50‑те'},
{ '100|lang=uk', '100‑й'},
{ '100|lang=uk|gender=m', '100‑й'},
{ '100|lang=uk|gender=f', '100‑та'},
{ '100|lang=uk|gender=n', '100‑те'},
{'1000|lang=uk', '1000‑й'},
{'1000|lang=uk|gender=m', '1000‑й'},
{'1000|lang=uk|gender=f', '1000‑на'},
{'1000|lang=uk|gender=n', '1000‑не'},
} )
end
function p:test_Ordinal_Misc()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '}}', {
{'38|lang=fi', '38.'},
{'57|lang=it', '57<sup>o</sup>'},
{'57|lang=it|gender=f', '57<sup>a</sup>'},
{'10|lang=la|style=roman', 'X<sup>o</sup>'},
{'101|lang=bn', '১০১তম'},
{'101|lang=br', '101‑vet'},
{'101|lang=cs', '101.'},
{'101|lang=fa', '۱۰۱م'},
{'101|lang=fi', '101.'},
{'101|lang=ia', '101<sup>me</sup>'},
{'101|lang=ko', '101째'},
{'101|lang=ml', '101‑മത്തെ'},
{'101|lang=th', 'ที่๑๐๑'},
} )
self:preprocess_equals_preprocess(
'{{#invoke:Ordinal|Ordinal|1234|lang=eo}}', '{{formatnum|1234|lang=eo}}‑a'
)
end
function p:test_Ordinal_error_handling()
self:preprocess_equals_many('{{#invoke:Ordinal|Ordinal|', '}}', {
{'0|debug=y', '<strong class="error"><span title="Error: not a number">0</span></strong>[[Category:Errors reported by Module Ordinal]]'},
{'0|debug=n', '0'},
{'AbCdE|debug=y', '<strong class="error"><span title="Error: not a number">AbCdE</span></strong>[[Category:Errors reported by Module Ordinal]]'},
{'AbCdE|debug=n', 'AbCdE'},
{'-102|lang=en|debug=y', '<strong class="error"><span title="Error: not a number">-102</span></strong>[[Category:Errors reported by Module Ordinal]]'},
{'-102|lang=en|debug=n', '-102'},
{'1|lang=en|debug=y', '1<sup>st</sup>'},
{'101|lang=xxxx', '101.[[Category:Pages with calls to Module Ordinal using an unsupported language]]'}, -- test unknown lang
{'1|lang=zh-hk', '第1[[Category:Pages with calls to Module Ordinal using an unsupported language]]'}, -- test fallback lang
} )
end
return p