code: def testMismatchedShapes(self):
      with self.session() as sess:
          sp_a = self._SparseTensor_3x3()
          sp_b = self._SparseTensor_3x5()
          sp_c = self._SparseTensor_3x2()
          sp_d = self._SparseTensor_2x3()
          for concat_dim in (-1, 1):
              sp_concat = sparse_ops.sparse_concat(
                  concat_dim, [sp_a, sp_b, sp_c, sp_d]
              )
  
              # Shape mismatches can only be caught when the op is run
              with self.assertRaisesOpError("Input shapes must match"):
                  self.evaluate(sp_concat)
  
imports: import numpy
  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 test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 21 for calling the SparseConcatTest obj's underlying member method code with example usage: obj.testMismatchedShapes() without return types