diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-05-29 21:02:55 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-06-02 21:12:59 +0100 |
commit | 5a1f3494eb9517a7b7a332cb74dd10a6a7d32d31 (patch) | |
tree | 5d0d281c66cf71c6e3ca880e6621138a71b95e7b /gen/test/std@list_test.erl | |
parent | ee03f5a0465e176e220060164a5ffc408f73ed0d (diff) | |
download | gleam_stdlib-5a1f3494eb9517a7b7a332cb74dd10a6a7d32d31.tar.gz gleam_stdlib-5a1f3494eb9517a7b7a332cb74dd10a6a7d32d31.zip |
Enable namespaced modules
Diffstat (limited to 'gen/test/std@list_test.erl')
-rw-r--r-- | gen/test/std@list_test.erl | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/gen/test/std@list_test.erl b/gen/test/std@list_test.erl new file mode 100644 index 0000000..d5dc281 --- /dev/null +++ b/gen/test/std@list_test.erl @@ -0,0 +1,196 @@ +-module(std@list_test). +-compile(no_auto_import). + +-export([length_test/0, reverse_test/0, is_empty_test/0, contains_test/0, head_test/0, tail_test/0, filter_test/0, map_test/0, traverse_test/0, drop_test/0, take_test/0, new_test/0, append_test/0, flatten_test/0, fold_test/0, fold_right_test/0, find_test/0, all_test/0, any_test/0, zip_test/0, strict_zip_test/0, intersperse_test/0, at_test/0, unique_test/0, sort_test/0, index_map_test/0, range_test/0, repeat_test/0, split_test/0, split_while_test/0]). + +length_test() -> + std@expect:equal(std@list:length([]), 0), + std@expect:equal(std@list:length([1]), 1), + std@expect:equal(std@list:length([1, 1]), 2), + std@expect:equal(std@list:length([1, 1, 1]), 3). + +reverse_test() -> + std@expect:equal(std@list:reverse([]), []), + std@expect:equal(std@list:reverse([1, 2, 3, 4, 5]), [5, 4, 3, 2, 1]). + +is_empty_test() -> + std@expect:true(std@list:is_empty([])), + std@expect:false(std@list:is_empty([1])). + +contains_test() -> + std@expect:true(std@list:contains([0, 4, 5, 1], 1)), + std@expect:false(std@list:contains([0, 4, 5, 7], 1)), + std@expect:false(std@list:contains([], 1)). + +head_test() -> + std@expect:equal(std@list:head([0, 4, 5, 7]), {ok, 0}), + std@expect:is_error(std@list:head([])). + +tail_test() -> + std@expect:equal(std@list:tail([0, 4, 5, 7]), {ok, [4, 5, 7]}), + std@expect:equal(std@list:tail([0]), {ok, []}), + std@expect:is_error(std@list:tail([])). + +filter_test() -> + std@expect:equal(std@list:filter([], fun(_) -> true end), []), + std@expect:equal(std@list:filter([0, 4, 5, 7, 3], fun(_) -> true end), + [0, 4, 5, 7, 3]), + std@expect:equal(std@list:filter([0, 4, 5, 7, 3], fun(X) -> X > 4 end), + [5, 7]), + std@expect:equal(std@list:filter([0, 4, 5, 7, 3], fun(X) -> X < 4 end), + [0, 3]). + +map_test() -> + std@expect:equal(std@list:map([], fun(X) -> X * 2 end), []), + std@expect:equal(std@list:map([0, 4, 5, 7, 3], fun(X) -> X * 2 end), + [0, 8, 10, 14, 6]). + +traverse_test() -> + Fun = fun(X) -> case X =:= 6 orelse X =:= 5 orelse X =:= 4 of + true -> + {ok, X * 2}; + + false -> + {error, X} + end end, + std@expect:equal(std@list:traverse([5, 6, 5, 6], Fun), + {ok, [10, 12, 10, 12]}), + std@expect:equal(std@list:traverse([4, 6, 5, 7, 3], Fun), {error, 7}). + +drop_test() -> + std@expect:equal(std@list:drop([], 5), []), + std@expect:equal(std@list:drop([1, 2, 3, 4, 5, 6, 7, 8], 5), [6, 7, 8]). + +take_test() -> + std@expect:equal(std@list:take([], 5), []), + std@expect:equal(std@list:take([1, 2, 3, 4, 5, 6, 7, 8], 5), + [1, 2, 3, 4, 5]). + +new_test() -> + std@expect:equal(std@list:new(), []). + +append_test() -> + std@expect:equal(std@list:append([1], [2, 3]), [1, 2, 3]). + +flatten_test() -> + std@expect:equal(std@list:flatten([]), []), + std@expect:equal(std@list:flatten([[]]), []), + std@expect:equal(std@list:flatten([[], [], []]), []), + std@expect:equal(std@list:flatten([[1, 2], [], [3, 4]]), [1, 2, 3, 4]). + +fold_test() -> + std@expect:equal(std@list:fold([1, 2, 3], [], fun(X, Acc) -> [X | Acc] end), + [3, 2, 1]). + +fold_right_test() -> + std@expect:equal(std@list:fold_right([1, 2, 3], + [], + fun(X, Acc) -> [X | Acc] end), + [1, 2, 3]). + +find_test() -> + F = fun(X) -> case X of + 2 -> + {ok, 4}; + + _ -> + {error, 0} + end end, + std@expect:equal(std@list:find([1, 2, 3], F), {ok, 4}), + std@expect:equal(std@list:find([1, 3, 2], F), {ok, 4}), + std@expect:is_error(std@list:find([1, 3], F)). + +all_test() -> + std@expect:equal(std@list:all([1, 2, 3, 4, 5], fun(X) -> X > 0 end), true), + std@expect:equal(std@list:all([1, 2, 3, 4, 5], fun(X) -> X < 0 end), false), + std@expect:equal(std@list:all([], fun(_) -> false end), true). + +any_test() -> + std@expect:equal(std@list:any([1, 2, 3, 4, 5], fun(X) -> X =:= 2 end), + true), + std@expect:equal(std@list:any([1, 2, 3, 4, 5], fun(X) -> X < 0 end), false), + std@expect:equal(std@list:any([], fun(_) -> false end), false). + +zip_test() -> + std@expect:equal(std@list:zip([], [1, 2, 3]), []), + std@expect:equal(std@list:zip([1, 2], []), []), + std@expect:equal(std@list:zip([1, 2, 3], [4, 5, 6]), + [{1, 4}, {2, 5}, {3, 6}]), + std@expect:equal(std@list:zip([5, 6], [1, 2, 3]), [{5, 1}, {6, 2}]), + std@expect:equal(std@list:zip([5, 6, 7], [1, 2]), [{5, 1}, {6, 2}]). + +strict_zip_test() -> + std@expect:is_error(std@list:strict_zip([], [1, 2, 3])), + std@expect:is_error(std@list:strict_zip([1, 2], [])), + std@expect:equal(std@list:strict_zip([1, 2, 3], [4, 5, 6]), + {ok, [{1, 4}, {2, 5}, {3, 6}]}), + std@expect:is_error(std@list:strict_zip([5, 6], [1, 2, 3])), + std@expect:is_error(std@list:strict_zip([5, 6, 7], [1, 2])). + +intersperse_test() -> + std@expect:equal(std@list:intersperse([1, 2, 3], 4), [1, 4, 2, 4, 3]), + std@expect:equal(std@list:intersperse([], 2), []). + +at_test() -> + std@expect:equal(std@list:at([1, 2, 3], 2), {ok, 3}), + std@expect:is_error(std@list:at([1, 2, 3], 5)), + std@expect:is_error(std@list:at([], 0)), + std@expect:is_error(std@list:at([1, 2, 3, 4, 5, 6], -1)). + +unique_test() -> + std@expect:equal(std@list:unique([1, 1, 2, 3, 4, 4, 4, 5, 6]), + [1, 2, 3, 4, 5, 6]), + std@expect:equal(std@list:unique([7, 1, 45, 6, 2, 47, 2, 7, 5]), + [7, 1, 45, 6, 2, 47, 5]), + std@expect:equal(std@list:unique([3, 4, 5]), [3, 4, 5]), + std@expect:equal(std@list:unique([]), []). + +sort_test() -> + std@expect:equal(std@list:sort([4, 3, 6, 5, 4]), [3, 4, 4, 5, 6]), + std@expect:equal(std@list:sort([]), []), + std@expect:equal(std@list:sort([{1, 2}, {4, 5}, {3, 2}]), + [{1, 2}, {3, 2}, {4, 5}]). + +index_map_test() -> + std@expect:equal(std@list:index_map([3, 4, 5], fun(I, X) -> {I, X} end), + [{0, 3}, {1, 4}, {2, 5}]), + F = fun(I, X) -> std@string:append(X, std@int:to_string(I)) end, + std@expect:equal(std@list:index_map([<<"a">>, <<"b">>, <<"c">>], F), + [<<"a0">>, <<"b1">>, <<"c2">>]). + +range_test() -> + std@expect:equal(std@list:range(0, 0), []), + std@expect:equal(std@list:range(1, 1), []), + std@expect:equal(std@list:range(-1, -1), []), + std@expect:equal(std@list:range(0, 1), [0]), + std@expect:equal(std@list:range(0, 5), [0, 1, 2, 3, 4]), + std@expect:equal(std@list:range(1, -5), [1, 0, -1, -2, -3, -4]). + +repeat_test() -> + std@expect:equal(std@list:repeat(1, -10), []), + std@expect:equal(std@list:repeat(1, 0), []), + std@expect:equal(std@list:repeat(2, 3), [2, 2, 2]), + std@expect:equal(std@list:repeat(<<"x">>, 5), + [<<"x">>, <<"x">>, <<"x">>, <<"x">>, <<"x">>]). + +split_test() -> + std@expect:equal(std@list:split([], 0), {[], []}), + std@expect:equal(std@list:split([0, 1, 2, 3, 4], 0), {[], [0, 1, 2, 3, 4]}), + std@expect:equal(std@list:split([0, 1, 2, 3, 4], -2), + {[], [0, 1, 2, 3, 4]}), + std@expect:equal(std@list:split([0, 1, 2, 3, 4], 1), {[0], [1, 2, 3, 4]}), + std@expect:equal(std@list:split([0, 1, 2, 3, 4], 3), {[0, 1, 2], [3, 4]}), + std@expect:equal(std@list:split([0, 1, 2, 3, 4], 9), {[0, 1, 2, 3, 4], []}). + +split_while_test() -> + std@expect:equal(std@list:split_while([], fun(X) -> X =< 5 end), {[], []}), + std@expect:equal(std@list:split_while([1, 2, 3, 4, 5], fun(X) -> X =< 5 end), + {[1, 2, 3, 4, 5], []}), + std@expect:equal(std@list:split_while([1, 2, 3, 4, 5], + fun(X) -> X =:= 2 end), + {[], [1, 2, 3, 4, 5]}), + std@expect:equal(std@list:split_while([1, 2, 3, 4, 5], fun(X) -> X =< 3 end), + {[1, 2, 3], [4, 5]}), + std@expect:equal(std@list:split_while([1, 2, 3, 4, 5], + fun(X) -> X =< -3 end), + {[], [1, 2, 3, 4, 5]}). |