code: def testOperation(self):
      operation = mtf.Operation([self.x], name="operation")
  
      # Everything is splittable.
      self.assertEqual(
          operation._initialize_all_dimensions_as_splittable(),
          (frozenset(["a", "b"]), frozenset()),
      )
  
      # Everything is unsplittable.
      self.assertEqual(
          operation._initialize_splittable_and_unsplittable_dims(
              "unsplittable"
          ),
          (frozenset(), frozenset(["a", "b"])),
      )
  
      # Everything is unsplittable except dimension "b".
      self.assertEqual(
          operation._initialize_splittable_and_unsplittable_dims(
              "unsplittable", ["b"]
          ),
          (frozenset(["b"]), frozenset(["a"])),
      )
  
      self.assertRaises(
          ValueError,
          operation._initialize_splittable_and_unsplittable_dims,
          "invalid",
      )
  
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 2 for calling the OperationSplittabilityTest obj's underlying member method code with example usage: obj.testOperation() without return types