code: def testSpanDrivenEvaluatorInputs_MultipleVersions(self):
      examples_3_2 = self.prepare_tfx_artifact(
          test_utils.Examples, properties={"span": 3, "version": 2}
      )
  
      examples_3_3 = self.prepare_tfx_artifact(
          test_utils.Examples, properties={"span": 3, "version": 3}
      )
  
      actual = self._span_driven_evaluator(
          self.models,
          [self.examples_3, examples_3_2, examples_3_3],
      )
      expected = {
          ops_utils.MODEL_KEY: [self.model_1],
          # Only the latest version of Examples with span 3 should be considered.
          ops_utils.EXAMPLES_KEY: [examples_3_3],
      }
      self.assertArtifactMapsEqual(actual, expected)
  
imports: from typing import List, Optional
  import tensorflow
  from tfx import types
  from tfx.dsl.input_resolution.ops import ops
  from tfx.dsl.input_resolution.ops import ops_utils
  from tfx.dsl.input_resolution.ops import test_utils
  from tfx.orchestration.portable.input_resolution import exceptions
label_desc: Use image node_id 12 for calling the SpanDrivenEvaluatorInputsOpTest obj's underlying member method code with example usage: obj.testSpanDrivenEvaluatorInputs_MultipleVersions() without return types