code: def setUp(self):
      super().setUp()
      image_array = np.array([[1, 2, 3], [1, 2, 3]], dtype=np.uint8)
      image = Image.fromarray(image_array)
      encoded_buffer = io.BytesIO()
      image.save(encoded_buffer, format="PNG")
      encoded_image = encoded_buffer.getvalue()
  
      self._extract_inputs = [
          util.StandardExtracts(
              {
                  constants.LABELS_KEY: {
                      "image/encoded": encoded_image,
                      "image/decoded": image_array,
                      "number_of_classes": 2,
                  },
                  constants.PREDICTIONS_KEY: {
                      "image/pred/encoded": encoded_image,
                      "image/pred/decoded": image_array,
                      "number_of_classes": 3,
                  },
              }
          )
      ]
      self._expected_processed_inputs = [
          util.StandardExtracts(
              {
                  constants.LABELS_KEY: image_array,
                  constants.PREDICTIONS_KEY: image_array,
              }
          )
      ]
  
file_path: model-analysis/tensorflow_model_analysis/metrics/preprocessors/image_preprocessors_test.py
imports: import io
  from absl.testing import absltest
  from absl.testing import parameterized
  import apache_beam
  from apache_beam.testing import util
  import numpy
  from PIL import Image
  from tensorflow_model_analysis import constants
  from tensorflow_model_analysis.metrics.preprocessors import image_preprocessors
  from tensorflow_model_analysis.utils import util
label_desc: Use image node_id 1 for calling the ImageDecodeTest obj's underlying member method code with example usage: obj.setUp() without return types