Improve unit test for "next()" function
This commit is contained in:
@@ -1,14 +1,28 @@
|
|||||||
|
|
||||||
|
-- call with arg 'true' to turn on error messages
|
||||||
|
local messages = select(1,...)
|
||||||
|
function mpcall(...)
|
||||||
|
if messages then return pcall(...)
|
||||||
|
else return (pcall(...)) end
|
||||||
|
end
|
||||||
|
|
||||||
-- unit tests for the next() function
|
-- unit tests for the next() function
|
||||||
function donexts(tag,table,count)
|
function checkvalues(tag, tbl)
|
||||||
local index = nil
|
local values = {}
|
||||||
for i = 1,count do
|
local index,value = next(tbl,nil)
|
||||||
index,value = next(table,index)
|
while index do
|
||||||
print( tag, index, value )
|
table.insert( values, tostring(index).."="..tostring(value) )
|
||||||
|
index,value = next(tbl,index)
|
||||||
end
|
end
|
||||||
print( tag, '--- -1', 'pcall( next, table,-1 )', pcall( next, table,-1 ) )
|
table.sort( values )
|
||||||
print( tag, '--- 0', 'pcall( next, table,0 )', pcall( next, table,0 ) )
|
print( tag, "values: {"..table.concat(values,",").."}" )
|
||||||
print( tag, '---"a"', 'pcall( next, table,"a" )', pcall( next, table,"a" ) )
|
end
|
||||||
print( tag, '--- 10', 'pcall( next, table, 10 )', pcall( next, table, 10 ) )
|
function donexts(tag,tbl,count)
|
||||||
|
checkvalues(tag,tbl)
|
||||||
|
print( tag, '--- -1', 'pcall( next, tbl,-1 )', mpcall( next, tbl,-1 ) )
|
||||||
|
print( tag, '--- 0', 'pcall( next, tbl,0 )', mpcall( next, tbl,0 ) )
|
||||||
|
print( tag, '---"a"', 'pcall( next, tbl,"a" )', mpcall( next, tbl,"a" ) )
|
||||||
|
print( tag, '--- 10', 'pcall( next, tbl, 10 )', mpcall( next, tbl, 10 ) )
|
||||||
end
|
end
|
||||||
donexts( 'next1', {}, 2 )
|
donexts( 'next1', {}, 2 )
|
||||||
donexts( 'next2', {'one', 'two', 'three' }, 5 )
|
donexts( 'next2', {'one', 'two', 'three' }, 5 )
|
||||||
@@ -16,8 +30,8 @@ donexts( 'next3', { aa='aaa', bb='bbb', cc='ccc', [20]='20', [30]='30'}, 7 )
|
|||||||
donexts( 'next4', {'one', 'two', 'three', aa='aaa', bb='bbb', cc='ccc', [20]='20', [30]='30'}, 9 )
|
donexts( 'next4', {'one', 'two', 'three', aa='aaa', bb='bbb', cc='ccc', [20]='20', [30]='30'}, 9 )
|
||||||
donexts( 'next5', {'one', 'two', 'three', [-1]='minus-one', [0]='zero' }, 7 )
|
donexts( 'next5', {'one', 'two', 'three', [-1]='minus-one', [0]='zero' }, 7 )
|
||||||
|
|
||||||
print( 'pcall(next)', pcall(next) )
|
print( 'pcall(next)', mpcall(next) )
|
||||||
print( 'pcall(next,nil)', pcall(next,nil) )
|
print( 'pcall(next,nil)', mpcall(next,nil) )
|
||||||
print( 'pcall(next,"a")', pcall(next,"a") )
|
print( 'pcall(next,"a")', mpcall(next,"a") )
|
||||||
print( 'pcall(next,1)', pcall(next,1) )
|
print( 'pcall(next,1)', mpcall(next,1) )
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user