code: def assert_dshape_equal(
      a,
      b,
      path=None,
      check_str_encoding=True,
      check_str_fixlen=True,
      **kwargs,
  ):
      if path is None:
          path = ()
      if check_str_encoding:
          assert (
              a.encoding == b.encoding
          ), "string encodings do not match: %r != %r\n%s" % (
              a.encoding,
              b.encoding,
              _fmt_path(path + (".encoding",)),
          )
  
      if check_str_fixlen:
          assert (
              a.fixlen == b.fixlen
          ), "string fixlens do not match: %d != %d\n%s" % (
              a.fixlen,
              b.fixlen,
              _fmt_path(path + (".fixlen",)),
          )
  
file_path: datashader/datashader/datashape/util/testing.py
imports: from abc import ABC
  from ..coretypes import DataShape, DateTime, Function, Option, Record, String, Time, TimeDelta, Tuple, Units
  from ..dispatch import dispatch
label_desc: Use image node_id 8 for calling a global function with example usage: assert_dshape_equal(a, b, path, check_str_encoding, check_str_fixlen) without return types