code: def testDoWithHyperParameters(self):
      hp_artifact = standard_artifacts.HyperParameters()
      hp_artifact.uri = os.path.join(
          self._output_data_dir, "hyperparameters/"
      )
  
      # TODO(jyzhao): use real keras_tuner.HyperParameters instead of dict.
      hyperparameters = {}
      hyperparameters["first_dnn_layer_size"] = 100
      hyperparameters["num_dnn_layers"] = 4
      hyperparameters["dnn_decay_factor"] = 0.7
      io_utils.write_string_file(
          os.path.join(hp_artifact.uri, "hyperparameters.txt"),
          json.dumps(hyperparameters),
      )
  
      self._input_dict[standard_component_specs.HYPERPARAMETERS_KEY] = [
          hp_artifact
      ]
  
      self._exec_properties[
          standard_component_specs.MODULE_FILE_KEY
      ] = self._module_file
      self._do(self._trainer_executor)
      self._verify_model_exports()
      self._verify_model_run_exports()
  
imports: import copy
  import json
  import os
  from unittest import mock
  import tensorflow
  from tfx.components.testdata.module_file import trainer_module
  from tfx.components.trainer import executor
  from tfx.dsl.io import fileio
  from tfx.proto import trainer_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.types import standard_component_specs
  from tfx.utils import io_utils
  from tfx.utils import name_utils
  from tfx.utils import path_utils
  from tfx.utils import proto_utils
label_desc: Use image node_id 12 for calling the ExecutorTest obj's underlying member method code with example usage: obj.testDoWithHyperParameters() without return types