code: def test_transform_step_with_transformer_experiment_config(
      experiment_config, expected_experiment_config, pipeline_session
  ):
      transformer = Transformer(
          model_name="my_model",
          instance_type="ml.m5.xlarge",
          instance_count=1,
          output_path="s3://my-bucket/my-output-path",
          sagemaker_session=pipeline_session,
      )
      transform_inputs = TransformInput(data="s3://my-bucket/my-data")
  
      with warnings.catch_warnings(record=True) as w:
          step_args = transformer.transform(
              data=transform_inputs.data,
              data_type=transform_inputs.data_type,
              content_type=transform_inputs.content_type,
              compression_type=transform_inputs.compression_type,
              split_type=transform_inputs.split_type,
              input_filter=transform_inputs.input_filter,
              output_filter=transform_inputs.output_filter,
              join_source=transform_inputs.join_source,
              model_client_config=transform_inputs.model_client_config,
              experiment_config=experiment_config,
          )
          assert len(w) == 1
          assert issubclass(w[-1].category, UserWarning)
          assert "Running within a PipelineSession" in str(
              w[-1].message
          )
  
      with warnings.catch_warnings(record=True) as w:
          step = TransformStep(
              name="MyTransformStep",
              step_args=step_args,
          )
          assert len(w) == 0
  
      pipeline = Pipeline(
          name="MyPipeline",
          steps=[step],
          sagemaker_session=pipeline_session,
      )
  
      step_args = get_step_args_helper(step_args, "Transform")
      expected_step_arguments = deepcopy(step_args)
      if expected_experiment_config is None:
          expected_step_arguments.pop("ExperimentConfig", None)
      else:
          expected_step_arguments[
              "ExperimentConfig"
          ] = expected_experiment_config
  
      step_def = json.loads(pipeline.definition())["Steps"][0]
      assert step_def == {
          "Name": "MyTransformStep",
          "Type": "Transform",
          "Arguments": expected_step_arguments,
      }
  
      adjacency_list = PipelineGraph.from_pipeline(
          pipeline
      ).adjacency_list
      assert adjacency_list == {"MyTransformStep": []}
  
      # test idempotency
      step_def2 = json.loads(pipeline.definition())["Steps"][0]
      assert step_def == step_def2
  
imports: from __future__ import absolute_import
  import json
  import pytest
  import warnings
  from copy import deepcopy
  from sagemaker import Model, Processor
  from sagemaker.estimator import Estimator
  from sagemaker.parameter import IntegerParameter
  from sagemaker.tuner import HyperparameterTuner
  from sagemaker.workflow.pipeline_definition_config import PipelineDefinitionConfig
  from tests.unit.sagemaker.workflow.helpers import CustomStep, get_step_args_helper
  from sagemaker.workflow.steps import TransformStep, TransformInput
  from sagemaker.workflow.pipeline import Pipeline, PipelineGraph
  from sagemaker.workflow.parameters import ParameterString
  from sagemaker.workflow.functions import Join
  from sagemaker.workflow import is_pipeline_variable
  from sagemaker.transformer import Transformer
  from tests.unit.sagemaker.workflow.conftest import IMAGE_URI, ROLE, INSTANCE_TYPE
label_desc: Use image node_id 2 for calling a global function with example usage: test_transform_step_with_transformer_experiment_config(experiment_config, expected_experiment_config, pipeline_session) without return types