code: def assert_array_equal(
      result,
      expected,
      path=(),
      msg="",
      array_verbose=True,
      array_decimal=None,
      **kwargs,
  ):
      result_dtype = result.dtype
      expected_dtype = expected.dtype
  
      if result_dtype.kind in "mM" and expected_dtype.kind in "mM":
          assert result_dtype == expected_dtype, (
              "\nType mismatch:\n\n"
              "result dtype: %s\n"
              "expected dtype: %s\n%s"
              % (result_dtype, expected_dtype, _fmt_path(path))
          )
  
          f = partial(
              assert_array_compare,
              compare_datetime_arrays,
              header="Arrays are not equal",
          )
      elif array_decimal is not None and expected_dtype.kind not in {
          "O",
          "S",
      }:
          f = partial(
              np.testing.assert_array_almost_equal,
              decimal=array_decimal,
          )
      else:
          f = np.testing.assert_array_equal
  
      try:
          f(
              result,
              expected,
              verbose=array_verbose,
              err_msg=msg,
          )
      except AssertionError as e:
          raise AssertionError("\n".join((str(e), _fmt_path(path))))
  
imports: from collections import OrderedDict
  from contextlib import contextmanager
  import datetime
  from functools import partial
  import re
  from nose.tools import assert_almost_equal, assert_almost_equals, assert_dict_contains_subset, assert_false, assert_greater, assert_greater_equal, assert_in, assert_is, assert_is_instance, assert_is_none, assert_is_not, assert_is_not_none, assert_less, assert_less_equal, assert_multi_line_equal, assert_not_almost_equal, assert_not_almost_equals, assert_not_equal, assert_not_equals, assert_not_in, assert_not_is_instance, assert_raises, assert_raises_regexp, assert_regexp_matches, assert_true, assert_tuple_equal
  import numpy
  import pandas
  from pandas.util.testing import assert_frame_equal, assert_panel_equal, assert_series_equal, assert_index_equal
  from six import iteritems, viewkeys, PY2
  from six.moves import zip_longest
  from toolz import dissoc, keyfilter
  import toolz.curried.operator
  from zipline.assets import Asset
  from zipline.dispatch import dispatch
  from zipline.lib.adjustment import Adjustment
  from zipline.lib.labelarray import LabelArray
  from zipline.testing.core import ensure_doctest
  from zipline.utils.compat import getargspec, mappingproxy
  from zipline.utils.formatting import s
  from zipline.utils.functional import dzip_exact, instance
  from zipline.utils.math_utils import tolerant_equals
  from zipline.utils.numpy_utils import assert_array_compare, compare_datetime_arrays
label_desc: Use image node_id 21 for calling a global function with example usage: assert_array_equal(result, expected, path, msg, array_verbose, array_decimal) without return types