code: def setUpClass(cls):
      super(ExecutorTest, cls).setUpClass()
  
      source_example_dir = os.path.join(
          cls._SOURCE_DATA_DIR, cls._SOURCE_EXAMPLE_DIR
      )
  
      io_utils.copy_dir(
          source_example_dir, cls._ARTIFACT_URI_TEMPLATE.format(1)
      )
      artifact_2_uri = cls._ARTIFACT_URI_TEMPLATE.format(2)
      io_utils.copy_dir(source_example_dir, artifact_2_uri)
  
      # Duplicate the number of train and eval records such that
      # second artifact has twice as many as first.
      artifact2_pattern = os.path.join(artifact_2_uri, "*", "*")
      artifact2_files = fileio.glob(artifact2_pattern)
      for filepath in artifact2_files:
          directory, filename = os.path.split(filepath)
          io_utils.copy_file(
              filepath, os.path.join(directory, "dup_" + filename)
          )
  
imports: import copy
  import json
  import os
  import re
  import tempfile
  from unittest import mock
  from absl.testing import parameterized
  import apache_beam
  import tensorflow
  import tensorflow_data_validation
  import tensorflow_transform
  from tensorflow_transform.beam import tft_unit
  from tfx import types
  from tfx.components.testdata.module_file import transform_module
  from tfx.components.transform import executor
  from tfx.dsl.io import fileio
  from tfx.proto import example_gen_pb2
  from tfx.proto import transform_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 proto_utils
label_desc: Use image node_id 3 for calling the ExecutorTest obj's underlying member method code with example usage: obj.setUpClass(cls) without return types