do --- length increasing and decreasing in loop
  local t = {}
  for i=1,100 do t[#t+1] = i end
  assert(#t == 100)
  for i=1,100 do t[#t] = nil end
  assert(#t == 0)
end

do --- length increasing in loop with existing element
  local t = {}
  t[90] = 999
  for i=1,100 do t[#t+1] = i end
  assert(#t > 100 and t[#t] == 100)
end

do --- length decreasing in loop with erased element
  local t = {}
  for i=1,100 do t[i] = i end
  t[10] = nil
  for i=1,99 do t[#t] = nil end
  assert(#t == 0)
end