Packages
gleam_stdlib
0.10.0
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
gen/test/gleam@queue_test.erl
-module(gleam@queue_test).
-compile(no_auto_import).
-export([from_and_to_list_test/0, push_back_test/0, is_empty_test/0, length_test/0, push_test/0, push_front_test/0, pop_back_test/0, pop_front_test/0, reverse_test/0, is_equal_test/0, is_logically_equal_test/0]).
from_and_to_list_test() ->
gleam@should:equal(gleam@queue:from_list([]), gleam@queue:new()),
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:push_back(gleam@queue:from_list([0, 0]), 1)
),
[0, 0, 1]
),
Test = fun(Input) ->
gleam@should:equal(
gleam@list:reverse(
gleam@queue:to_list(gleam@queue:from_list(Input))
),
Input
)
end,
Test([]),
Test([1]),
Test([1, 2]),
Test([1, 2, 1]),
Test([1, 2, 1, 5, 2, 7, 2, 7, 8, 4, 545]).
push_back_test() ->
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:push_back(gleam@queue:from_list([0, 0]), 1)
),
[0, 0, 1]
).
is_empty_test() ->
gleam@should:be_true(gleam@queue:is_empty(gleam@queue:new())),
gleam@should:be_false(
gleam@queue:is_empty(gleam@queue:from_list([<<""/utf8>>]))
).
length_test() ->
Test = fun(Input) ->
gleam@should:equal(
gleam@queue:length(gleam@queue:from_list(Input)),
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]).
push_test() ->
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:push_back(
gleam@queue:push_back(
gleam@queue:push_back(gleam@queue:new(), 7),
8
),
2
)
),
[7, 8, 2]
).
push_front_test() ->
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:push_front(
gleam@queue:push_front(
gleam@queue:push_back(
gleam@queue:push_back(
gleam@queue:push_back(gleam@queue:new(), 7),
8
),
2
),
4
),
3
)
),
[3, 4, 7, 8, 2]
),
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:push_front(gleam@queue:from_list([0, 0]), 1)
),
[1, 0, 0]
).
pop_back_test() ->
ExpectedRest = gleam@queue:push_front(
gleam@queue:push_front(gleam@queue:new(), 1),
2
),
gleam@should:equal(
gleam@queue:pop_back(gleam@queue:from_list([1, 2, 3])),
{ok, {3, ExpectedRest}}
),
gleam@should:equal(
gleam@queue:pop_back(gleam@queue:from_list([])),
{error, nil}
).
pop_front_test() ->
gleam@should:equal(
gleam@queue:pop_front(gleam@queue:from_list([1, 2, 3])),
{ok, {1, gleam@queue:from_list([2, 3])}}
),
gleam@should:equal(
gleam@queue:pop_front(gleam@queue:from_list([])),
{error, nil}
).
reverse_test() ->
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:reverse(gleam@queue:from_list([1, 2, 3]))
),
[1, 2, 3]
),
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:reverse(
gleam@queue:push_back(
gleam@queue:push_back(
gleam@queue:push_back(gleam@queue:new(), 1),
2
),
3
)
)
),
[3, 2, 1]
),
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:reverse(
gleam@queue:push_front(
gleam@queue:push_front(
gleam@queue:push_front(gleam@queue:new(), 1),
2
),
3
)
)
),
[1, 2, 3]
),
gleam@should:equal(
gleam@queue:to_list(
gleam@queue:reverse(
gleam@queue:push_back(
gleam@queue:push_back(
gleam@queue:push_front(
gleam@queue:push_front(gleam@queue:new(), 1),
2
),
3
),
4
)
)
),
[4, 3, 1, 2]
).
is_equal_test() ->
ShouldEqual = fun(A, B) ->
gleam@should:be_true(gleam@queue:is_equal(A, B))
end,
ShouldNotEqual = fun(A1, B1) ->
gleam@should:be_false(gleam@queue:is_equal(A1, B1))
end,
ShouldEqual(gleam@queue:new(), gleam@queue:new()),
ShouldEqual(
gleam@queue:push_front(gleam@queue:new(), 1),
gleam@queue:push_back(gleam@queue:new(), 1)
),
ShouldEqual(
gleam@queue:push_front(gleam@queue:new(), 1),
gleam@queue:push_front(gleam@queue:new(), 1)
),
ShouldEqual(
gleam@queue:push_back(gleam@queue:push_back(gleam@queue:new(), 1), 2),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
),
ShouldNotEqual(
gleam@queue:push_back(gleam@queue:new(), 1),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
),
ShouldNotEqual(
gleam@queue:push_back(gleam@queue:push_back(gleam@queue:new(), 2), 1),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
).
is_logically_equal_test() ->
BothEvenOrOdd = fun(A, B) ->
gleam@int:is_even(A)
=:= gleam@int:is_even(B)
end,
ShouldEqual = fun(A1, B1) ->
gleam@should:be_true(
gleam@queue:is_logically_equal(A1, B1, BothEvenOrOdd)
)
end,
ShouldNotEqual = fun(A2, B2) ->
gleam@should:be_false(
gleam@queue:is_logically_equal(A2, B2, BothEvenOrOdd)
)
end,
ShouldEqual(gleam@queue:new(), gleam@queue:new()),
ShouldEqual(
gleam@queue:push_front(gleam@queue:new(), 3),
gleam@queue:push_back(gleam@queue:new(), 1)
),
ShouldEqual(
gleam@queue:push_front(gleam@queue:new(), 4),
gleam@queue:push_back(gleam@queue:new(), 2)
),
ShouldEqual(
gleam@queue:push_front(gleam@queue:new(), 3),
gleam@queue:push_front(gleam@queue:new(), 1)
),
ShouldEqual(
gleam@queue:push_back(gleam@queue:push_back(gleam@queue:new(), 3), 4),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
),
ShouldNotEqual(
gleam@queue:push_back(gleam@queue:new(), 1),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
),
ShouldNotEqual(
gleam@queue:push_back(gleam@queue:push_back(gleam@queue:new(), 2), 1),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
),
ShouldNotEqual(
gleam@queue:push_back(gleam@queue:push_back(gleam@queue:new(), 4), 3),
gleam@queue:push_front(gleam@queue:push_front(gleam@queue:new(), 2), 1)
).