@@ -1018,7 +1018,8 @@ def assert_extension_array_equal(
1018
1018
1019
1019
if hasattr (left , "asi8" ) and type (right ) == type (left ):
1020
1020
# Avoid slow object-dtype comparisons
1021
- assert_numpy_array_equal (left .asi8 , right .asi8 )
1021
+ # np.asarray for case where we have a np.MaskedArray
1022
+ assert_numpy_array_equal (np .asarray (left .asi8 ), np .asarray (right .asi8 ))
1022
1023
return
1023
1024
1024
1025
left_na = np .asarray (left .isna ())
@@ -1156,20 +1157,23 @@ def assert_series_equal(
1156
1157
raise AssertionError (msg )
1157
1158
elif is_interval_dtype (left .dtype ) or is_interval_dtype (right .dtype ):
1158
1159
assert_interval_array_equal (left .array , right .array )
1159
- elif is_datetime64tz_dtype (left .dtype ):
1160
- # .values is an ndarray, but ._values is the ExtensionArray.
1160
+ elif is_categorical_dtype (left .dtype ) or is_categorical_dtype (right .dtype ):
1161
+ _testing .assert_almost_equal (
1162
+ left ._values ,
1163
+ right ._values ,
1164
+ check_less_precise = check_less_precise ,
1165
+ check_dtype = check_dtype ,
1166
+ obj = str (obj ),
1167
+ )
1168
+ elif is_extension_array_dtype (left .dtype ) or is_extension_array_dtype (right .dtype ):
1169
+ assert_extension_array_equal (left ._values , right ._values )
1170
+ elif needs_i8_conversion (left .dtype ) or needs_i8_conversion (right .dtype ):
1171
+ # DatetimeArray or TimedeltaArray
1161
1172
assert_extension_array_equal (left ._values , right ._values )
1162
- elif (
1163
- is_extension_array_dtype (left )
1164
- and not is_categorical_dtype (left )
1165
- and is_extension_array_dtype (right )
1166
- and not is_categorical_dtype (right )
1167
- ):
1168
- assert_extension_array_equal (left .array , right .array )
1169
1173
else :
1170
1174
_testing .assert_almost_equal (
1171
- left ._internal_get_values () ,
1172
- right ._internal_get_values () ,
1175
+ left ._values ,
1176
+ right ._values ,
1173
1177
check_less_precise = check_less_precise ,
1174
1178
check_dtype = check_dtype ,
1175
1179
obj = str (obj ),
0 commit comments