Current section

Files

Jump to
gleam_stdlib gen test gleam@queue_test.erl
Raw

gen/test/gleam@queue_test.erl

-module(gleam@queue_test).
-compile(no_auto_import).
-export([from_and_to_list_test/0, is_empty_test/0, length_test/0, push_back_test/0, push_front_test/0, push_test/0, pop_back_test/0, pop_back_after_push_back_test/0, pop_back_after_push_test/0, pop_back_empty_test/0, pop_front_test/0, pop_front_after_push_front_test/0, pop_front_after_push_test/0, pop_front_empty_test/0, reverse_test/0, is_equal_test/0, is_logically_equal_test/0]).
-spec from_and_to_list_test() -> nil.
from_and_to_list_test() ->
_pipe = gleam@queue:from_list([]),
gleam@should:equal(_pipe, gleam@queue:new()),
_pipe@1 = [1],
_pipe@2 = gleam@queue:from_list(_pipe@1),
_pipe@3 = gleam@queue:to_list(_pipe@2),
gleam@should:equal(_pipe@3, [1]),
_pipe@4 = [1, 2],
_pipe@5 = gleam@queue:from_list(_pipe@4),
_pipe@6 = gleam@queue:to_list(_pipe@5),
gleam@should:equal(_pipe@6, [1, 2]),
_pipe@7 = [1, 2, 3],
_pipe@8 = gleam@queue:from_list(_pipe@7),
_pipe@9 = gleam@queue:to_list(_pipe@8),
gleam@should:equal(_pipe@9, [1, 2, 3]).
-spec is_empty_test() -> nil.
is_empty_test() ->
_pipe = gleam@queue:new(),
_pipe@1 = gleam@queue:is_empty(_pipe),
gleam@should:be_true(_pipe@1),
_pipe@2 = gleam@queue:from_list([<<""/utf8>>]),
_pipe@3 = gleam@queue:is_empty(_pipe@2),
gleam@should:be_false(_pipe@3).
-spec length_test() -> nil.
length_test() ->
Test = fun(Input) ->
_pipe = gleam@queue:from_list(Input),
_pipe@1 = gleam@queue:length(_pipe),
gleam@should:equal(_pipe@1, gleam@list:length(Input))
end,
Test([]),
Test([1]),
Test([1, 2]),
Test([1, 2, 1]),
Test([1, 2, 1, 5, 2, 7, 2, 7, 8, 4, 545]).
-spec push_back_test() -> nil.
push_back_test() ->
_pipe = [1, 2],
_pipe@1 = gleam@queue:from_list(_pipe),
_pipe@2 = gleam@queue:push_back(_pipe@1, 3),
_pipe@3 = gleam@queue:to_list(_pipe@2),
gleam@should:equal(_pipe@3, [1, 2, 3]),
_pipe@4 = gleam@queue:new(),
_pipe@5 = gleam@queue:push_back(_pipe@4, 1),
_pipe@6 = gleam@queue:push_back(_pipe@5, 2),
_pipe@7 = gleam@queue:push_back(_pipe@6, 3),
_pipe@8 = gleam@queue:to_list(_pipe@7),
gleam@should:equal(_pipe@8, [1, 2, 3]).
-spec push_front_test() -> nil.
push_front_test() ->
_pipe = [2, 3],
_pipe@1 = gleam@queue:from_list(_pipe),
_pipe@2 = gleam@queue:push_front(_pipe@1, 1),
_pipe@3 = gleam@queue:push_front(_pipe@2, 0),
_pipe@4 = gleam@queue:to_list(_pipe@3),
gleam@should:equal(_pipe@4, [0, 1, 2, 3]).
-spec push_test() -> nil.
push_test() ->
_pipe = gleam@queue:new(),
_pipe@1 = gleam@queue:push_front(_pipe, <<"b"/utf8>>),
_pipe@2 = gleam@queue:push_back(_pipe@1, <<"x"/utf8>>),
_pipe@3 = gleam@queue:push_front(_pipe@2, <<"a"/utf8>>),
_pipe@4 = gleam@queue:push_back(_pipe@3, <<"y"/utf8>>),
_pipe@5 = gleam@queue:to_list(_pipe@4),
gleam@should:equal(
_pipe@5,
[<<"a"/utf8>>, <<"b"/utf8>>, <<"x"/utf8>>, <<"y"/utf8>>]
).
-spec pop_back_test() -> nil.
pop_back_test() ->
{ok, Tup@1} = case begin
_pipe = [1, 2, 3],
_pipe@1 = gleam@queue:from_list(_pipe),
gleam@queue:pop_back(_pipe@1)
end of
{ok, Tup} -> {ok, Tup};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/queue_test"/utf8>>,
function => <<"pop_back_test"/utf8>>,
line => 87})
end,
_pipe@2 = Tup@1,
_pipe@3 = gleam@pair:first(_pipe@2),
gleam@should:equal(_pipe@3, 3),
_pipe@4 = Tup@1,
_pipe@5 = gleam@pair:second(_pipe@4),
_pipe@6 = gleam@queue:is_equal(_pipe@5, gleam@queue:from_list([1, 2])),
gleam@should:be_true(_pipe@6).
-spec pop_back_after_push_back_test() -> nil.
pop_back_after_push_back_test() ->
{ok, Tup@1} = case begin
_pipe = gleam@queue:new(),
_pipe@1 = gleam@queue:push_back(_pipe, 1),
_pipe@2 = gleam@queue:push_back(_pipe@1, 2),
_pipe@3 = gleam@queue:push_back(_pipe@2, 3),
gleam@queue:pop_back(_pipe@3)
end of
{ok, Tup} -> {ok, Tup};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/queue_test"/utf8>>,
function => <<"pop_back_after_push_back_test"/utf8>>,
line => 103})
end,
_pipe@4 = Tup@1,
_pipe@5 = gleam@pair:first(_pipe@4),
gleam@should:equal(_pipe@5, 3).
-spec pop_back_after_push_test() -> nil.
pop_back_after_push_test() ->
{ok, Tup@1} = case begin
_pipe = gleam@queue:new(),
_pipe@1 = gleam@queue:push_front(_pipe, <<"b"/utf8>>),
_pipe@2 = gleam@queue:push_back(_pipe@1, <<"x"/utf8>>),
_pipe@3 = gleam@queue:push_front(_pipe@2, <<"a"/utf8>>),
_pipe@4 = gleam@queue:push_back(_pipe@3, <<"y"/utf8>>),
gleam@queue:pop_back(_pipe@4)
end of
{ok, Tup} -> {ok, Tup};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/queue_test"/utf8>>,
function => <<"pop_back_after_push_test"/utf8>>,
line => 116})
end,
_pipe@5 = Tup@1,
_pipe@6 = gleam@pair:first(_pipe@5),
gleam@should:equal(_pipe@6, <<"y"/utf8>>).
-spec pop_back_empty_test() -> nil.
pop_back_empty_test() ->
_pipe = gleam@queue:from_list([]),
_pipe@1 = gleam@queue:pop_back(_pipe),
gleam@should:equal(_pipe@1, {error, nil}).
-spec pop_front_test() -> nil.
pop_front_test() ->
{ok, Tup@1} = case begin
_pipe = [1, 2, 3],
_pipe@1 = gleam@queue:from_list(_pipe),
gleam@queue:pop_front(_pipe@1)
end of
{ok, Tup} -> {ok, Tup};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/queue_test"/utf8>>,
function => <<"pop_front_test"/utf8>>,
line => 136})
end,
_pipe@2 = Tup@1,
_pipe@3 = gleam@pair:first(_pipe@2),
gleam@should:equal(_pipe@3, 1),
_pipe@4 = Tup@1,
_pipe@5 = gleam@pair:second(_pipe@4),
_pipe@6 = gleam@queue:is_equal(_pipe@5, gleam@queue:from_list([2, 3])),
gleam@should:be_true(_pipe@6).
-spec pop_front_after_push_front_test() -> nil.
pop_front_after_push_front_test() ->
{ok, Tup@1} = case begin
_pipe = gleam@queue:new(),
_pipe@1 = gleam@queue:push_front(_pipe, 3),
_pipe@2 = gleam@queue:push_front(_pipe@1, 2),
_pipe@3 = gleam@queue:push_front(_pipe@2, 1),
gleam@queue:pop_front(_pipe@3)
end of
{ok, Tup} -> {ok, Tup};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/queue_test"/utf8>>,
function => <<"pop_front_after_push_front_test"/utf8>>,
line => 152})
end,
_pipe@4 = Tup@1,
_pipe@5 = gleam@pair:first(_pipe@4),
gleam@should:equal(_pipe@5, 1).
-spec pop_front_after_push_test() -> nil.
pop_front_after_push_test() ->
{ok, Tup@1} = case begin
_pipe = gleam@queue:new(),
_pipe@1 = gleam@queue:push_front(_pipe, <<"b"/utf8>>),
_pipe@2 = gleam@queue:push_back(_pipe@1, <<"x"/utf8>>),
_pipe@3 = gleam@queue:push_front(_pipe@2, <<"a"/utf8>>),
gleam@queue:pop_front(_pipe@3)
end of
{ok, Tup} -> {ok, Tup};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/queue_test"/utf8>>,
function => <<"pop_front_after_push_test"/utf8>>,
line => 165})
end,
_pipe@4 = Tup@1,
_pipe@5 = gleam@pair:first(_pipe@4),
gleam@should:equal(_pipe@5, <<"a"/utf8>>).
-spec pop_front_empty_test() -> nil.
pop_front_empty_test() ->
_pipe = gleam@queue:from_list([]),
_pipe@1 = gleam@queue:pop_front(_pipe),
gleam@should:equal(_pipe@1, {error, nil}).
-spec reverse_test() -> nil.
reverse_test() ->
_pipe = gleam@queue:from_list([1, 2, 3]),
_pipe@1 = gleam@queue:reverse(_pipe),
_pipe@2 = gleam@queue:to_list(_pipe@1),
gleam@should:equal(_pipe@2, [3, 2, 1]),
_pipe@3 = gleam@queue:new(),
_pipe@4 = gleam@queue:push_back(_pipe@3, 1),
_pipe@5 = gleam@queue:push_back(_pipe@4, 2),
_pipe@6 = gleam@queue:push_back(_pipe@5, 3),
_pipe@7 = gleam@queue:reverse(_pipe@6),
_pipe@8 = gleam@queue:to_list(_pipe@7),
gleam@should:equal(_pipe@8, [3, 2, 1]),
_pipe@9 = gleam@queue:new(),
_pipe@10 = gleam@queue:push_front(_pipe@9, 1),
_pipe@11 = gleam@queue:push_front(_pipe@10, 2),
_pipe@12 = gleam@queue:push_front(_pipe@11, 3),
_pipe@13 = gleam@queue:reverse(_pipe@12),
_pipe@14 = gleam@queue:to_list(_pipe@13),
gleam@should:equal(_pipe@14, [1, 2, 3]),
_pipe@15 = gleam@queue:new(),
_pipe@16 = gleam@queue:push_front(_pipe@15, 1),
_pipe@17 = gleam@queue:push_front(_pipe@16, 2),
_pipe@18 = gleam@queue:push_back(_pipe@17, 3),
_pipe@19 = gleam@queue:push_back(_pipe@18, 4),
_pipe@20 = gleam@queue:reverse(_pipe@19),
_pipe@21 = gleam@queue:to_list(_pipe@20),
gleam@should:equal(_pipe@21, [4, 3, 1, 2]).
-spec is_equal_test() -> nil.
is_equal_test() ->
Should_equal = fun(A, B) ->
_pipe = A,
_pipe@1 = gleam@queue:is_equal(_pipe, B),
gleam@should:be_true(_pipe@1)
end,
Should_not_equal = fun(A@1, B@1) ->
_pipe@2 = A@1,
_pipe@3 = gleam@queue:is_equal(_pipe@2, B@1),
gleam@should:be_false(_pipe@3)
end,
Should_equal(gleam@queue:new(), gleam@queue:new()),
_pipe@4 = gleam@queue:new(),
_pipe@5 = gleam@queue:push_front(_pipe@4, 1),
Should_equal(
_pipe@5,
begin
_pipe@6 = gleam@queue:new(),
gleam@queue:push_back(_pipe@6, 1)
end
),
_pipe@7 = gleam@queue:new(),
_pipe@8 = gleam@queue:push_front(_pipe@7, 1),
Should_equal(
_pipe@8,
begin
_pipe@9 = gleam@queue:new(),
gleam@queue:push_front(_pipe@9, 1)
end
),
_pipe@10 = gleam@queue:new(),
_pipe@11 = gleam@queue:push_back(_pipe@10, 1),
_pipe@12 = gleam@queue:push_back(_pipe@11, 2),
Should_equal(
_pipe@12,
begin
_pipe@13 = gleam@queue:new(),
_pipe@14 = gleam@queue:push_front(_pipe@13, 2),
gleam@queue:push_front(_pipe@14, 1)
end
),
_pipe@15 = gleam@queue:new(),
_pipe@16 = gleam@queue:push_back(_pipe@15, 1),
Should_not_equal(
_pipe@16,
begin
_pipe@17 = gleam@queue:new(),
_pipe@18 = gleam@queue:push_front(_pipe@17, 2),
gleam@queue:push_front(_pipe@18, 1)
end
),
_pipe@19 = gleam@queue:new(),
_pipe@20 = gleam@queue:push_back(_pipe@19, 2),
_pipe@21 = gleam@queue:push_back(_pipe@20, 1),
Should_not_equal(
_pipe@21,
begin
_pipe@22 = gleam@queue:new(),
_pipe@23 = gleam@queue:push_front(_pipe@22, 2),
gleam@queue:push_front(_pipe@23, 1)
end
).
-spec is_logically_equal_test() -> nil.
is_logically_equal_test() ->
Both_even_or_odd = fun(A, B) ->
gleam@int:is_even(A)
=:= gleam@int:is_even(B)
end,
Should_equal = fun(A@1, B@1) ->
_pipe = A@1,
_pipe@1 = gleam@queue:is_logically_equal(_pipe, B@1, Both_even_or_odd),
gleam@should:be_true(_pipe@1)
end,
Should_not_equal = fun(A@2, B@2) ->
_pipe@2 = A@2,
_pipe@3 = gleam@queue:is_logically_equal(_pipe@2, B@2, Both_even_or_odd),
gleam@should:be_false(_pipe@3)
end,
Should_equal(gleam@queue:new(), gleam@queue:new()),
_pipe@4 = gleam@queue:new(),
_pipe@5 = gleam@queue:push_front(_pipe@4, 3),
Should_equal(
_pipe@5,
begin
_pipe@6 = gleam@queue:new(),
gleam@queue:push_back(_pipe@6, 1)
end
),
_pipe@7 = gleam@queue:new(),
_pipe@8 = gleam@queue:push_front(_pipe@7, 4),
Should_equal(
_pipe@8,
begin
_pipe@9 = gleam@queue:new(),
gleam@queue:push_back(_pipe@9, 2)
end
),
_pipe@10 = gleam@queue:new(),
_pipe@11 = gleam@queue:push_front(_pipe@10, 3),
Should_equal(
_pipe@11,
begin
_pipe@12 = gleam@queue:new(),
gleam@queue:push_front(_pipe@12, 1)
end
),
_pipe@13 = gleam@queue:new(),
_pipe@14 = gleam@queue:push_back(_pipe@13, 3),
_pipe@15 = gleam@queue:push_back(_pipe@14, 4),
Should_equal(
_pipe@15,
begin
_pipe@16 = gleam@queue:new(),
_pipe@17 = gleam@queue:push_front(_pipe@16, 2),
gleam@queue:push_front(_pipe@17, 1)
end
),
_pipe@18 = gleam@queue:new(),
_pipe@19 = gleam@queue:push_back(_pipe@18, 1),
Should_not_equal(
_pipe@19,
begin
_pipe@20 = gleam@queue:new(),
_pipe@21 = gleam@queue:push_front(_pipe@20, 2),
gleam@queue:push_front(_pipe@21, 1)
end
),
_pipe@22 = gleam@queue:new(),
_pipe@23 = gleam@queue:push_back(_pipe@22, 2),
_pipe@24 = gleam@queue:push_back(_pipe@23, 1),
Should_not_equal(
_pipe@24,
begin
_pipe@25 = gleam@queue:new(),
_pipe@26 = gleam@queue:push_front(_pipe@25, 2),
gleam@queue:push_front(_pipe@26, 1)
end
),
_pipe@27 = gleam@queue:new(),
_pipe@28 = gleam@queue:push_back(_pipe@27, 4),
_pipe@29 = gleam@queue:push_back(_pipe@28, 3),
Should_not_equal(
_pipe@29,
begin
_pipe@30 = gleam@queue:new(),
_pipe@31 = gleam@queue:push_front(_pipe@30, 2),
gleam@queue:push_front(_pipe@31, 1)
end
).