diff --git a/ngcp/utils.lua b/ngcp/utils.lua index 1ffcb08..454f1b3 100644 --- a/ngcp/utils.lua +++ b/ngcp/utils.lua @@ -31,6 +31,13 @@ function table.contains(table, element) return false end +-- add if element is not in table +function table.add(t, element) + if not table.contains(t, element) then + table.insert(t, element) + end +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 e269abb..2c10c71 100644 --- a/tests/utils.lua +++ b/tests/utils.lua @@ -31,6 +31,16 @@ TestUtils = {} --class assertError(table.contains, "hola",1) end + function TestUtils:test_table_add() + assertEquals(self.simple_list, {1,2,3}) + table.add(self.simple_list, 1) + assertEquals(self.simple_list, {1,2,3}) + table.add(self.simple_list, 5) + assertEquals(self.simple_list, {1,2,3,5}) + table.add(self.simple_list, 4) + assertEquals(self.simple_list, {1,2,3,5,4}) + end + function TestUtils:test_table_tostring() assertError(table.tostring,nil) assertEquals(table.tostring(self.simple_list), "{1,2,3}")