Current section
Files
Jump to
Current section
Files
test/integrity_test_SUITE.erl
-module(integrity_test_SUITE).
-compile(export_all).
all() -> [
{group, epqueue_group}
].
groups() -> [
{epqueue_group, [sequence], [
basic_ops,
empty_queue,
non_empty_queue,
test_remove,
test_pop
]}
].
init_per_suite(Config) ->
Config.
end_per_suite(_Config) ->
ok.
basic_ops(_Config) ->
{ok, Q} = epqueue:new([]),
{ok, _Ref} = epqueue:insert(Q, 1, 1),
{ok, 1, 1} = epqueue:peek(Q),
1 = epqueue:size(Q),
{ok, 1, 1} = epqueue:pop(Q),
0 = epqueue:size(Q),
ok.
empty_queue(_Config) ->
{ok, _} = epqueue:new([]),
ok.
non_empty_queue(_Config) ->
{ok, Q1} = epqueue:new([]),
{ok, _} = epqueue:insert(Q1, 1, 1),
{ok, _} = epqueue:insert(Q1, 2, 2),
{ok, _} = epqueue:insert(Q1, 3, 3),
{ok, _} = epqueue:insert(Q1, 4, 4),
{ok, _} = epqueue:insert(Q1, 5, 5),
ok.
test_remove(_Config) ->
{ok, Q1} = epqueue:new([]),
{ok, Q2} = epqueue:new([]),
{ok, Ref7} = epqueue:insert(Q2, 7, 7),
{ok, Ref3} = epqueue:insert(Q1, 3, 3),
{ok, Ref5} = epqueue:insert(Q1, 5, 5),
{ok, Ref1} = epqueue:insert(Q1, 1, 1),
false = epqueue:remove(Q1, Ref7),
true = epqueue:remove(Q1, Ref5),
true = epqueue:remove(Q1, Ref3),
true = epqueue:remove(Q1, Ref1),
true = epqueue:remove(Q2, Ref7),
ok.
test_pop(_Config) ->
{ok, Q1} = epqueue:new([]),
epqueue:insert(Q1, 3, 3),
epqueue:insert(Q1, 5, 5),
epqueue:insert(Q1, 1, 1),
{ok, 1, 1} = epqueue:pop(Q1),
{ok, 3, 3} = epqueue:pop(Q1),
{ok, 5, 5} = epqueue:pop(Q1),
ok.