Modulo:Iletra ti bilang/pangsubok

-- Pangsubok a kaskaso para iti [[Modulo:]]. Pinduten ti tungtunganna a panid tapno maipataray dagiti pangsubok.

local ns = require('Modulo:Iletra ti bilang')
local ScribuntoUnit = require('Modulo:ScribuntoUnit')
local suite = ScribuntoUnit:new()

local write = ns.main
local _write = ns._main

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

function suite:test0To100()
	self:assertEquals('sero'         , _write(0))
 	self:assertEquals('maysa'          , _write(1))
 	self:assertEquals('dua'          , _write(2))
 	self:assertEquals('tallo'        , _write(3))
 	self:assertEquals('uppat'         , _write(4))
 	self:assertEquals('lima'         , _write(5))
 	self:assertEquals('innem'          , _write(6))
 	self:assertEquals('pito'        , _write(7))
 	self:assertEquals('walo'        , _write(8))
 	self:assertEquals('siam'         , _write(9))
 	self:assertEquals('sangapulo'          , _write(10))
 	self:assertEquals('sangapulo ket maysa'       , _write(11))
 	self:assertEquals('sangapulo ket dua'       , _write(12))
 	self:assertEquals('sangapulo ket tallo'     , _write(13))
 	self:assertEquals('sangapulo ket uppat'     , _write(14))
 	self:assertEquals('sangapulo ket lima'      , _write(15))
 	self:assertEquals('sangapulo ket innem'      , _write(16))
 	self:assertEquals('sangapulo ket pito'    , _write(17))
 	self:assertEquals('sangapulo ket walo'     , _write(18))
 	self:assertEquals('sangapulo ket siam'     , _write(19))
 	self:assertEquals('duapulo'       , _write(20))
 	self:assertEquals('duapulo ket maysa'   , _write(21))
 	self:assertEquals('duapulo ket dua'   , _write(22))
 	self:assertEquals('duapulo ket tallo' , _write(23))
 	self:assertEquals('duapulo ket uppat'  , _write(24))
 	self:assertEquals('duapulo ket lima'  , _write(25))
 	self:assertEquals('duapulo ket innem'   , _write(26))
 	self:assertEquals('duapulo ket pito' , _write(27))
 	self:assertEquals('duapulo ket walo' , _write(28))
 	self:assertEquals('duapulo ket siam'  , _write(29))
 	self:assertEquals('tallopulo'       , _write(30))
 	self:assertEquals('tallopulo ket maysa'   , _write(31))
 	self:assertEquals('tallopulo ket dua'   , _write(32))
 	self:assertEquals('tallopulo ket tallo' , _write(33))
 	self:assertEquals('tallopulo ket uppat'  , _write(34))
 	self:assertEquals('tallopulo ket lima'  , _write(35))
 	self:assertEquals('tallopulo ket innem'   , _write(36))
 	self:assertEquals('tallopulo ket pito' , _write(37))
 	self:assertEquals('tallopulo ket walo' , _write(38))
 	self:assertEquals('tallopulo ket siam'  , _write(39))
 	self:assertEquals('uppat a pulo'        , _write(40))
 	self:assertEquals('uppat a pulo ket maysa'    , _write(41))
 	self:assertEquals('uppat a pulo ket dua'    , _write(42))
 	self:assertEquals('uppat a pulo ket tallo'  , _write(43))
 	self:assertEquals('uppat a pulo ket uppat'   , _write(44))
 	self:assertEquals('uppat a pulo ket lima'   , _write(45))
 	self:assertEquals('uppat a pulo ket innem'    , _write(46))
 	self:assertEquals('uppat a pulo ket pito'  , _write(47))
 	self:assertEquals('uppat a pulo ket walo'  , _write(48))
 	self:assertEquals('uppat a pulo ket siam'   , _write(49))
 	self:assertEquals('limapulo'        , _write(50))
 	self:assertEquals('limapulo ket maysa'    , _write(51))
 	self:assertEquals('limapulo ket dua'    , _write(52))
 	self:assertEquals('limapulo ket tallo'  , _write(53))
 	self:assertEquals('limapulo ket uppat'   , _write(54))
 	self:assertEquals('limapulo ket lima'   , _write(55))
 	self:assertEquals('limapulo ket innem'    , _write(56))
 	self:assertEquals('limapulo ket pito'  , _write(57))
 	self:assertEquals('limapulo ket walo'  , _write(58))
 	self:assertEquals('limapulo ket siam'   , _write(59))
 	self:assertEquals('innem a pulo'        , _write(60))
 	self:assertEquals('innem a pulo ket maysa'    , _write(61))
 	self:assertEquals('innem a pulo ket dua'    , _write(62))
 	self:assertEquals('innem a pulo ket tallo'  , _write(63))
 	self:assertEquals('innem a pulo ket uppat'   , _write(64))
 	self:assertEquals('innem a pulo ket lima'   , _write(65))
 	self:assertEquals('innem a pulo ket innem'    , _write(66))
 	self:assertEquals('innem a pulo ket pito'  , _write(67))
 	self:assertEquals('innem a pulo ket walo'  , _write(68))
 	self:assertEquals('innem a pulo ket siam'   , _write(69))
 	self:assertEquals('pitopulo'      , _write(70))
 	self:assertEquals('pitopulo ket maysa'  , _write(71))
 	self:assertEquals('pitopulo ket dua'  , _write(72))
 	self:assertEquals('pitopulo ket tallo', _write(73))
 	self:assertEquals('pitopulo ket uppat' , _write(74))
 	self:assertEquals('pitopulo ket lima' , _write(75))
 	self:assertEquals('pitopulo ket innem'  , _write(76))
 	self:assertEquals('pitopulo ket pito', _write(77))
 	self:assertEquals('pitopulo ket walo', _write(78))
 	self:assertEquals('pitopulo ket siam' , _write(79))
 	self:assertEquals('walopulo'       , _write(80))
 	self:assertEquals('walopulo ket maysa'   , _write(81))
 	self:assertEquals('walopulo ket dua'   , _write(82))
 	self:assertEquals('walopulo ket tallo' , _write(83))
 	self:assertEquals('walopulo ket uppat'  , _write(84))
 	self:assertEquals('walopulo ket lima'  , _write(85))
 	self:assertEquals('walopulo ket innem'   , _write(86))
 	self:assertEquals('walopulo ket pito' , _write(87))
 	self:assertEquals('walopulo ket walo' , _write(88))
 	self:assertEquals('walopulo ket siam'  , _write(89))
 	self:assertEquals('siam a pulo'       , _write(90))
 	self:assertEquals('siam a pulo ket maysa'   , _write(91))
 	self:assertEquals('siam a pulo ket dua'   , _write(92))
 	self:assertEquals('siam a pulo ket tallo' , _write(93))
 	self:assertEquals('siam a pulo ket uppat'  , _write(94))
 	self:assertEquals('siam a pulo ket lima'  , _write(95))
 	self:assertEquals('siam a pulo ket innem'   , _write(96))
 	self:assertEquals('siam a pulo ket pito' , _write(97))
 	self:assertEquals('siam a pulo ket walo' , _write(98))
 	self:assertEquals('siam a pulo ket siam'  , _write(99))
 	self:assertEquals('sangagasut'  , _write(100))
end

function suite:testGoodInvokeInput()
 	self:assertEquals('uppat', write{'4'})
 	self:assertEquals('sangapulo ket tallo', write{'13'})
 	self:assertEquals('pitopulo ket pito', write{'77'})
end

function suite:testBadInputInvoke()
	local msg = '<strong class="error">Biddut: ti maikabil ket nasken a maysa a sibubukel a bilang a nagbaetan ti 0 ken ' .. 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()
	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