dev

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>