code: def testIntermediateArtifactState(self):
      pipeline_node = text_format.Parse(
          """
      node_info {
        id: "test_node"
      }
      outputs {
        outputs {
          key: "checkpoint_model"
          value {
            artifact_spec {
              type {
                id: 1
                name: "CheckpointModel"
              }
              is_async: True
            }
          }
        }
    }
    """,
          pipeline_pb2.PipelineNode(),
      )
  
      outputs_resolver = outputs_utils.OutputsResolver(
          pipeline_node=pipeline_node,
          pipeline_info=_PIPELINE_INFO,
          pipeline_runtime_spec=self._pipeline_runtime_spec,
      )
      artifacts = outputs_resolver.generate_output_artifacts(1)
  
      self.assertLen(artifacts, 1)
      self.assertIn("checkpoint_model", artifacts)
      self.assertLen(artifacts["checkpoint_model"], 1)
      self.assertEqual(
          artifacts["checkpoint_model"][0].state,
          tfx_artifact.ArtifactState.REFERENCE,
      )
  
imports: import os
  from unittest import mock
  from absl.testing import parameterized
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.orchestration import data_types_utils
  from tfx.orchestration.experimental.core import constants
  from tfx.orchestration.portable import data_types
  from tfx.orchestration.portable import outputs_utils
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import artifact
  from tfx.types import standard_artifacts
  from tfx.types.value_artifact import ValueArtifact
  from tfx.utils import test_case_utils
  from google.protobuf import text_format
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 19 for calling the OutputUtilsTest obj's underlying member method code with example usage: obj.testIntermediateArtifactState() without return types