Only you can help us build a free scout media repository!
Please create an account to start uploading your images now.

Module:FormatLua/tests/toLua

From ScoutMedia, the free scout media repository

Documentation for this module may be created at Module:FormatLua/tests/toLua/doc

local p = require('Module:FormatLua')

x = { 1, 2, 3, 4, nil, 6 }
y = { 10, 20, 30, 40 }
z = { 100, 200, 300 }
x[2] = y
y[2] = x
y[3] = z
z[2] = x

return {
	with = p.toLua,
	'with nil',
	{ initial = nil, expected = 'nil' },
	
	'with number',
	{	initial = 0, expected = '0' },
	{	initial = 20, expected = '20' },
	{	initial = 1.23e+2, expected = '123' },
	{	initial = 123456789, expected = '123456789' },
	{	initial = -99999999999999, expected = '-99999999999999' },
	{	initial = 99999999999999, expected = '99999999999999' },
	{	initial = -100000000000000, expected = '-1e+14' },
	{	initial = 100000000000000, expected = '1e+14' },
	{	initial = -9.9999999999999, expected = '-9.9999999999999' },
	{	initial = 9.9999999999999, expected = '9.9999999999999' },
	{	initial = 1.2345678901234e+0, expected = '1.2345678901234' },
	{	initial = 1.2345678901234e+14, expected = '1.2345678901234e+14' },
	{	initial = 1e18, expected = '1e+18' },
	{	initial = 1.9e18, expected = '1.9e+18' },
	
	'with boolean',
	{	initial = false, expected = 'false' },
	{	initial = true, expected = 'true' },
	
	'with string (empty)',
	{	initial = '', expected = '""' },
	
	'with string (not empty)',
	{	initial = 'nil', expected = '"nil"' },
	{	initial = '1', expected = '"1"' },
	{	initial = '1e0', expected = '"1e0"' },
	{	initial = '123456789', expected = '"123456789"' },
	{	initial = 'false', expected = '"false"' },
	{	initial = 'true', expected = '"true"' },
	{	initial = 'word', expected = '"word"' },
	{	initial = 'Some phrase', expected = '"Some phrase"' },
	{	initial = '« Unicode characters »', expected = '"« Unicode characters »"' },
	{	initial = 'line 1\nline 2', expected = '"line 1\\\nline 2"' },
	{	initial = 'tab\ttab', expected = '"tab\ttab"' },
	{	initial = 'there\'s an apostrophe', expected = '"there\'s an apostrophe"' },
	{	initial = 'text with "quotation marks".', expected = '"text with \\"quotation marks\\"."' },
	
	'with table (empty)',
	{	initial = {}, expected = '{}' },
	
	'with table (unidimensional, default keys)',
	{	initial = {1}, expected = '{1}' },
	{	initial = {1,2,3}, expected = '{1,2,3}' },
	{	initial = {1,2,3,nil}, expected = '{1,2,3}' },
	{	initial = {nil,2,3,4}, expected = '{nil,2,3,4}' },
	{	initial = {1,2,3,nil,5}, expected = '{1,2,3,nil,5}' },
	{	initial = {[3]=3.5,1,2,3,4}, expected = '{1,2,3,4}' },
	{	initial = {[6]=6,1,2,3,4}, expected = '{1,2,3,4,nil,6}' },
	
	'with table (unidimensional, integer keys)',
	{	initial = {[7]=7,1,2,3,4}, expected = '{1,2,3,4,[7]=7}' },
	{	initial = {nil,nil,3,4,5}, expected = '{[3]=3,[4]=4,[5]=5}' },
	{	initial = {1,2,nil,nil,5}, expected = '{1,2,[5]=5}' },
	{	initial = {{1,2},{3,4}}, expected = '{{1,2},{3,4}}' },
	{	initial = {{1,2},a={3,4}}, expected = '{{1,2},a={3,4}}' },
	{	initial = {{1,2},['a']={3,4}}, expected = '{{1,2},a={3,4}}' },
	{	initial = {{1,2},['a b']={3,4}}, expected = '{{1,2},["a b"]={3,4}}' },
	{	initial = {{1,2},['for']={3,4}}, expected = '{{1,2},["for"]={3,4}}' },
	{	initial = {{1,2},['für']={3,4}}, expected = '{{1,2},["für"]={3,4}}' },
	{	initial = {{1,2},['four']={3,4}}, expected = '{{1,2},four={3,4}}' },
	{	initial = {_='_',a='a',Z='Z',art='art',b='b',['a/b']='a/b',["'"]="'",[" "]=" "},
		expected = '{[" "]=" ",_="_",["\'"]="\'",a="a",["a/b"]="a/b",art="art",b="b",Z="Z"}' },
	{	initial = x, expected = 'def(1,{1,{10,ref(1),{100,ref(1),300},40},3,4,nil,6})' },
	{	initial = y, expected = 'def(1,{10,def(2,{1,ref(1),3,4,nil,6}),{100,ref(2),300},40})' },
	{	initial = z, expected = 'def(2,{100,def(1,{1,{10,ref(1),ref(2),40},3,4,nil,6}),300})' },
	
	'with function (limited: parameters, implementation and metatable currently not reflected)',
	{	initial = function(...)end, expected = 'function(...)end' },
}