Hoppa till innehållet

Modul:ConvertNumeric/testcases

Från Wikipedia

Dokumentationen för denna modul kan skapas på Modul:ConvertNumeric/testcases/dok

--
-- kopierad från enwp 2014-05-11, ska uppdateras med testfall för den svenska implementationen av Modul:ConvertNumeric
--

-- Unit tests for [[Module:ConvertNumeric]]. Click talk page to run tests.
local p = require('Module:UnitTests')

function p:test_numeral_to_swedish()
    self:preprocess_equals_many('{{#invoke:ConvertNumeric | numeral_to_swedish |', '}}', {
        {'0', 'noll'},
        {'1', 'ett'},
        {' 1 ', 'ett'}, -- test whitespace around number
        {'-1', 'minus ett'},
        {'-1 | negative=minus', 'minus ett'},
        {'70', 'sjuttio'},
        {'42', 'fyrtiotvå'},
        {'123', 'etthundratjugotre'},
        {'1050', 'ettusen femtio'},
        {'0,25', 'noll komma två fem'},
        {'0 | ord=on', 'nollte'},
        {'33 | ord=on', 'trettiotredje'},
        {'40 | ord=on', 'fyrtionde'},
        {'5000000000 | ord=on', 'femmiljardte'},
        {'0 | pl=on', 'nollor'},
        {'76 | pl=on', 'sjuttiosexor'},
 --       {'1000000000000000000000000000001', 'one nonillion and one'},
        {'1.23E3', 'ettusen tvåhundratrettio'},
        {'123E-4', 'noll komma noll ett två tre'},
 --       {'1001001001001000 | lk=on', 'one [[Orders_of_magnitude_(numbers)#1015|quadrillion]] one [[Orders_of_magnitude_(numbers)#1012|trillion]] one [[Orders_of_magnitude_(numbers)#109|billion]] one million one thousand'},
 --       {'1001001001001000 | lk=billion,quadrillion', 'one [[Orders_of_magnitude_(numbers)#1015|quadrillion]] one trillion one [[Orders_of_magnitude_(numbers)#109|billion]] one million one thousand'},
 --       {'5E30', 'five nonillion'},
        {'-123456789.25', 'minus etthundratjugotremiljoner fyrahundrafemtiosextusen sjuhundraåttionio komma två fem'},
 --       {'0 | zero=foo', 'foo'},
 --       {'0 | ord=on | zero=none', 'none'},
        {'1 | numerator=2 | denominator=3', 'ett och två tredjedelar'},
        {'| numerator=2 | denominator=3', 'två tredjedelar'},
        {'1 | denominator=2', 'ett och en halv'},
        {'1 | numerator=3 | denominator=2', 'ett och tre halva'},
        {'1 | numerator=1 | denominator=4', 'ett och en fjärdedel'},
 --       {'1 | numerator=1 | denominator=4 | sp=us', 'one and a fourth'},
 --       {'1 | numerator=1 | denominator=4 | one=one', 'one and one-quarter'},
 --       {'1 | numerator=1 | denominator=4 | sp=us | one=one', 'one and one-fourth'},
        {'9 | numerator=3 | denominator=4', 'nio och tre fjärdedelar'},
 --       {'9 | numerator=3 | denominator=4 | sp=us', 'nine and three-fourths'},
        {'23 | numerator=12 | denominator=16', 'tjugotre och tolv sextondelar'},
    })
end

function p:test_numeral_to_swedish_error()
    local cases = {'', 'en', '.', 'e', 'E', 'E1', '.E1', '+', '-', '123a', 'a123', '0.1a', '-a123' }
    for _, case in ipairs(cases) do
        self:preprocess_equals('{{#invoke:ConvertNumeric | numeral_to_swedish |' .. case .. '}}', 'Ogiltigt decimaltal')
    end
end

--[[
function p:test_numeral_to_english_round()
    self:preprocess_equals_many('{{#invoke:ConvertNumeric | numeral_to_english |', '}}', {
        {'1 | round=on', 'one'},
        {'37 | round=on', 'thirty-seven'},
        {'190 | round=on', 'two hundred'},
        {'110 | round=up', 'two hundred'},
        {'190 | round=down', 'one hundred'},
        {'87654321 | round=on', 'ninety million'},
        {'12345678 | round=on', 'twelve million'},
        {'-190 | round=on', 'negative two hundred'},
        {'-190 | round=up', 'negative one hundred'},
        {'-110 | round=down', 'negative two hundred'},
        {'0.25 | round=on', 'zero'},
        {'0.5 | round=on', 'one'},
        {'-0.25 | round=on', 'zero'},
        {'-0.5 | round=on', 'negative one'},
        {'0.01 | round=up', 'one'},
        {'0.99 | round=down', 'zero'},
        {'-0.01 | round=down', 'negative one'},
        {'-0.99 | round=up', 'zero'},
    })
end

function p:test_decToHex()
    self:preprocess_equals(
'{{#invoke:ConvertNumeric|decToHex|10 20 40 1024 78912345|minlength=4}}','000A 0014 0028 0400 4B41B59')

end
]]

return p