Skip to content

Commit 9b54f9d

Browse files
authored
Pass check_dtype to assert_extension_array_equal (#35750)
1 parent 3b0f23a commit 9b54f9d

File tree

5 files changed

+34
-2
lines changed

5 files changed

+34
-2
lines changed

doc/source/whatsnew/v1.1.1.rst

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Bug fixes
3838
~~~~~~~~~
3939

4040
- Bug in ``Styler`` whereby `cell_ids` argument had no effect due to other recent changes (:issue:`35588`) (:issue:`35663`).
41+
- Bug in :func:`pandas.testing.assert_series_equal` and :func:`pandas.testing.assert_frame_equal` where extension dtypes were not ignored when ``check_dtypes`` was set to ``False`` (:issue:`35715`).
4142

4243
Categorical
4344
^^^^^^^^^^^

pandas/_testing.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -1377,12 +1377,18 @@ def assert_series_equal(
13771377
)
13781378
elif is_extension_array_dtype(left.dtype) and is_extension_array_dtype(right.dtype):
13791379
assert_extension_array_equal(
1380-
left._values, right._values, index_values=np.asarray(left.index)
1380+
left._values,
1381+
right._values,
1382+
check_dtype=check_dtype,
1383+
index_values=np.asarray(left.index),
13811384
)
13821385
elif needs_i8_conversion(left.dtype) or needs_i8_conversion(right.dtype):
13831386
# DatetimeArray or TimedeltaArray
13841387
assert_extension_array_equal(
1385-
left._values, right._values, index_values=np.asarray(left.index)
1388+
left._values,
1389+
right._values,
1390+
check_dtype=check_dtype,
1391+
index_values=np.asarray(left.index),
13861392
)
13871393
else:
13881394
_testing.assert_almost_equal(

pandas/tests/util/test_assert_extension_array_equal.py

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import numpy as np
22
import pytest
33

4+
from pandas import array
45
import pandas._testing as tm
56
from pandas.core.arrays.sparse import SparseArray
67

@@ -102,3 +103,11 @@ def test_assert_extension_array_equal_non_extension_array(side):
102103

103104
with pytest.raises(AssertionError, match=msg):
104105
tm.assert_extension_array_equal(*args)
106+
107+
108+
@pytest.mark.parametrize("right_dtype", ["Int32", "int64"])
109+
def test_assert_extension_array_equal_ignore_dtype_mismatch(right_dtype):
110+
# https://github.com/pandas-dev/pandas/issues/35715
111+
left = array([1, 2, 3], dtype="Int64")
112+
right = array([1, 2, 3], dtype=right_dtype)
113+
tm.assert_extension_array_equal(left, right, check_dtype=False)

pandas/tests/util/test_assert_frame_equal.py

+8
Original file line numberDiff line numberDiff line change
@@ -260,3 +260,11 @@ def test_assert_frame_equal_interval_dtype_mismatch():
260260

261261
with pytest.raises(AssertionError, match=msg):
262262
tm.assert_frame_equal(left, right, check_dtype=True)
263+
264+
265+
@pytest.mark.parametrize("right_dtype", ["Int32", "int64"])
266+
def test_assert_frame_equal_ignore_extension_dtype_mismatch(right_dtype):
267+
# https://github.com/pandas-dev/pandas/issues/35715
268+
left = pd.DataFrame({"a": [1, 2, 3]}, dtype="Int64")
269+
right = pd.DataFrame({"a": [1, 2, 3]}, dtype=right_dtype)
270+
tm.assert_frame_equal(left, right, check_dtype=False)

pandas/tests/util/test_assert_series_equal.py

+8
Original file line numberDiff line numberDiff line change
@@ -296,3 +296,11 @@ def test_series_equal_exact_for_nonnumeric():
296296
tm.assert_series_equal(s1, s3, check_exact=True)
297297
with pytest.raises(AssertionError):
298298
tm.assert_series_equal(s3, s1, check_exact=True)
299+
300+
301+
@pytest.mark.parametrize("right_dtype", ["Int32", "int64"])
302+
def test_assert_series_equal_ignore_extension_dtype_mismatch(right_dtype):
303+
# https://github.com/pandas-dev/pandas/issues/35715
304+
left = pd.Series([1, 2, 3], dtype="Int64")
305+
right = pd.Series([1, 2, 3], dtype=right_dtype)
306+
tm.assert_series_equal(left, right, check_dtype=False)

0 commit comments

Comments
 (0)