code: def _get_artifacts_for_sequential_rolling_range_tests(
      self,
  ) -> Sequence[types.Artifact]:
      a10 = test_utils.DummyArtifact()
      a20 = test_utils.DummyArtifact()
      a31 = test_utils.DummyArtifact()
      a30 = test_utils.DummyArtifact()
      a40 = test_utils.DummyArtifact()
      a50 = test_utils.DummyArtifact()
  
      # There is a gap in the artifact spans, with a span of 6 missing.
      # ConsecutiveSpans should only ever return at most artifacts
      # [a10, a20, a30, a40, a50].
      a70 = test_utils.DummyArtifact()
      a80 = test_utils.DummyArtifact()
  
      artifacts = [a10, a20, a31, a30, a40, a50, a70, a80]
  
      spans = [1, 2, 3, 3, 4, 5, 7, 8]
      versions = [0, 0, 1, 0, 0, 0, 0, 0]
      for dummy_artifact, span, version in zip(
          artifacts, spans, versions
      ):
          dummy_artifact.span = span
          dummy_artifact.version = version
  
      return artifacts
  
imports: from typing import Sequence
  import tensorflow
  from tfx import types
  from tfx.dsl.input_resolution.ops import ops
  from tfx.dsl.input_resolution.ops import test_utils
  from tfx.types import artifact
label_desc: Use image node_id 2 for calling the ConsecutiveSpansOpTest obj's underlying member method code with example usage: obj._get_artifacts_for_sequential_rolling_range_tests() and returns: artifacts