code: def setUp(self):
      super().setUp()
  
      self._test_dir = os.path.join(
          os.environ.get(
              "TEST_UNDECLARED_OUTPUTS_DIR", self.get_temp_dir()
          ),
          self._testMethodName,
      )
  
      self._pipeline_name = "penguin_test"
      self._schema_path = os.path.join(
          os.path.dirname(__file__),
          "schema",
          "user_provided",
          "schema.pbtxt",
      )
      self._data_root = os.path.join(os.path.dirname(__file__), "data")
  
      # Create a data root for rolling window test
      # - data/labelled
      #   - day1
      #     - penguins_processed.csv
      #   - day2
      #     - penguins_processed.csv
      #   - day3
      #     - penguins_processed.csv
      self._data_root_span = os.path.join(self._test_dir, "data")
      for day in ["day1", "day2", "day3"]:
          dst_path = os.path.join(self._data_root_span, "labelled", day)
          fileio.makedirs(dst_path)
          fileio.copy(
              os.path.join(
                  self._data_root, "labelled", "penguins_processed.csv"
              ),
              os.path.join(dst_path, "penguins_processed.csv"),
          )
  
      # Create a data root for the feature skew test
      # - data/skewed
      #   - penguins_processed.csv
      skewed_dst_path = os.path.join(self._data_root_span, "skewed")
      fileio.makedirs(skewed_dst_path)
      fileio.copy(
          os.path.join(
              self._data_root, "skewed", "penguins_processed.csv"
          ),
          os.path.join(skewed_dst_path, "penguins_processed.csv"),
      )
  
      self._serving_model_dir = os.path.join(
          self._test_dir, "serving_model"
      )
      self._pipeline_root = os.path.join(
          self._test_dir, "tfx", "pipelines", self._pipeline_name
      )
      self._metadata_path = os.path.join(
          self._test_dir,
          "tfx",
          "metadata",
          self._pipeline_name,
          "metadata.db",
      )
  
imports: import importlib
  import os
  from typing import List
  from absl import logging
  from absl.testing import parameterized
  import tensorflow
  from tfx.examples.penguin import penguin_pipeline_local
  from tfx.v1 import proto
  from tfx.v1.dsl.io import fileio
  from tfx.v1.orchestration import LocalDagRunner
  from tfx.v1.orchestration import metadata
  import ml_metadata
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 1 for calling the PenguinPipelineLocalEndToEndTest obj's underlying member method code with example usage: obj.setUp() without return types