@@ -1203,31 +1203,52 @@ def assert_sp_array_equal(left, right):
1203
1203
assertIsInstance (right , pd .SparseArray , '[SparseArray]' )
1204
1204
1205
1205
assert_almost_equal (left .sp_values , right .sp_values )
1206
+
1207
+ # SparseIndex comparison
1208
+ assertIsInstance (left .sp_index , pd ._sparse .SparseIndex , '[SparseIndex]' )
1209
+ assertIsInstance (right .sp_index , pd ._sparse .SparseIndex , '[SparseIndex]' )
1206
1210
assert (left .sp_index .equals (right .sp_index ))
1211
+
1207
1212
if np .isnan (left .fill_value ):
1208
1213
assert (np .isnan (right .fill_value ))
1209
1214
else :
1210
1215
assert (left .fill_value == right .fill_value )
1211
1216
1217
+ assert_attr_equal ('dtype' , left , right )
1218
+ assert_numpy_array_equal (left .values , right .values )
1219
+
1212
1220
1213
- def assert_sp_series_equal (left , right , exact_indices = True , check_names = True ):
1221
+ def assert_sp_series_equal (left , right , exact_indices = True ,
1222
+ check_names = True , obj = 'SparseSeries' ):
1214
1223
assertIsInstance (left , pd .SparseSeries , '[SparseSeries]' )
1215
1224
assertIsInstance (right , pd .SparseSeries , '[SparseSeries]' )
1216
1225
1217
- assert (left .index .equals (right .index ))
1226
+ assert_index_equal (left .index , right .index ,
1227
+ obj = '{0}.index' .format (obj ))
1228
+
1218
1229
assert_sp_array_equal (left .block .values , right .block .values )
1230
+
1219
1231
if check_names :
1220
1232
assert_attr_equal ('name' , left , right )
1233
+ assert_attr_equal ('dtype' , left , right )
1234
+
1235
+ assert_numpy_array_equal (left .values , right .values )
1221
1236
1222
1237
1223
- def assert_sp_frame_equal (left , right , exact_indices = True ):
1238
+ def assert_sp_frame_equal (left , right , exact_indices = True ,
1239
+ obj = 'SparseDataFrame' ):
1224
1240
"""
1225
1241
exact: Series SparseIndex objects must be exactly the same, otherwise just
1226
1242
compare dense representations
1227
1243
"""
1228
1244
assertIsInstance (left , pd .SparseDataFrame , '[SparseDataFrame]' )
1229
1245
assertIsInstance (right , pd .SparseDataFrame , '[SparseDataFrame]' )
1230
1246
1247
+ assert_index_equal (left .index , right .index ,
1248
+ obj = '{0}.index' .format (obj ))
1249
+ assert_index_equal (left .columns , right .columns ,
1250
+ obj = '{0}.columns' .format (obj ))
1251
+
1231
1252
for col , series in compat .iteritems (left ):
1232
1253
assert (col in right )
1233
1254
# trade-off?
0 commit comments