Jump to content
Wikipedia The Free Encyclopedia

Module:ConvertNumeric/testcases

From Wikipedia, the free encyclopedia
This is the test cases page for the module Module:ConvertNumeric. Results of the test cases.
 -- Unit tests for [[Module:ConvertNumeric]]. Click talk page to run tests.
 localp=require('Module:UnitTests')

 localframe=mw.getCurrentFrame()
 localfunctionget_error_text(wikitext)
 localmessage=frame:preprocess(wikitext):match('<strong class="error"><[^>]+>(.-)<[^>]+></strong>')
 message=message:match('at line %d+: (.+)%.$')ormessage
 returnmessage
 end

 functionp:test_numeral_to_english()
 self:preprocess_equals_many('{{#invoke:ConvertNumeric | numeral_to_english |','}}',{
 {'0','zero'},
 {'1','one'},
 {' 1 ','one'},-- test whitespace around number
 {'3 + 5','eight'},-- test expression support
 {'1 | case=u','One'},
 {'1 | case=U','One'},
 {'-1','negative one'},
 {'-1 | negative=minus','minus one'},
 {'70','seventy'},
 {'42','forty-two'},
 {'123','one hundred and twenty-three'},
 {'123 | sp=us','one hundred twenty-three'},
 {'123 | adj=on','one-hundred-and-twenty-three'},
 {'1050','one thousand and fifty'},
 {'1050 | sp=us','one thousand fifty'},
 {'0.25','zero point two five'},
 {'.25','zero point two five'},
 {'0 | ord=on','zeroth'},
 {'33 | ord=on','thirty-third'},
 {'40 | ord=on','fortieth'},
 {'5000000000 | ord=on','five billionth'},
 {'0 | pl=on','zeros'},
 {'76 | pl=on','seventy-sixes'},
 {'1000000000000000000000000000001','one nonillion and one'},
 {'1.23E3','one thousand two hundred and thirty'},
 {'123E-4','zero point zero one two three'},
 {'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','negative one hundred twenty-three million four hundred fifty-six thousand seven hundred and eighty-nine point two five'},
 {'0 | zero=foo','foo'},
 {'0 | ord=on | zero=none','none'},
 {'1 | numerator=2 | denominator=3','one and two-thirds'},
 {'| numerator=2 | denominator=3','two-thirds'},
 {'1 | denominator=2','one and a half'},
 {'1 | numerator=3 | denominator=2','one and three-halves'},
 {'1 | numerator=1 | denominator=4','one and a quarter'},
 {'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','nine and three-quarters'},
 {'9 | numerator=3 | denominator=4 | sp=us','nine and three-fourths'},
 {'23 | numerator=12 | denominator=16','twenty-three and twelve-sixteenths'},
 })
 end

 functionp:test_numeral_to_english_error()
 localcases={'','a','.','e','E','E1','.E1','+','-','123a','a123','0.1a','-a123'}
 localnowiki=mw.text.nowiki
 for_,caseinipairs(cases)do
 localwikitext='{{#invoke:ConvertNumeric | numeral_to_english |'..case..'}}'
 self:equals(nowiki(wikitext),get_error_text(wikitext),'Invalid decimal numeral')
 end
 end

 functionp: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

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

 returnp

AltStyle によって変換されたページ (->オリジナル) /