code: def test_extract_arg_defaults(self):
      def func_with_default_values(
          param1: str, param2: int = 2, param3: str = "foo"
      ) -> None:
          pass
  
      arg_defaults = utils.extract_arg_defaults(
          inspect.getfullargspec(func_with_default_values),
      )
      self.assertEqual(arg_defaults, {"param2": 2, "param3": "foo"})
  
imports: import copy
  import inspect
  from typing import Dict, List
  import tensorflow
  from tfx.dsl.component.experimental import annotations
  from tfx.dsl.component.experimental import decorators
  from tfx.dsl.component.experimental import function_parser
  from tfx.dsl.component.experimental import utils
  from tfx.dsl.components.base import executor_spec
  from tfx.types import standard_artifacts
  from tfx.types import system_executions
label_desc: Use image node_id 5 for calling the UtilsTest obj's underlying member method code with example usage: obj.test_extract_arg_defaults() without return types