Módulo:ConvertNumeric/sandbox/testcases
Este módulo no tiene página de documentación[crear]
-- Pruebas unitarias para [[Módulo:ConvertNumeric/sandbox]]. Los resultados actualizados de las pruebas se muestran en la página de discusión
local p = require('Módulo:UnitTests')
local frame = mw.getCurrentFrame()
local function get_error_text(wikitext)
local message = frame:preprocess(wikitext):match('<strong class="error"><[^>]+>(.-)<[^>]+></strong>')
message = message:match('en la línea %d+: (.+)%.$') or message
return message
end
function p:test_numeral_to_spanish()
self:preprocess_equals_many('{{#invoke:ConvertNumeric/sandbox | numeral_to_spanish |', '}}', {
{'0', 'cero'},
{'1', 'uno'},
{' 1 ', 'uno'}, -- test whitespace around number
{'1 | case=u', 'Uno'},
{'1 | case=U', 'Uno'},
{'-1', 'menos uno'},
{'-1 | negative=prueba', 'prueba uno'},
{'70', 'setenta'},
{'42', 'cuarenta y dos'},
{'123', 'ciento veintitrés'},
{'1050', 'mil cincuenta'},
{'0.25', 'cero con veinticinco centésimas'},
{'.25', 'cero con veinticinco centésimas'},
{'0 | ord=on', 'cero'},
{'33 | ord=on', 'trigésimo tercero'},
{'40 | ord=on', 'cuadragésimo'},
{'5000000000 | ord=on', 'cinco mil millonésimo'},
{'100 | ord=on', 'centésimo'},
{'30 | ord=on', 'trigésimo'},
{'40 | ord=on', 'cuadragésimo'},
{'90 | ord=on', 'nonagésimo'},
{'200 | ord=on', 'ducentésimo'},
{'400 | ord=on', 'cuadringentésimo'},
{'900 | ord=on', 'noningentésimo'},
{'1000 | ord=on', 'milésimo'},
{'51843213156 | ord=on', 'cincuenta y un mil ochocientos cuarenta y tres millones doscientos trece milésimo centésimo quincuagésimo sexto'},
{'1000000000000000000000000000001', 'un quintillón uno'},
{'1.23E3', 'mil doscientos treinta'},
{'123E-4', 'cero con ciento veintitrés diezmilésimas'},
{'1001001001001000 | lk=on', 'mil un [[Orden_de_magnitud_(números)#1012|billones]] mil un [[Orden_de_magnitud_(números)#106|millones]] mil'},
{'1001001001001000 | lk=billones', 'mil un [[Orden_de_magnitud_(números)#1012|billones]] mil un millones mil'},
{'1001001001001000', 'mil un billones mil un millones mil'},
{'1000', 'mil'},
{'1001', 'mil uno'},
{'1000000', 'un millón'},
{'10000000000', 'diez mil millones'},
{'5E30', 'cinco quintillones'},
{'-123456789.25', 'menos ciento veintitrés millones cuatrocientos cincuenta y seis mil setecientos ochenta y nueve con veinticinco centésimas'},
{'0 | zero=foo', 'foo'},
{'0 | ord=on | zero=none', 'none'},
})
end
function p:test_numeral_to_spanish_error()
local cases = {'', 'a', '.', 'e', 'E', 'E1', '.E1', '+', '-', '123a', 'a123', '0.1a', '-a123' }
local nowiki = mw.text.nowiki
for _, case in ipairs(cases) do
local wikitext = '{{#invoke:ConvertNumeric/sandbox | numeral_to_spanish |' .. case .. '}}'
self:equals(nowiki(wikitext), get_error_text(wikitext), 'Número decimal erróneo')
end
end
function p:test_numeral_to_spanish_round()
self:preprocess_equals_many('{{#invoke:ConvertNumeric/sandbox | numeral_to_spanish |', '}}', {
{'1 | round=on', 'uno'},
{'37 | round=on', 'treinta y siete'},
{'190 | round=on', 'doscientos'},
{'110 | round=up', 'doscientos'},
{'190 | round=down', 'cien'},
{'87654321 | round=on', 'noventa millones'},
{'12345678 | round=on', 'doce millones'},
{'-190 | round=on', 'menos doscientos'},
{'-190 | round=up', 'menos cien'},
{'-110 | round=down', 'menos doscientos'},
{'0.25 | round=on', 'cero'},
{'0.5 | round=on', 'uno'},
{'-0.25 | round=on', 'cero'},
{'-0.5 | round=on', 'menos uno'},
{'0.01 | round=up', 'uno'},
{'0.99 | round=down', 'cero'},
{'-0.01 | round=down', 'menos uno'},
{'-0.99 | round=up', 'cero'},
})
end
function p:test_decToHex()
self:preprocess_equals(
'{{#invoke:ConvertNumeric/sandbox|decToHex|10 20 40 1024 78912345|minlength=4}}',
'000A 0014 0028 0400 4B41B59'
)
end
return p