code: def _assert_eq(l, r, name=None, **kwargs):
      array_types = (np.ndarray, da.Array)
      frame_types = (pd.core.generic.NDFrame, dd._Frame)
      if isinstance(l, array_types):
          assert_eq_ar(l, r, **kwargs)
      elif isinstance(l, frame_types):
          assert_eq_df(l, r, **kwargs)
      elif isinstance(l, Sequence) and any(
          isinstance(x, array_types + frame_types) for x in l
      ):
          for a, b in zip(l, r):
              _assert_eq(a, b, **kwargs)
      elif np.isscalar(r) and np.isnan(r):
          assert np.isnan(l), (name, l, r)
      else:
          assert l == r, (name, l, r)
  
imports: import contextlib
  import datetime
  import functools
  import logging
  import warnings
  from collections.abc import Sequence
  from multiprocessing import cpu_count
  from numbers import Integral
  from timeit import default_timer
  import dask
  import dask.array
  import dask.dataframe
  import numpy
  import pandas
  import sklearn.utils.extmath
  import sklearn.utils.validation
  from dask import delayed
  from dask.array.utils import assert_eq
  from dask.dataframe.utils import assert_eq
  from ._utils import ConstantFunction
label_desc: Use image node_id 9 for calling a global function with example usage: _assert_eq(l, r, name) without return types