The above documentation is transcluded from Module:ObjectArg/testcases/doc. (edit | history)
local parse = require 'Module:ObjectArg'.parse
local suite = require 'Module:ScribuntoUnit':new()
function suite:testNumber ()
suite:assertEquals(1, parse '1')
suite:assertEquals(1, parse ' \t\r\n 1 \n\t\r ')
suite:assertEquals(0, parse '0.0')
suite:assertEquals(-0x123, parse '-0x123')
end
function suite:testString ()
suite:assertEquals('a', parse 'a')
suite:assertEquals('a b c', parse ' \t\r\n a b c \n\t\r ')
suite:assertEquals('a"\'', parse 'a"\'')
end
function suite:testList ()
suite:assertDeepEquals({}, parse '[]')
suite:assertDeepEquals({3}, parse ' [ 3 ] ')
suite:assertDeepEquals({}, parse '[;]')
suite:assertDeepEquals({[2] = 3}, parse '[;3]')
suite:assertDeepEquals({5, 6, 7, [5] = 'a'}, parse '[5;6;7;;a]')
suite:assertDeepEquals({{}, {[2] = {}}}, parse '[[];[;[]]]')
suite:assertDeepEquals({{}, {{}, {}}}, parse '[{};[{};{}]]')
end
function suite:testHash ()
suite:assertDeepEquals({}, parse '{}')
suite:assertDeepEquals({a = 'b'}, parse ' { a = b } ')
suite:assertDeepEquals({y = 3}, parse '{x=;y=3;z=}')
suite:assertDeepEquals({[4] = 'x'}, parse '{4=x}')
suite:assertDeepEquals({a = {b = {c = {'d'}}}}, parse '{a={b={c=[d]}}}')
end
return suite