def assert_sp_frame_equal(left, right, check_dtype=True, exact_indices=True,<EOL>check_frame_type=True, check_kind=True,<EOL>check_fill_value=True,<EOL>consolidate_block_indices=False,<EOL>obj='<STR_LIT>'):
_check_isinstance(left, right, pd.SparseDataFrame)<EOL>if check_frame_type:<EOL><INDENT>assert_class_equal(left, right, obj=obj)<EOL><DEDENT>assert_index_equal(left.index, right.index,<EOL>obj='<STR_LIT>'.format(obj=obj))<EOL>assert_index_equal(left.columns, right.columns,<EOL>obj='<STR_LIT>'.format(obj=obj))<EOL>if check_fill_value:<EOL><INDENT>assert_attr_equal('<STR_LIT>', left, right, obj=obj)<EOL><DEDENT>for col, series in left.items():<EOL><INDENT>assert (col in right)<EOL>if exact_indices:<EOL><INDENT>assert_sp_series_equal(<EOL>series, right[col],<EOL>check_dtype=check_dtype,<EOL>check_kind=check_kind,<EOL>check_fill_value=check_fill_value,<EOL>consolidate_block_indices=consolidate_block_indices<EOL>)<EOL><DEDENT>else:<EOL><INDENT>assert_series_equal(series.to_dense(), right[col].to_dense(),<EOL>check_dtype=check_dtype)<EOL><DEDENT><DEDENT>for col in right:<EOL><INDENT>assert (col in left)<EOL><DEDENT>
Check that the left and right SparseDataFrame are equal.

    Parameters
    ----------
    left : SparseDataFrame
    right : SparseDataFrame
    check_dtype : bool, default True
        Whether to check the Series dtype is identical.
    exact_indices : bool, default True
        SparseSeries SparseIndex objects must be exactly the same,
        otherwise just compare dense representations.
    check_frame_type : bool, default True
        Whether to check the SparseDataFrame class is identical.
    check_kind : bool, default True
        Whether to just the kind of the sparse index for each column.
    check_fill_value : bool, default True
        Whether to check that left.fill_value matches right.fill_value
    consolidate_block_indices : bool, default False
        Whether to consolidate contiguous blocks for sparse arrays with
        a BlockIndex. Some operations, e.g. concat, will end up with
        block indices that could be consolidated. Setting this to true will
        create a new BlockIndex for that array, with consolidated
        block indices.
    obj : str, default 'SparseDataFrame'
        Specify the object name being compared, internally used to show
        the appropriate assertion message.