local function equal_arrays(a, b)
if #a ~= #b then
return false
end
for index = 1, #a do
if a[index] ~= b[index] then
return false
end
end
return true
end
local function sorted_copy(t)
local result = table.move(t, 1, #t, 1, {})
table.sort(result)
return result
end
local n1 = {1, 2, 3}
local n2 = {1, 2, 3}
local n3 = {3, 2, 1}
-- == compares references, not the items
local by_operator = n1 == n2
-- by_operator = false
local alias = n1
local same_table = alias == n1
-- same_table = true
local equal1 = equal_arrays(n1, n2)
-- equal1 = true
local equal2 = equal_arrays(n1, n3)
-- equal2 = false
-- Same items in any order: compare sorted copies
local equal3 =
equal_arrays(sorted_copy(n1), sorted_copy(n3))
-- equal3 = true
print("by_operator = " .. tostring(by_operator))
print("same_table = " .. tostring(same_table))
print("equal1 = " .. tostring(equal1))
print("equal2 = " .. tostring(equal2))
print("equal3 = " .. tostring(equal3))