code: def testBuildTensorInfoRagged(self):
      x = ragged_factory_ops.constant([[1, 2], [3]])
      x_tensor_info = utils.build_tensor_info(x)
      # Check components
      self.assertEqual(
          x.values.name,
          x_tensor_info.composite_tensor.components[0].name,
      )
      self.assertEqual(
          types_pb2.DT_INT32,
          x_tensor_info.composite_tensor.components[0].dtype,
      )
      self.assertEqual(
          x.row_splits.name,
          x_tensor_info.composite_tensor.components[1].name,
      )
      self.assertEqual(
          types_pb2.DT_INT64,
          x_tensor_info.composite_tensor.components[1].dtype,
      )
      # Check type_spec.
      spec_proto = struct_pb2.StructuredValue(
          type_spec_value=x_tensor_info.composite_tensor.type_spec
      )
      spec = nested_structure_coder.decode_proto(spec_proto)
      self.assertEqual(spec, x._type_spec)
  
imports: from tensorflow.core.framework import types_pb2
  from tensorflow.core.protobuf import struct_pb2
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.ops.ragged import ragged_tensor
  from tensorflow.python.platform import test
  from tensorflow.python.saved_model import nested_structure_coder
  from tensorflow.python.saved_model import utils
label_desc: Use image node_id 4 for calling the UtilsTest obj's underlying member method code with example usage: obj.testBuildTensorInfoRagged() without return types