diff options
author | Gian Lorenzo Meocci <glmeocci@gmail.com> | 2022-01-06 15:23:32 +0100 |
---|---|---|
committer | Gian Lorenzo Meocci <gianlorenzo.meocci@athonet.com> | 2022-03-08 12:09:25 +0100 |
commit | 306f8bd8dbba91632d1bec536d7a0288fd1b8ee4 (patch) | |
tree | f895d6d5562366643029dbde33bef5dc2e003874 /lib/stdlib/test | |
parent | f1daf312ac1265a6e94fd3a60b5c26ff03cc7e78 (diff) | |
download | erlang-306f8bd8dbba91632d1bec536d7a0288fd1b8ee4.tar.gz |
Add maps:groups_from_list
Diffstat (limited to 'lib/stdlib/test')
-rw-r--r-- | lib/stdlib/test/maps_SUITE.erl | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/stdlib/test/maps_SUITE.erl b/lib/stdlib/test/maps_SUITE.erl index 28895c4efe..2492130cf1 100644 --- a/lib/stdlib/test/maps_SUITE.erl +++ b/lib/stdlib/test/maps_SUITE.erl @@ -42,7 +42,8 @@ t_from_list_check_trapping/1, t_from_keys_check_trapping/1, t_keys_trapping/1, - t_values_trapping/1]). + t_values_trapping/1, + t_groups_from_list/1]). -define(badmap(V,F,Args), {'EXIT', {{badmap,V}, [{maps,F,Args,_}|_]}}). -define(badkey(K,F,Args), {'EXIT', {{badkey,K}, [{maps,F,Args,_}|_]}}). @@ -68,7 +69,8 @@ all() -> t_from_list_check_trapping, t_from_keys_check_trapping, t_keys_trapping, - t_values_trapping]. + t_values_trapping, + t_groups_from_list]. t_from_list_kill_process(Config) when is_list(Config) -> Killer = self(), @@ -770,6 +772,16 @@ t_size_1(Config) when is_list(Config) -> {'EXIT', {{badmap,<<>>}, _}} = (catch maps:size(id(<<>>))), ok. +t_groups_from_list(_Config) -> + #{} = maps:groups_from_list(fun erlang:length/1, []), + #{3 := ["tna","tac"], 5 := ["ognid"], 7 := ["olaffub"]} = + maps:groups_from_list( + fun erlang:length/1, + fun lists:reverse/1, + ["ant", "buffalo", "cat", "dingo"] + ), + #{0 := [2], 1 := [1, 3]} = maps:groups_from_list(fun(X) -> X rem 2 end, [1, 2, 3]). + error_info(_Config) -> BadIterator = [-1|#{}], GoodIterator = maps:iterator(#{}), @@ -806,6 +818,13 @@ error_info(_Config) -> {get, [key, {no,map}]}, {get, [key, {no,map}, default]}, + {groups_from_list, [not_a_fun, []]}, + {groups_from_list, [fun hd/1, not_a_list]}, + + {groups_from_list, [not_a_fun, fun(_) -> ok end, []]}, + {groups_from_list, [fun(_) -> ok end, not_a_fun, []]}, + {groups_from_list, [fun(_) -> ok end, fun(_) -> ok end, not_a_list]}, + {intersect, [#{a => b}, y]}, {intersect, [x, #{a => b}]}, {intersect, [x, y],[{1,".*"},{2,".*"}]}, |