code: def testInputProcessor(self):
      input_config = example_gen_pb2.Input(
          splits=[
              example_gen_pb2.Input.Split(
                  name="s", pattern="path/{SPAN}"
              ),
          ]
      )
      static_range_config = range_config_pb2.RangeConfig(
          static_range=range_config_pb2.StaticRange(
              start_span_number=1, end_span_number=2
          )
      )
      rolling_range_config = range_config_pb2.RangeConfig(
          rolling_range=range_config_pb2.RollingRange(num_spans=2)
      )
      rolling_range_config2 = range_config_pb2.RangeConfig(
          rolling_range=range_config_pb2.RollingRange(
              num_spans=1, start_span_number=1
          )
      )
  
      with self.assertRaisesRegex(
          ValueError,
          "For ExampleGen, start and end span numbers for RangeConfig.StaticRange must be equal",
      ):
          TestInputProcessor(input_config.splits, static_range_config)
  
      with self.assertRaisesRegex(
          ValueError,
          "ExampleGen only support single span for RangeConfig.RollingRange",
      ):
          TestInputProcessor(input_config.splits, rolling_range_config)
  
      with self.assertRaisesRegex(
          ValueError,
          "RangeConfig.rolling_range.start_span_number is not supported",
      ):
          TestInputProcessor(input_config.splits, rolling_range_config2)
  
file_path: tfx/tfx/components/example_gen/input_processor_test.py
imports: from typing import Optional
  import tensorflow
  from tfx.components.example_gen import input_processor
  from tfx.proto import example_gen_pb2
  from tfx.proto import range_config_pb2
label_desc: Use image node_id 1 for calling the InputProcessorTest obj's underlying member method code with example usage: obj.testInputProcessor() without return types