code: def testExecutionParameterTypeCheckForPython39Type(self):
      list_parameter = ExecutionParameter(type=list[int])
      list_parameter.type_check("list_parameter", [])
      list_parameter.type_check("list_parameter", [42])
      with self.assertRaisesRegex(
          TypeError, r"Expected type list\[int\] for parameter"
      ):
          list_parameter.type_check("list_parameter", 42)
  
      with self.assertRaisesRegex(
          TypeError,
          r"Expected type list\[int\] for parameter u?'list_parameter'",
      ):
          list_parameter.type_check(
              "list_parameter", [42, "wrong item"]
          )
  
      dict_parameter = ExecutionParameter(type=dict[str, int])
      dict_parameter.type_check("dict_parameter", {})
      dict_parameter.type_check(
          "dict_parameter", {"key1": 1, "key2": 2}
      )
      with self.assertRaisesRegex(
          TypeError, r"Expected type dict\[str, int\] for parameter"
      ):
          dict_parameter.type_check("dict_parameter", "simple string")
  
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 15 for calling the ComponentSpecTest obj's underlying member method code with example usage: obj.testExecutionParameterTypeCheckForPython39Type() without return types