code: def testRepr(self):
      with tf.compat.v1.Graph().as_default():
          sig = _make_signature(
              {
                  "x": tf.compat.v1.placeholder(tf.string, [2]),
              },
              {
                  "y": tf.compat.v1.placeholder(tf.int32, [2]),
                  "z": tf.compat.v1.sparse_placeholder(
                      tf.float32, [2, 10]
                  ),
                  "r": tf.compat.v1.ragged.placeholder(
                      tf.float32, 1, ()
                  ),
              },
          )
  
          outputs = tensor_info.parse_tensor_info_map(sig.outputs)
          self.assertEqual(
              repr(outputs["y"]),
              "<hub.ParsedTensorInfo shape=(2,) dtype=int32 is_sparse=False>",
          )
          self.assertEqual(
              repr(outputs["z"]),
              "<hub.ParsedTensorInfo shape=(2, 10) dtype=float32 is_sparse=True>",
          )
          self.assertRegex(
              repr(outputs["r"]),
              r"<hub.ParsedTensorInfo type_spec=RaggedTensorSpec\(TensorShape\(\["
              r"(None, None|Dimension\(None\), Dimension\(None\))"
              r"\]\), tf.float32, 1, tf.int64\)>",
          )
  
file_path: hub/tensorflow_hub/tensor_info_test.py
imports: import tensorflow
  from tensorflow_hub import tensor_info
label_desc: Use image node_id 2 for calling the TensorInfoTest obj's underlying member method code with example usage: obj.testRepr() without return types