code: def testWhileLoopOperation(self):
      # This test case implements the following:
      # for i in range(10):
      #   x = x * 2
      i = mtf.constant(self.mesh, 0, mtf.Shape([]))
      cond_fn = lambda i, x: mtf.less(i, 10)
      body_fn = lambda i, x: [mtf.add(i, 1), mtf.multiply(x, 2)]
  
      while_loop_operation = mtf.WhileLoopOperation(
          cond_fn, body_fn, [i, self.x]
      )
      self.assertEqual(
          while_loop_operation.splittable_dims, frozenset(["a", "b"])
      )
      self.assertEqual(
          while_loop_operation.unsplittable_dims, frozenset()
      )
  
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 27 for calling the OperationSplittabilityTest obj's underlying member method code with example usage: obj.testWhileLoopOperation() without return types