Jump to content

Module:NumberSpell/testcases: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
tests for good invoke input
line the 0-100 numbers up nicely and change the function name
Line 10: Line 10:
local max = 100 -- Maximum number that can be parsed.
local max = 100 -- Maximum number that can be parsed.


function suite:test0To99()
function suite:test0To100()
self:assertEquals('zero', _write(0))
self:assertEquals('zero' , _write(0))
self:assertEquals('one', _write(1))
self:assertEquals('one' , _write(1))
self:assertEquals('two', _write(2))
self:assertEquals('two' , _write(2))
self:assertEquals('three', _write(3))
self:assertEquals('three' , _write(3))
self:assertEquals('four', _write(4))
self:assertEquals('four' , _write(4))
self:assertEquals('five', _write(5))
self:assertEquals('five' , _write(5))
self:assertEquals('six', _write(6))
self:assertEquals('six' , _write(6))
self:assertEquals('seven', _write(7))
self:assertEquals('seven' , _write(7))
self:assertEquals('eight', _write(8))
self:assertEquals('eight' , _write(8))
self:assertEquals('nine', _write(9))
self:assertEquals('nine' , _write(9))
self:assertEquals('ten', _write(10))
self:assertEquals('ten' , _write(10))
self:assertEquals('eleven', _write(11))
self:assertEquals('eleven' , _write(11))
self:assertEquals('twelve', _write(12))
self:assertEquals('twelve' , _write(12))
self:assertEquals('thirteen', _write(13))
self:assertEquals('thirteen' , _write(13))
self:assertEquals('fourteen', _write(14))
self:assertEquals('fourteen' , _write(14))
self:assertEquals('fifteen', _write(15))
self:assertEquals('fifteen' , _write(15))
self:assertEquals('sixteen', _write(16))
self:assertEquals('sixteen' , _write(16))
self:assertEquals('seventeen', _write(17))
self:assertEquals('seventeen' , _write(17))
self:assertEquals('eighteen', _write(18))
self:assertEquals('eighteen' , _write(18))
self:assertEquals('nineteen', _write(19))
self:assertEquals('nineteen' , _write(19))
self:assertEquals('twenty', _write(20))
self:assertEquals('twenty' , _write(20))
self:assertEquals('twenty-one', _write(21))
self:assertEquals('twenty-one' , _write(21))
self:assertEquals('twenty-two', _write(22))
self:assertEquals('twenty-two' , _write(22))
self:assertEquals('twenty-three', _write(23))
self:assertEquals('twenty-three' , _write(23))
self:assertEquals('twenty-four', _write(24))
self:assertEquals('twenty-four' , _write(24))
self:assertEquals('twenty-five', _write(25))
self:assertEquals('twenty-five' , _write(25))
self:assertEquals('twenty-six', _write(26))
self:assertEquals('twenty-six' , _write(26))
self:assertEquals('twenty-seven', _write(27))
self:assertEquals('twenty-seven' , _write(27))
self:assertEquals('twenty-eight', _write(28))
self:assertEquals('twenty-eight' , _write(28))
self:assertEquals('twenty-nine', _write(29))
self:assertEquals('twenty-nine' , _write(29))
self:assertEquals('thirty', _write(30))
self:assertEquals('thirty' , _write(30))
self:assertEquals('thirty-one', _write(31))
self:assertEquals('thirty-one' , _write(31))
self:assertEquals('thirty-two', _write(32))
self:assertEquals('thirty-two' , _write(32))
self:assertEquals('thirty-three', _write(33))
self:assertEquals('thirty-three' , _write(33))
self:assertEquals('thirty-four', _write(34))
self:assertEquals('thirty-four' , _write(34))
self:assertEquals('thirty-five', _write(35))
self:assertEquals('thirty-five' , _write(35))
self:assertEquals('thirty-six', _write(36))
self:assertEquals('thirty-six' , _write(36))
self:assertEquals('thirty-seven', _write(37))
self:assertEquals('thirty-seven' , _write(37))
self:assertEquals('thirty-eight', _write(38))
self:assertEquals('thirty-eight' , _write(38))
self:assertEquals('thirty-nine', _write(39))
self:assertEquals('thirty-nine' , _write(39))
self:assertEquals('forty', _write(40))
self:assertEquals('forty' , _write(40))
self:assertEquals('forty-one', _write(41))
self:assertEquals('forty-one' , _write(41))
self:assertEquals('forty-two', _write(42))
self:assertEquals('forty-two' , _write(42))
self:assertEquals('forty-three', _write(43))
self:assertEquals('forty-three' , _write(43))
self:assertEquals('forty-four', _write(44))
self:assertEquals('forty-four' , _write(44))
self:assertEquals('forty-five', _write(45))
self:assertEquals('forty-five' , _write(45))
self:assertEquals('forty-six', _write(46))
self:assertEquals('forty-six' , _write(46))
self:assertEquals('forty-seven', _write(47))
self:assertEquals('forty-seven' , _write(47))
self:assertEquals('forty-eight', _write(48))
self:assertEquals('forty-eight' , _write(48))
self:assertEquals('forty-nine', _write(49))
self:assertEquals('forty-nine' , _write(49))
self:assertEquals('fifty', _write(50))
self:assertEquals('fifty' , _write(50))
self:assertEquals('fifty-one', _write(51))
self:assertEquals('fifty-one' , _write(51))
self:assertEquals('fifty-two', _write(52))
self:assertEquals('fifty-two' , _write(52))
self:assertEquals('fifty-three', _write(53))
self:assertEquals('fifty-three' , _write(53))
self:assertEquals('fifty-four', _write(54))
self:assertEquals('fifty-four' , _write(54))
self:assertEquals('fifty-five', _write(55))
self:assertEquals('fifty-five' , _write(55))
self:assertEquals('fifty-six', _write(56))
self:assertEquals('fifty-six' , _write(56))
self:assertEquals('fifty-seven', _write(57))
self:assertEquals('fifty-seven' , _write(57))
self:assertEquals('fifty-eight', _write(58))
self:assertEquals('fifty-eight' , _write(58))
self:assertEquals('fifty-nine', _write(59))
self:assertEquals('fifty-nine' , _write(59))
self:assertEquals('sixty', _write(60))
self:assertEquals('sixty' , _write(60))
self:assertEquals('sixty-one', _write(61))
self:assertEquals('sixty-one' , _write(61))
self:assertEquals('sixty-two', _write(62))
self:assertEquals('sixty-two' , _write(62))
self:assertEquals('sixty-three', _write(63))
self:assertEquals('sixty-three' , _write(63))
self:assertEquals('sixty-four', _write(64))
self:assertEquals('sixty-four' , _write(64))
self:assertEquals('sixty-five', _write(65))
self:assertEquals('sixty-five' , _write(65))
self:assertEquals('sixty-six', _write(66))
self:assertEquals('sixty-six' , _write(66))
self:assertEquals('sixty-seven', _write(67))
self:assertEquals('sixty-seven' , _write(67))
self:assertEquals('sixty-eight', _write(68))
self:assertEquals('sixty-eight' , _write(68))
self:assertEquals('sixty-nine', _write(69))
self:assertEquals('sixty-nine' , _write(69))
self:assertEquals('seventy', _write(70))
self:assertEquals('seventy' , _write(70))
self:assertEquals('seventy-one', _write(71))
self:assertEquals('seventy-one' , _write(71))
self:assertEquals('seventy-two', _write(72))
self:assertEquals('seventy-two' , _write(72))
self:assertEquals('seventy-three', _write(73))
self:assertEquals('seventy-three', _write(73))
self:assertEquals('seventy-four', _write(74))
self:assertEquals('seventy-four' , _write(74))
self:assertEquals('seventy-five', _write(75))
self:assertEquals('seventy-five' , _write(75))
self:assertEquals('seventy-six', _write(76))
self:assertEquals('seventy-six' , _write(76))
self:assertEquals('seventy-seven', _write(77))
self:assertEquals('seventy-seven', _write(77))
self:assertEquals('seventy-eight', _write(78))
self:assertEquals('seventy-eight', _write(78))
self:assertEquals('seventy-nine', _write(79))
self:assertEquals('seventy-nine' , _write(79))
self:assertEquals('eighty', _write(80))
self:assertEquals('eighty' , _write(80))
self:assertEquals('eighty-one', _write(81))
self:assertEquals('eighty-one' , _write(81))
self:assertEquals('eighty-two', _write(82))
self:assertEquals('eighty-two' , _write(82))
self:assertEquals('eighty-three', _write(83))
self:assertEquals('eighty-three' , _write(83))
self:assertEquals('eighty-four', _write(84))
self:assertEquals('eighty-four' , _write(84))
self:assertEquals('eighty-five', _write(85))
self:assertEquals('eighty-five' , _write(85))
self:assertEquals('eighty-six', _write(86))
self:assertEquals('eighty-six' , _write(86))
self:assertEquals('eighty-seven', _write(87))
self:assertEquals('eighty-seven' , _write(87))
self:assertEquals('eighty-eight', _write(88))
self:assertEquals('eighty-eight' , _write(88))
self:assertEquals('eighty-nine', _write(89))
self:assertEquals('eighty-nine' , _write(89))
self:assertEquals('ninety', _write(90))
self:assertEquals('ninety' , _write(90))
self:assertEquals('ninety-one', _write(91))
self:assertEquals('ninety-one' , _write(91))
self:assertEquals('ninety-two', _write(92))
self:assertEquals('ninety-two' , _write(92))
self:assertEquals('ninety-three', _write(93))
self:assertEquals('ninety-three' , _write(93))
self:assertEquals('ninety-four', _write(94))
self:assertEquals('ninety-four' , _write(94))
self:assertEquals('ninety-five', _write(95))
self:assertEquals('ninety-five' , _write(95))
self:assertEquals('ninety-six', _write(96))
self:assertEquals('ninety-six' , _write(96))
self:assertEquals('ninety-seven', _write(97))
self:assertEquals('ninety-seven' , _write(97))
self:assertEquals('ninety-eight', _write(98))
self:assertEquals('ninety-eight' , _write(98))
self:assertEquals('ninety-nine', _write(99))
self:assertEquals('ninety-nine' , _write(99))
self:assertEquals('one hundred', _write(100))
self:assertEquals('one hundred' , _write(100))
end
end



