code: def test_layout_prop_parted_layout(self):
      value = np.array([1.0, 2.0, 3.0, 4.0])
      expected = nn_ops.softmax_v2(gen_nn_ops.relu(value))
  
      @polymorphic_function.function
      def func(value):
          return nn_ops.softmax_v2(gen_nn_ops.relu(value))
  
      parted_layout = self.x_layout.to_parted()
      result = func(api.relayout(value, parted_layout))
  
      # Verifies the parted layout can be propagated through a chain of ops to the
      # final output.
      self.assertDTensorEqual(expected, parted_layout, result)
  
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 14 for calling the LayoutPropagationV2Test obj's underlying member method code with example usage: obj.test_layout_prop_parted_layout() and returns: nn_ops