package.path = "?.lua;test/lua/errors/?.lua" require 'args' -- arg type tests for table library functions -- table.concat local somestringstable = {{8,7,6,5,4,3,2,1,}} local somenonstringtable = {{true,true,true,true,true,true,true,true,}} local somesep = {',',1.23} local notasep = {aboolean,atable,afunction} local somei = {2,'2','2.2'} local somej = {4,'4','4.4'} local notij = {astring,aboolean,atable,afunction} banner('table.concat') checkallpass('table.concat',{somestringstable}) checkallpass('table.concat',{somestringstable,somesep}) checkallpass('table.concat',{somestringstable,{'-'},somei}) checkallpass('table.concat',{somestringstable,{'-'},{2},somej}) checkallerrors('table.concat',{notatable},'bad argument') checkallerrors('table.concat',{somenonstringtable},'boolean') checkallerrors('table.concat',{somestringstable,notasep},'bad argument') checkallerrors('table.concat',{somestringstable,{'-'},notij},'bad argument') checkallerrors('table.concat',{somestringstable,{'-'},{2},notij},'bad argument') -- table.insert banner('table.insert') checkallpass('table.insert',{sometable,notanil}) checkallpass('table.insert',{sometable,somei,notanil}) checkallerrors('table.insert',{notatable,somestring},'bad argument') checkallerrors('table.insert',{sometable,notij,notanil},'bad argument') -- table.maxn banner('table.maxn') checkallpass('table.maxn',{sometable}) checkallerrors('table.maxn',{notatable},'bad argument') -- table.remove banner('table.remove') checkallpass('table.remove',{sometable}) checkallpass('table.remove',{sometable,somei}) checkallerrors('table.remove',{notatable},'bad argument') checkallerrors('table.remove',{notatable,somei},'bad argument') checkallerrors('table.remove',{sometable,notij},'bad argument') -- table.sort local somecomp = {nil,afunction,n=2} local notacomp = {astring,anumber,aboolean,atable} banner('table.sort') checkallpass('table.sort',{somestringstable,somecomp}) checkallerrors('table.sort',{sometable},'attempt to') checkallerrors('table.sort',{notatable,somecomp},'bad argument') checkallerrors('table.sort',{sometable,notacomp},'bad argument') -- table get banner('table_get - tbl[key]') function table_get(tbl,key) return tbl[key] end checkallpass('table_get',{sometable,anylua}) -- table set banner('table_set - tbl[key]=val') function table_set(tbl,key,val) tbl[key]=val end function table_set_nil_key(tbl,val) tbl[nil]=val end checkallpass('table_set',{sometable,notanil,anylua}) checkallerrors('table_set_nil_key',{sometable,anylua},'table index')