def assert_equal(left, right, **kwargs):
__tracebackhide__ = True<EOL>if isinstance(left, pd.Index):<EOL><INDENT>assert_index_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, pd.Series):<EOL><INDENT>assert_series_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, pd.DataFrame):<EOL><INDENT>assert_frame_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, IntervalArray):<EOL><INDENT>assert_interval_array_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, PeriodArray):<EOL><INDENT>assert_period_array_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, DatetimeArray):<EOL><INDENT>assert_datetime_array_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, TimedeltaArray):<EOL><INDENT>assert_timedelta_array_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, ExtensionArray):<EOL><INDENT>assert_extension_array_equal(left, right, **kwargs)<EOL><DEDENT>elif isinstance(left, np.ndarray):<EOL><INDENT>assert_numpy_array_equal(left, right, **kwargs)<EOL><DEDENT>else:<EOL><INDENT>raise NotImplementedError(type(left))<EOL><DEDENT>
Wrapper for tm.assert_*_equal to dispatch to the appropriate test function.

Parameters
----------
left : Index, Series, DataFrame, ExtensionArray, or np.ndarray
right : Index, Series, DataFrame, ExtensionArray, or np.ndarray
**kwargs