diff --git a/test/lang/index b/test/lang/index index df5ed675c5..88e2edfac7 100644 --- a/test/lang/index +++ b/test/lang/index @@ -8,6 +8,7 @@ length.lua modulo.lua concat.lua self.lua +table.lua upvalue coroutine.lua tail_recursion.lua diff --git a/test/lang/table.lua b/test/lang/table.lua new file mode 100644 index 0000000000..3ff38cfe78 --- /dev/null +++ b/test/lang/table.lua @@ -0,0 +1,32 @@ +do --- tables as keys in tables + local fwd, bck = {}, {} + for i = 1,100 do + local v = {} + fwd[i] = v + bck[v] = i + end + for i = 1,100 do + local v = fwd[i] + assert(type(v) == "table") + assert(bck[v] == i) + end +end + +do --- some tables as keys in tables + local fwd, bck = {}, {} + for i = 1,100 do + local v = {} + fwd[i] = v + if i > 90 then + bck[v] = i + end + end + local n = 0 + for i = 1, 100 do + local v = fwd[i] + if bck[v] then + n = n + 1 + end + end + assert(n == 10) +end