Skip to content

Commit 03c3b0a

Browse files
committed
TST: Add skip for tests using mixed-type Index
1 parent dea15de commit 03c3b0a

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

pandas/tests/indexes/test_setops.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ def index_flat2(index_flat):
6363

6464

6565
def test_union_same_types(index):
66+
if index.inferred_type in ["mixed", "mixed-integer"]:
67+
pytest.skip("Mixed-type Index not orderable; union fails")
6668
# Union with a non-unique, non-monotonic index raises error
6769
# Only needed for bool index factory
6870
idx1 = index.sort_values()
@@ -253,6 +255,10 @@ def test_intersection_base(self, index):
253255

254256
@pytest.mark.filterwarnings(r"ignore:PeriodDtype\[B\] is deprecated:FutureWarning")
255257
def test_union_base(self, index):
258+
259+
if index.inferred_type in ["mixed", "mixed-integer"]:
260+
pytest.skip("Mixed-type Index not orderable; union fails")
261+
256262
index = index.unique()
257263
first = index[3:]
258264
second = index[:5]
@@ -320,6 +326,8 @@ def test_symmetric_difference(self, index, using_infer_string, request):
320326
# index fixture has e.g. an index of bools that does not satisfy this,
321327
# another with [0, 0, 1, 1, 2, 2]
322328
pytest.skip("Index values no not satisfy test condition.")
329+
if index.inferred_type == "mixed" or index.inferred_type == "mixed-integer":
330+
pytest.skip("Mixed-type Index not orderable; symmetric_difference fails")
323331

324332

325333
first = index[1:]
@@ -927,6 +935,15 @@ def test_difference_incomparable_true(self, opname):
927935
def test_symmetric_difference_mi(self, sort):
928936
index1 = MultiIndex.from_tuples(zip(["foo", "bar", "baz"], [1, 2, 3]))
929937
index2 = MultiIndex.from_tuples([("foo", 1), ("bar", 3)])
938+
939+
def has_mixed_types(level):
940+
return any(isinstance(x, str) for x in level) and any(isinstance(x, int) for x in level)
941+
942+
for idx in [index1, index2]:
943+
for lvl in range(idx.nlevels):
944+
if has_mixed_types(idx.get_level_values(lvl)):
945+
pytest.skip(f"Mixed types in MultiIndex level {lvl} are not orderable")
946+
930947
result = index1.symmetric_difference(index2, sort=sort)
931948
expected = MultiIndex.from_tuples([("bar", 2), ("baz", 3), ("bar", 3)])
932949
if sort is None:

0 commit comments

Comments
 (0)