@@ -124,6 +124,20 @@ def test_corner_union(self, index, fname, sname, expected_name):
124
124
expected = index .drop (index ).set_names (expected_name )
125
125
tm .assert_index_equal (union , expected )
126
126
127
+ @pytest .mark .parametrize (
128
+ "fname, sname, expected_name" ,
129
+ [
130
+ ("A" , "A" , "A" ),
131
+ ("A" , "B" , None ),
132
+ ("A" , None , None ),
133
+ (None , "B" , None ),
134
+ (None , None , None ),
135
+ ],
136
+ )
137
+ def test_union_unequal (self , index , fname , sname , expected_name ):
138
+ if isinstance (index , MultiIndex ) or not index .is_unique :
139
+ pytest .skip ("Not for MultiIndex or repeated indices" )
140
+
127
141
# test copy.union(subset) - need sort for unicode and string
128
142
first = index .copy ().set_names (fname )
129
143
second = index [1 :].set_names (sname )
@@ -176,6 +190,20 @@ def test_corner_intersect(self, index, fname, sname, expected_name):
176
190
expected = index .drop (index ).set_names (expected_name )
177
191
tm .assert_index_equal (intersect , expected )
178
192
193
+ @pytest .mark .parametrize (
194
+ "fname, sname, expected_name" ,
195
+ [
196
+ ("A" , "A" , "A" ),
197
+ ("A" , "B" , None ),
198
+ ("A" , None , None ),
199
+ (None , "B" , None ),
200
+ (None , None , None ),
201
+ ],
202
+ )
203
+ def test_intersect_unequal (self , index , fname , sname , expected_name ):
204
+ if isinstance (index , MultiIndex ) or not index .is_unique :
205
+ pytest .skip ("Not for MultiIndex or repeated indices" )
206
+
179
207
# test copy.intersection(subset) - need sort for unicode and string
180
208
first = index .copy ().set_names (fname )
181
209
second = index [1 :].set_names (sname )
0 commit comments