Revision as of 19:44, 13 January 2014

-- Unit tests for [[Module:NumberWrite]]. Click talk page to run tests.

local nw = require('Module:NumberWrite')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

local write = nw.main
local _write = nw._main

local max = 100 -- Maximum number that can be parsed.

function suite:test0To100()
	self:assertEquals('zero'         , _write(0))
 	self:assertEquals('one'          , _write(1))
 	self:assertEquals('two'          , _write(2))
 	self:assertEquals('three'        , _write(3))
 	self:assertEquals('four'         , _write(4))
 	self:assertEquals('five'         , _write(5))
 	self:assertEquals('six'          , _write(6))
 	self:assertEquals('seven'        , _write(7))
 	self:assertEquals('eight'        , _write(8))
 	self:assertEquals('nine'         , _write(9))
 	self:assertEquals('ten'          , _write(10))
 	self:assertEquals('eleven'       , _write(11))
 	self:assertEquals('twelve'       , _write(12))
 	self:assertEquals('thirteen'     , _write(13))
 	self:assertEquals('fourteen'     , _write(14))
 	self:assertEquals('fifteen'      , _write(15))
 	self:assertEquals('sixteen'      , _write(16))
 	self:assertEquals('seventeen'    , _write(17))
 	self:assertEquals('eighteen'     , _write(18))
 	self:assertEquals('nineteen'     , _write(19))
 	self:assertEquals('twenty'       , _write(20))
 	self:assertEquals('twenty-one'   , _write(21))
 	self:assertEquals('twenty-two'   , _write(22))
 	self:assertEquals('twenty-three' , _write(23))
 	self:assertEquals('twenty-four'  , _write(24))
 	self:assertEquals('twenty-five'  , _write(25))
 	self:assertEquals('twenty-six'   , _write(26))
 	self:assertEquals('twenty-seven' , _write(27))
 	self:assertEquals('twenty-eight' , _write(28))
 	self:assertEquals('twenty-nine'  , _write(29))
 	self:assertEquals('thirty'       , _write(30))
 	self:assertEquals('thirty-one'   , _write(31))
 	self:assertEquals('thirty-two'   , _write(32))
 	self:assertEquals('thirty-three' , _write(33))
 	self:assertEquals('thirty-four'  , _write(34))
 	self:assertEquals('thirty-five'  , _write(35))
 	self:assertEquals('thirty-six'   , _write(36))
 	self:assertEquals('thirty-seven' , _write(37))
 	self:assertEquals('thirty-eight' , _write(38))
 	self:assertEquals('thirty-nine'  , _write(39))
 	self:assertEquals('forty'        , _write(40))
 	self:assertEquals('forty-one'    , _write(41))
 	self:assertEquals('forty-two'    , _write(42))
 	self:assertEquals('forty-three'  , _write(43))
 	self:assertEquals('forty-four'   , _write(44))
 	self:assertEquals('forty-five'   , _write(45))
 	self:assertEquals('forty-six'    , _write(46))
 	self:assertEquals('forty-seven'  , _write(47))
 	self:assertEquals('forty-eight'  , _write(48))
 	self:assertEquals('forty-nine'   , _write(49))
 	self:assertEquals('fifty'        , _write(50))
 	self:assertEquals('fifty-one'    , _write(51))
 	self:assertEquals('fifty-two'    , _write(52))
 	self:assertEquals('fifty-three'  , _write(53))
 	self:assertEquals('fifty-four'   , _write(54))
 	self:assertEquals('fifty-five'   , _write(55))
 	self:assertEquals('fifty-six'    , _write(56))
 	self:assertEquals('fifty-seven'  , _write(57))
 	self:assertEquals('fifty-eight'  , _write(58))
 	self:assertEquals('fifty-nine'   , _write(59))
 	self:assertEquals('sixty'        , _write(60))
 	self:assertEquals('sixty-one'    , _write(61))
 	self:assertEquals('sixty-two'    , _write(62))
 	self:assertEquals('sixty-three'  , _write(63))
 	self:assertEquals('sixty-four'   , _write(64))
 	self:assertEquals('sixty-five'   , _write(65))
 	self:assertEquals('sixty-six'    , _write(66))
 	self:assertEquals('sixty-seven'  , _write(67))
 	self:assertEquals('sixty-eight'  , _write(68))
 	self:assertEquals('sixty-nine'   , _write(69))
 	self:assertEquals('seventy'      , _write(70))
 	self:assertEquals('seventy-one'  , _write(71))
 	self:assertEquals('seventy-two'  , _write(72))
 	self:assertEquals('seventy-three', _write(73))
 	self:assertEquals('seventy-four' , _write(74))
 	self:assertEquals('seventy-five' , _write(75))
 	self:assertEquals('seventy-six'  , _write(76))
 	self:assertEquals('seventy-seven', _write(77))
 	self:assertEquals('seventy-eight', _write(78))
 	self:assertEquals('seventy-nine' , _write(79))
 	self:assertEquals('eighty'       , _write(80))
 	self:assertEquals('eighty-one'   , _write(81))
 	self:assertEquals('eighty-two'   , _write(82))
 	self:assertEquals('eighty-three' , _write(83))
 	self:assertEquals('eighty-four'  , _write(84))
 	self:assertEquals('eighty-five'  , _write(85))
 	self:assertEquals('eighty-six'   , _write(86))
 	self:assertEquals('eighty-seven' , _write(87))
 	self:assertEquals('eighty-eight' , _write(88))
 	self:assertEquals('eighty-nine'  , _write(89))
 	self:assertEquals('ninety'       , _write(90))
 	self:assertEquals('ninety-one'   , _write(91))
 	self:assertEquals('ninety-two'   , _write(92))
 	self:assertEquals('ninety-three' , _write(93))
 	self:assertEquals('ninety-four'  , _write(94))
 	self:assertEquals('ninety-five'  , _write(95))
 	self:assertEquals('ninety-six'   , _write(96))
 	self:assertEquals('ninety-seven' , _write(97))
 	self:assertEquals('ninety-eight' , _write(98))
 	self:assertEquals('ninety-nine'  , _write(99))
 	self:assertEquals('one hundred'  , _write(100))
end

function suite:testGoodInvokeInput()
 	self:assertEquals('four', write{'4'})
 	self:assertEquals('thirteen', write{'13'})
 	self:assertEquals('seventy-seven', write{'77'})
end

function suite:testBadInputInvoke()
	local msg = '<strong class="error">Error: input must be an integer between 0 and ' .. tostring(max) .. '</strong>'
	self:assertEquals(msg, write{'foo'})
	self:assertEquals(msg, write{'-1'})
	self:assertEquals(msg, write{'101'})
	self:assertEquals(msg, write{'3.5'})
end

function suite:testBadInputLua()
	local msg = 'input must be an integer between 0 and ' .. tostring(max)
	self:assertFalse(pcall(_write, 'foo'))
	self:assertFalse(pcall(_write, -1))
	self:assertFalse(pcall(_write, 101))
	self:assertFalse(pcall(_write, 3.5))
	self:assertFalse(pcall(_write, 0/0))
	self:assertFalse(pcall(_write, math.huge))
end

return suite