code: def test_layout_prop_v2_infinite_loop(self):
      x_unsharded = layout.Layout(
          [_MESH_DIM_X, layout.UNSHARDED], self.mesh
      )
      unsharded_x = layout.Layout(
          [layout.UNSHARDED, _MESH_DIM_X], self.mesh
      )
  
      @polymorphic_function.function
      def func(input_a, input_b):
          out = array_ops.identity(
              math_ops.matmul(input_a, array_ops.identity(input_b))
          )
          return api.relayout(out, unsharded_x)
  
      result = func(
          api.call_with_layout(
              array_ops.ones, shape=(16, 16), layout=x_unsharded
          ),
          api.call_with_layout(
              array_ops.ones, shape=(16, 16), layout=unsharded_x
          ),
      )
      api.check_layout(result, unsharded_x)
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.dtensor.python import api
  from tensorflow.dtensor.python import d_variable
  from tensorflow.dtensor.python import layout
  from tensorflow.dtensor.python import numpy_util
  from tensorflow.dtensor.python.tests import test_util
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager.polymorphic_function import polymorphic_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_nn_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import stateless_random_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 13 for calling the LayoutPropagationV2Test obj's underlying member method code with example usage: obj.test_layout_prop_v2_infinite_loop() and returns: api