code: def testBuildArtifactDict(self):
      actual_artifact_dict = data_types_utils.build_artifact_dict(
          self.artifact_struct_dict
      )
      for k, v in actual_artifact_dict.items():
          self.assertLen(self.artifact_dict[k], len(v))
          self.assertEqual(self.artifact_dict[k][0].id, v[0].id)
          self.assertEqual(
              self.artifact_dict[k][0].type_name, v[0].type_name
          )
  
imports: from absl.testing import parameterized
  import tensorflow
  from tfx import types
  from tfx.orchestration import data_types_utils
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import artifact_utils
  from tfx.utils import proto_utils
  from tfx.utils import test_case_utils
  from google.protobuf import struct_pb2
  from google.protobuf import text_format
  from ml_metadata.proto import metadata_store_pb2
  from ml_metadata.proto import metadata_store_service_pb2
label_desc: Use image node_id 2 for calling the DataTypesUtilsTest obj's underlying member method code with example usage: obj.testBuildArtifactDict() without return types