Files
n8n-openai-adapter/test/elixir/ets_test.exs
T

79 lines
1.8 KiB
Elixir

Code.require_file "../test_helper", __FILE__
module ETSTest
mixin ExUnit::Case
def setup(test)
table = ETS.create 'sometable, setup_options(test)
table.insert {"Andrew", 21, 'boy, 'minsk}
table.insert {"Mary", 19, 'girl, 'moscow}
table.insert {"Jane", 20, 'girl, 'london}
table.insert {"Jack", 21, 'boy, 'paris}
@('table, table)
end
def teardown(_)
@table.delete
end
% General tests for each table type
def ets_set_test
1 = @table.lookup("Mary").size
true = @table.update_element "Mary", 4, 'oslo
false = @table.update_element "John", 2, 18
self.assert_error 'badarg, -> @table.update_element "Mary", 1, "Suzzy"
end
def ets_ord_test
21 = @table.last
19 = @table.first
[{"Jack", _, _, _}] = @table.lookup 21
end
def ets_bag_test
[{_, year, sex, _}] = @table.lookup "Jane"
false = @table.insert_new({"Jane", year, sex, 'rome})
[{_, _, _, 'london}] = @table.lookup "Jane"
['boy] = @table.lookup_element "Andrew", 3
true = @table.member? "Andrew"
true = @table.include? "Andrew"
self.assert_error 'badarg, -> @table.lookup_element "Peter", 3
self.assert_error 'badarg, -> @table.update_element "Mary", 2, 21
@table.insert({"Jane", 20, 'girl, 'london})
@table.insert({"Jane", 20, 'girl, 'berlin})
[20, 20] = @table.lookup_element "Jane", 2
2 = @table.lookup("Jane").size
end
def ets_dup_test
@table.insert({"Jane", 20, 'girl, 'london})
@table.insert({"Jane", 22, 'girl, 'berlin})
3 = @table.lookup("Jane").size
end
% Specific tests for each method
private
def setup_options 'ets_ord_test
['ordered_set, 'keypos/2]
end
def setup_options 'ets_bag_test
['bag]
end
def setup_options 'ets_dup_test
['duplicate_bag]
end
def setup_options _
['set]
end
end