@@ -888,9 +888,16 @@ def assert_timedelta_array_equal(left, right, obj="TimedeltaArray"):
888
888
assert_attr_equal ("freq" , left , right , obj = obj )
889
889
890
890
891
- def raise_assert_detail (obj , message , left , right , diff = None ):
891
+ def raise_assert_detail (obj , message , left , right , diff = None , index_values = None ):
892
892
__tracebackhide__ = True
893
893
894
+ msg = f"""{ obj } are different
895
+
896
+ { message } """
897
+
898
+ if isinstance (index_values , np .ndarray ):
899
+ msg += f"\n [index]: { pprint_thing (index_values )} "
900
+
894
901
if isinstance (left , np .ndarray ):
895
902
left = pprint_thing (left )
896
903
elif is_categorical_dtype (left ):
@@ -901,9 +908,7 @@ def raise_assert_detail(obj, message, left, right, diff=None):
901
908
elif is_categorical_dtype (right ):
902
909
right = repr (right )
903
910
904
- msg = f"""{ obj } are different
905
-
906
- { message }
911
+ msg += f"""
907
912
[left]: { left }
908
913
[right]: { right } """
909
914
@@ -921,6 +926,7 @@ def assert_numpy_array_equal(
921
926
err_msg = None ,
922
927
check_same = None ,
923
928
obj = "numpy array" ,
929
+ index_values = None ,
924
930
):
925
931
"""
926
932
Check that 'np.ndarray' is equivalent.
@@ -940,6 +946,8 @@ def assert_numpy_array_equal(
940
946
obj : str, default 'numpy array'
941
947
Specify object name being compared, internally used to show appropriate
942
948
assertion message.
949
+ index_values : numpy.ndarray, default None
950
+ optional index (shared by both left and right), used in output.
943
951
"""
944
952
__tracebackhide__ = True
945
953
@@ -977,7 +985,7 @@ def _raise(left, right, err_msg):
977
985
978
986
diff = diff * 100.0 / left .size
979
987
msg = f"{ obj } values are different ({ np .round (diff , 5 )} %)"
980
- raise_assert_detail (obj , msg , left , right )
988
+ raise_assert_detail (obj , msg , left , right , index_values = index_values )
981
989
982
990
raise AssertionError (err_msg )
983
991
@@ -1143,7 +1151,11 @@ def assert_series_equal(
1143
1151
raise AssertionError ("check_exact may only be used with numeric Series" )
1144
1152
1145
1153
assert_numpy_array_equal (
1146
- left ._values , right ._values , check_dtype = check_dtype , obj = str (obj )
1154
+ left ._values ,
1155
+ right ._values ,
1156
+ check_dtype = check_dtype ,
1157
+ obj = str (obj ),
1158
+ index_values = np .asarray (left .index ),
1147
1159
)
1148
1160
elif check_datetimelike_compat and (
1149
1161
needs_i8_conversion (left .dtype ) or needs_i8_conversion (right .dtype )
@@ -1182,6 +1194,7 @@ def assert_series_equal(
1182
1194
check_less_precise = check_less_precise ,
1183
1195
check_dtype = check_dtype ,
1184
1196
obj = str (obj ),
1197
+ index_values = np .asarray (left .index ),
1185
1198
)
1186
1199
1187
1200
# metadata comparison
0 commit comments