code: def testComponentSpecWithRuntimeParam(self):
      proto_str = (
          '{"splits": [{"name": "name1", "pattern": "pattern1"}]}'
      )
      param_proto = data_types.RuntimeParameter(
          name="proto", ptype=str, default=proto_str
      )
      param_int = data_types.RuntimeParameter(name="int", ptype=int)
      input_channel = Channel(type=_InputArtifact)
      output_channel = Channel(type=_OutputArtifact)
      spec = _BasicComponentSpec(
          folds=param_int,
          proto=param_proto,
          input=input_channel,
          output=output_channel,
      )
      self.assertIsInstance(
          spec.exec_properties["folds"], data_types.RuntimeParameter
      )
      self.assertIsInstance(
          spec.exec_properties["proto"], data_types.RuntimeParameter
      )
      self.assertEqual(spec.exec_properties["proto"].default, proto_str)
  
imports: from typing import Dict, List
  import tensorflow
  from tfx.orchestration import data_types
  from tfx.proto import example_gen_pb2
  from tfx.types.artifact import Artifact
  from tfx.types.channel import Channel
  from tfx.types.component_spec import ChannelParameter
  from tfx.types.component_spec import ComponentSpec
  from tfx.types.component_spec import ExecutionParameter
  from google.protobuf.json_format import ParseError
label_desc: Use image node_id 1 for calling the DataTypesTest obj's underlying member method code with example usage: obj.testComponentSpecWithRuntimeParam() without return types