Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local test = function (mode, t, k, v, k2, v2)
- print('', 'k == ' .. tostring(k), 'v == ' .. tostring(v))
- print('', 'k2 == ' .. tostring(k2), 'v2 == ' .. tostring(v2))
- collectgarbage()
- for k,v in pairs(t) do print('',k,v) end
- print('')
- end
- local testmt = function (mode)
- local t = setmetatable({},{__mode = mode})
- local k, k2, v, v2 = {},{},{},{}
- t[k] = v
- t[k2] = v2
- t[v] = k2
- t[v2] = k
- print('testing mode ' .. mode)
- table.insert(t,k); print('t[1] == k')
- table.insert(t,k2); print('t[2] == k2')
- table.insert(t,v); print('t[3] == v')
- table.insert(t,v2); print('t[4] == v2')
- test(mode,t,k,v,k2,v2)
- k = nil
- test(mode,t,k,v,k2,v2)
- v2 = nil
- test(mode,t,k,v,k2,v2)
- k2 = nil
- test(mode,t,k,v,k2,v2)
- v = nil
- test(mode,t,k,v,k2,v2)
- print('mode ' .. mode .. ' complete.')
- print('')
- end
- for _,v in ipairs{'k','v','kv'} do testmt(v) end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement