code: def testConcatOperation(self):
      concat_dim1 = mtf.Dimension("concat", 5)
      concat_dim2 = mtf.Dimension("concat", 7)
  
      x1 = mtf.zeros(
          self.mesh, mtf.Shape([self.a_dim, self.b_dim, concat_dim1])
      )
      x2 = mtf.zeros(
          self.mesh, mtf.Shape([self.a_dim, self.b_dim, concat_dim2])
      )
  
      concat_operation = mtf.ConcatOperation([x1, x2], "concat")
      self.assertEqual(
          concat_operation.splittable_dims, frozenset(["a", "b"])
      )
      self.assertEqual(
          concat_operation.unsplittable_dims, frozenset(["concat"])
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import mesh_tensorflow
  from mesh_tensorflow import test_utils
  import numpy
  import tensorflow.compat.v1
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 9 for calling the OperationSplittabilityTest obj's underlying member method code with example usage: obj.testConcatOperation() without return types