code: def assert_equal(left, right, **kwargs) -> None:
      """
      Wrapper for tm.assert_*_equal to dispatch to the appropriate test function.
  
      Parameters
      ----------
      left, right : Index, Series, DataFrame, ExtensionArray, or np.ndarray
          The two items to be compared.
      **kwargs
          All keyword arguments are passed through to the underlying assert method.
      """
      __tracebackhide__ = True
  
      if isinstance(left, Index):
          assert_index_equal(left, right, **kwargs)
          if isinstance(left, (DatetimeIndex, TimedeltaIndex)):
              assert left.freq == right.freq, (left.freq, right.freq)
      elif isinstance(left, Series):
          assert_series_equal(left, right, **kwargs)
      elif isinstance(left, DataFrame):
          assert_frame_equal(left, right, **kwargs)
      elif isinstance(left, IntervalArray):
          assert_interval_array_equal(left, right, **kwargs)
      elif isinstance(left, PeriodArray):
          assert_period_array_equal(left, right, **kwargs)
      elif isinstance(left, DatetimeArray):
          assert_datetime_array_equal(left, right, **kwargs)
      elif isinstance(left, TimedeltaArray):
          assert_timedelta_array_equal(left, right, **kwargs)
      elif isinstance(left, ExtensionArray):
          assert_extension_array_equal(left, right, **kwargs)
      elif isinstance(left, np.ndarray):
          assert_numpy_array_equal(left, right, **kwargs)
      elif isinstance(left, str):
          assert kwargs == {}
          assert left == right
      else:
          assert kwargs == {}
          assert_almost_equal(left, right)
  
imports: from __future__ import annotations
  import operator
  from typing import Literal, cast
  import numpy
  from pandas._libs.missing import is_matching_na
  from pandas._libs.sparse import SparseIndex
  import pandas._libs.testing
  from pandas._libs.tslibs.np_datetime import compare_mismatched_resolutions
  from pandas.core.dtypes.common import is_bool, is_categorical_dtype, is_extension_array_dtype, is_integer_dtype, is_interval_dtype, is_number, is_numeric_dtype, needs_i8_conversion
  from pandas.core.dtypes.dtypes import CategoricalDtype, DatetimeTZDtype, PandasDtype
  from pandas.core.dtypes.missing import array_equivalent
  import pandas
  from pandas import Categorical, DataFrame, DatetimeIndex, Index, IntervalIndex, MultiIndex, PeriodIndex, RangeIndex, Series, TimedeltaIndex
  from pandas.core.algorithms import take_nd
  from pandas.core.arrays import DatetimeArray, ExtensionArray, IntervalArray, PeriodArray, TimedeltaArray
  from pandas.core.arrays.datetimelike import DatetimeLikeArrayMixin
  from pandas.core.arrays.string_ import StringDtype
  from pandas.core.indexes.api import safe_sort_index
  from pandas.io.formats.printing import pprint_thing
label_desc: Use image node_id 19 for calling a global function with example usage: assert_equal(left, right) without return types