code: def assertShapesEqual(self, a, b):
      for a, b in zip(nest.flatten(a), nest.flatten(b)):
          self.assertEqual(a.ndims, b.ndims)
          if a.ndims is None:
              continue
          for c, d in zip(a.as_list(), b.as_list()):
              self.assertEqual(c, d)
  
imports: import functools
  from absl.testing import parameterized
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.util import nest
  from tensorflow.python.data.util import sparse
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the SparseTest obj's underlying member method code with example usage: obj.assertShapesEqual(a, b) without return types