code: def testReconstructArtifactMultimap_HeterogeneousExecutions(self):
      a1 = Artifact(id=1, name="a1")
      a2 = Artifact(id=2, name="a2")
  
      with self.assertRaisesRegex(
          ValueError, "All events should be from the same execution"
      ):
          event_lib.reconstruct_artifact_multimap(
              artifacts=[a1, a2],
              events=[
                  Event(
                      artifact_id=a1.id,
                      execution_id=123,
                      path=valid_path("a", 0),
                  ),
                  Event(
                      artifact_id=a2.id,
                      execution_id=321,
                      path=valid_path("a", 1),
                  ),
              ],
          )
  
imports: import itertools
  from absl.testing import parameterized
  import tensorflow
  from tfx.orchestration.portable.mlmd import event_lib
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 8 for calling the EventLibTest obj's underlying member method code with example usage: obj.testReconstructArtifactMultimap_HeterogeneousExecutions() without return types