code: def testOptionalInputs(self):
      class SpecWithOptionalInput(ComponentSpec):
          PARAMETERS = {}
          INPUTS = {"x": ChannelParameter(type=_Z, optional=True)}
          OUTPUTS = {}
  
      optional_not_specified = SpecWithOptionalInput()
      self.assertNotIn("x", optional_not_specified.inputs.keys())
      self.assertTrue(optional_not_specified.is_optional_input("x"))
      optional_specified = SpecWithOptionalInput(
          x=channel.Channel(type=_Z)
      )
      self.assertIn("x", optional_specified.inputs.keys())
  
imports: import json
  import sys
  from typing import Dict, List
  import unittest
  import tensorflow
  from tfx.dsl.placeholder import placeholder
  from tfx.proto import example_gen_pb2
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.types import component_spec
  from tfx.types.component_spec import ChannelParameter
  from tfx.types.component_spec import ComponentSpec
  from tfx.types.component_spec import ExecutionParameter
  from tfx.types.standard_artifacts import Examples
  from tfx.utils import proto_utils
  from google.protobuf import json_format
  from google.protobuf import text_format
label_desc: Use image node_id 10 for calling the ComponentSpecTest obj's underlying member method code with example usage: obj.testOptionalInputs() without return types