code: def test_spec_summary(self):
      input_signature = (
          tensor_spec.TensorSpec(shape=None),
          tensor_spec.TensorSpec(shape=None),
      )
  
      @dummy_tf_decorator
      def foo(x=2, y=3):  # pylint: disable=unused-argument
          pass
  
      spec = (
          function_type_utils.FunctionSpec.from_function_and_signature(
              foo, input_signature
          )
      )
      self.assertEqual(
          spec.signature_summary(True),
          "Input Parameters:\n" + "  x (POSITIONAL_OR_KEYWORD):"
          " TensorSpec(shape=<unknown>, dtype=tf.float32, name=None)\n"
          + "  y"
          " (POSITIONAL_OR_KEYWORD): TensorSpec(shape=<unknown>,"
          " dtype=tf.float32, name=None)\n"
          + "Output Type:\n"
          + "  None\n"
          + "Captures:\n"
          + "  None\n"
          + "Defaults:\n"
          + "  x: 2\n"
          + "  y: 3",
      )
  
imports: from absl.testing import parameterized
  from tensorflow.core.function import trace_type
  from tensorflow.core.function.polymorphism import function_type
  from tensorflow.python.eager.polymorphic_function import function_type_utils
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.platform import test
  from tensorflow.python.util import tf_decorator
label_desc: Use image node_id 9 for calling the FunctionSpecTest obj's underlying member method code with example usage: obj.test_spec_summary() without return types