File 2580-tests-for-is_empty-1.patch of Package erlang

From 3514876e3c3d774f46ccd4b0bf04bffdba3e2987 Mon Sep 17 00:00:00 2001
From: "j.uhlig" <j.uhlig@mailingwork.de>
Date: Fri, 23 Mar 2018 14:58:18 +0100
Subject: [PATCH 4/4] tests for is_empty/1

---
 lib/stdlib/test/sets_SUITE.erl    | 15 +++++++++++++--
 lib/stdlib/test/sets_test_lib.erl | 13 +++----------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/lib/stdlib/test/sets_SUITE.erl b/lib/stdlib/test/sets_SUITE.erl
index bec38000b2..7066d07e19 100644
--- a/lib/stdlib/test/sets_SUITE.erl
+++ b/lib/stdlib/test/sets_SUITE.erl
@@ -28,7 +28,7 @@
 	 init_per_testcase/2,end_per_testcase/2,
 	 create/1,add_element/1,del_element/1,
 	 subtract/1,intersection/1,union/1,is_subset/1,
-	 is_set/1,fold/1,filter/1,
+	 is_set/1,is_empty/1,fold/1,filter/1,
 	 take_smallest/1,take_largest/1, iterate/1]).
 
 -include_lib("common_test/include/ct.hrl").
@@ -48,7 +48,7 @@ suite() ->
 all() -> 
     [create, add_element, del_element, subtract,
      intersection, union, is_subset, is_set, fold, filter,
-     take_smallest, take_largest, iterate].
+     take_smallest, take_largest, iterate, is_empty].
 
 groups() -> 
     [].
@@ -345,6 +345,17 @@ is_set_1(M) ->
     false = M(is_set, {}),
     M(empty, []).
 
+is_empty(Config) when is_list(Config) ->
+    test_all(fun is_empty_1/1).
+
+is_empty_1(M) ->
+    S = M(from_list, [blurf]),
+    Empty = M(empty, []),
+
+    true = M(is_empty, Empty),
+    false = M(is_empty, S),
+    M(empty, []).
+
 fold(Config) when is_list(Config) ->
     test_all([{0,71},{125,129},{254,259},{510,513},{1023,1025},{9999,10001}],
 	     fun fold_1/2).
diff --git a/lib/stdlib/test/sets_test_lib.erl b/lib/stdlib/test/sets_test_lib.erl
index 9f153822a2..93d027704b 100644
--- a/lib/stdlib/test/sets_test_lib.erl
+++ b/lib/stdlib/test/sets_test_lib.erl
@@ -32,7 +32,7 @@ new(Mod, Eq) ->
 	(from_list, L) -> Mod:from_list(L);
 	(intersection, {S1,S2}) -> intersection(Mod, Eq, S1, S2);
 	(intersection, Ss) -> intersection(Mod, Eq, Ss);
-	(is_empty, S) -> is_empty(Mod, S);
+	(is_empty, S) -> Mod:is_empty(S);
 	(is_set, S) -> Mod:is_set(S);
 	(is_subset, {S,Set}) -> is_subset(Mod, Eq, S, Set);
         (iterator, S) -> Mod:iterator(S);
@@ -56,7 +56,7 @@ singleton(Mod, E) ->
 add_element(Mod, El, S0) ->
     S = Mod:add_element(El, S0),
     true = Mod:is_element(El, S),
-    false = is_empty(Mod, S),
+    false = Mod:is_empty(S),
     true = Mod:is_set(S),
     S.
 
@@ -66,17 +66,10 @@ del_element(Mod, El, S0) ->
     true = Mod:is_set(S),
     S.
 
-is_empty(Mod, S) ->
-    true = Mod:is_set(S),
-    case erlang:function_exported(Mod, is_empty, 1) of
-	true -> Mod:is_empty(S);
-	false -> Mod:size(S) == 0
-    end.
-
 intersection(Mod, Equal, S1, S2) ->
     S = Mod:intersection(S1, S2),
     true = Equal(S, Mod:intersection(S2, S1)),
-    Disjoint = is_empty(Mod, S),
+    Disjoint = Mod:is_empty(S),
     Disjoint = Mod:is_disjoint(S1, S2),
     Disjoint = Mod:is_disjoint(S2, S1),
     S.
-- 
2.16.3

openSUSE Build Service is sponsored by