From 6c341f966a190c8c167d91f1a780ec5d0f600569 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Tue, 18 Nov 2014 16:58:17 +0100 Subject: [PATCH] MT#10199 add table.merge function --- ngcp/utils.lua | 9 +++++++++ tests/utils.lua | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ngcp/utils.lua b/ngcp/utils.lua index 18b95d4..e20748b 100644 --- a/ngcp/utils.lua +++ b/ngcp/utils.lua @@ -95,6 +95,15 @@ function table.del(t, element) end end +function table.merge(t, other) + if t and other then + for _, value in ipairs(other) do + table.add(t, value) + end + end + return t; +end + function table.val_to_str ( v ) if "string" == type( v ) then v = string.gsub( v, "\n", "\\n" ) diff --git a/tests/utils.lua b/tests/utils.lua index 8f348d1..3421804 100644 --- a/tests/utils.lua +++ b/tests/utils.lua @@ -170,6 +170,21 @@ TestUtils = {} --class assertFalse(string.ends("goga", "f")) assertError(string.ends, "goga", nil) end + + function TestUtils:test_table_merge() + assertEquals(self.simple_list, {1,2,3}) + table.merge(self.simple_list, {1}) + assertEquals(self.simple_list, {1,2,3}) + table.merge(self.simple_list, {5}) + assertEquals(self.simple_list, {1,2,3,5}) + table.merge(self.simple_list, {5,4}) + assertEquals(self.simple_list, {1,2,3,5,4}) + table.merge(nil, nil) + table.merge(nil, {}) + local tmp = {} + table.merge(tmp, {1,2,3,5,4}) + assertEquals(tmp, {1,2,3,5,4}) + end -- class TestUtils TestStack = {}