This module contains testcases for its parent module, Formatnum.
See also
-- <nowiki>
-- Unit tests for [[Global Lua Modules/Formatnum]].
-- @see [[Module talk:Formatnum/testcases]]
return {
main = {
options = {
mode = 'invocation',
nowiki = false
},
tests = {
-- English basic
{ '0|en', '0' },
{ '-123|en', '-123' },
-- unnecessary signs
{ '-0|en', '0' },
{ '+123|en', '123' },
-- non numbers preserved
{ '12:34:45|en', '12:34:45' },
{ '12 h 34|fr', '12 h 34' },
{ '12:34:45|th', '12:34:45' },
{ '12:34:45.00|en', '12:34:45.00' },
{ '12°34′45.00″|en', '12°34′45.00″' },
{ 'some words...|en', 'some words...' },
-- English precision rounding
{ '100|en|prec=1', '100.0' },
{ '100.01|en|prec=1', '100.0' },
{ '100.01|en|prec=2', '100.01' },
{ '100.01|en|prec=3', '100.010' },
{ '100.010|en|prec=2', '100.01' },
{ '100.0|en|prec=0', '100' },
{ '100.01|en|prec=0', '100' },
-- English bad parameters
{ '.10,00|en', '.10,00' },
{ '.10,00|en|sep=', '.10,00' },
{ '100,0.|en', '100,0.' },
{ '100,0.|en|sep=', '100,0.' },
{ '100.01|en|prec=-2', '100.01' },
{ '200.1|en|prec=3,5', '200.1' },
{ '200.1|en|prec=a', '200.1' },
-- Decimal separator
{ '.12345|en', '0.12345' },
{ '.12345|fr', '0,12345' },
{ '123.45|en', '123.45' },
{ '123.45|fr', '123,45' },
{ '123.|en', '123' },
{ '123.|fr', '123' },
{ '123.00|en', '123' },
{ '123.00|fr', '123' },
-- No grouping separator
{ '100000|en|sep=1', '100000' },
{ '100000|fr|sep=1', '100000' },
-- HTML entity or native UTF8
-- @note "\194\160" in Lua literals is NBSP (U+00A0) encoded in UTF-8 (0xC2,0xA0)
{ '12345|en', '12,345' },
{ '12345|fr', '12\194\160345' },
-- Grouping separators
{ '1234567890|en', '1,234,567,890' },
{ '1234567890|mn', '᠑,᠒᠓᠔,᠕᠖᠗,᠘᠙᠐' },
{ '1234567890|ar', '١٬٢٣٤٬٥٦٧٬٨٩٠' },
{ '1234567890|fa', '۱٬۲۳۴٬۵۶۷٬۸۹۰' },
{ '1234567890|hi', '१,२३,४५,६७,८९०' },
{ '1234567890|th', '๑,๒๓๔,๕๖๗,๘๙๐' },
-- Grouping and precision
{ '1234567.89|en|prec=0', '1,234,567' },
{ '1234567.89|en|prec=1', '1,234,567.8' },
{ '1234567.89|en|prec=2', '1,234,567.89' },
{ '1234567.89|en|prec=3', '1,234,567.890' },
-- Unsupported languages using user default language instead may fail
{ '100000||sep=1', '100000' }, -- unspecified
{ '100000|aa|sep=1', '100000' }, -- Afar
{ '100000|qq|sep=1', '100000' }, -- private use
{ '100000|qqa|sep=1', '100000' }, -- private use
{ '100000|mul|sep=1', '100000' }, -- multilingual
{ '100000|und|sep=1', '100000' }, -- undetermined
{ '100000|root|sep=1', '100000' }, -- CLDR default
{ '100000|user|sep=1', '100000' }, -- invalid
{ '100000|invalid|sep=1', '100000' }, -- invalid
}
}
}
-- </nowiki>