@@ -14,11 +14,21 @@ defmodule SetTest.Common do
1414 assert Set . equal? ( result , new_set ( [ 1 , 3 ] ) )
1515 end
1616
17+ test :delete_with_match do
18+ refute Set . member? ( Set . delete ( int_set , 1 ) , 1 )
19+ assert Set . member? ( Set . delete ( int_set , 1.0 ) , 1 )
20+ end
21+
1722 test :difference do
1823 result = Set . difference ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 3 ] ) )
1924 assert Set . equal? ( result , HashSet . new ( [ 1 , 2 ] ) )
2025 end
2126
27+ test :difference_with_match do
28+ refute Set . member? ( Set . difference ( int_set , new_set ( [ 1 ] ) ) , 1 )
29+ assert Set . member? ( Set . difference ( int_set , new_set ( [ 1.0 ] ) ) , 1 )
30+ end
31+
2232 test :disjoint? do
2333 assert Set . disjoint? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 4 , 5 , 6 ] ) ) == true
2434 assert Set . disjoint? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 3 , 4 , 5 ] ) ) == false
@@ -30,31 +40,48 @@ defmodule SetTest.Common do
3040 end
3141
3242 test :equal? do
33- assert Set . equal? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 3 , 2 , 1 ] ) ) == true
43+ assert Set . equal? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 3 , 2 , 1 ] ) )
44+ refute Set . equal? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 3.0 , 2.0 , 1.0 ] ) )
3445 end
3546
3647 test :intersection do
3748 result = Set . intersection ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 2 , 3 , 4 ] ) )
3849 assert Set . equal? ( result , new_set ( [ 2 , 3 ] ) )
3950 end
4051
52+ test :intersection_with_match do
53+ assert Set . member? ( Set . intersection ( int_set , new_set ( [ 1 ] ) ) , 1 )
54+ refute Set . member? ( Set . intersection ( int_set , new_set ( [ 1.0 ] ) ) , 1 )
55+ end
56+
4157 test :member? do
42- assert Set . member? ( new_set ( [ 1 , 2 , 3 ] ) , 2 ) == true
43- assert Set . member? ( new_set ( [ 1 , 2 , 3 ] ) , 4 ) == false
58+ assert Set . member? ( new_set ( [ 1 , 2 , 3 ] ) , 2 )
59+ refute Set . member? ( new_set ( [ 1 , 2 , 3 ] ) , 4 )
60+ refute Set . member? ( new_set ( [ 1 , 2 , 3 ] ) , 1.0 )
4461 end
4562
4663 test :put do
4764 result = Set . put ( new_set ( [ 1 , 2 ] ) , 3 )
4865 assert Set . equal? ( result , new_set ( [ 1 , 2 , 3 ] ) )
4966 end
5067
68+ test :put_with_match do
69+ assert Set . size ( Set . put ( int_set , 1 ) ) == 3
70+ assert Set . size ( Set . put ( int_set , 1.0 ) ) == 4
71+ end
72+
5173 test :size do
5274 assert Set . size ( new_set ( [ 1 , 2 , 3 ] ) ) == 3
5375 end
5476
5577 test :subset? do
56- assert Set . subset? ( new_set ( [ 1 , 2 ] ) , new_set ( [ 1 , 2 , 3 ] ) ) == true
57- assert Set . subset? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 1 , 2 ] ) ) == false
78+ assert Set . subset? ( new_set ( [ 1 , 2 ] ) , new_set ( [ 1 , 2 , 3 ] ) )
79+ refute Set . subset? ( new_set ( [ 1 , 2 , 3 ] ) , new_set ( [ 1 , 2 ] ) )
80+ end
81+
82+ test :subset_with_match? do
83+ assert Set . subset? ( new_set ( [ 1 ] ) , int_set )
84+ refute Set . subset? ( new_set ( [ 1.0 ] ) , int_set )
5885 end
5986
6087 test :to_list do
@@ -66,6 +93,11 @@ defmodule SetTest.Common do
6693 assert Set . equal? ( result , new_set ( [ 1 , 2 , 3 , 4 ] ) )
6794 end
6895
96+ test :union_with_match do
97+ assert Set . size ( Set . union ( int_set , new_set ( [ 1 ] ) ) ) == 3
98+ assert Set . size ( Set . union ( int_set , new_set ( [ 1.0 ] ) ) ) == 4
99+ end
100+
69101 test "unsupported set" do
70102 assert_raise ArgumentError , "unsupported set: :bad_set" , fn ->
71103 Set . to_list :bad_set
@@ -75,6 +107,10 @@ defmodule SetTest.Common do
75107 defp new_set ( list // [ ] ) do
76108 unquote ( module ) . new ( list )
77109 end
110+
111+ defp int_set ( ) do
112+ unquote ( module ) . new ( [ 1 , 2 , 3 ] )
113+ end
78114 end
79115 end
80116end
0 commit comments