code: def testCsvToExample(self):
      with beam.Pipeline() as pipeline:
          examples = pipeline | "ToTFExample" >> executor._CsvToExample(
              exec_properties={
                  standard_component_specs.INPUT_BASE_KEY: self._input_data_dir
              },
              split_pattern="csv/*",
          )
  
          def check_results(results):
              # We use Python assertion here to avoid Beam serialization error.
              assert 15000 == len(
                  results
              ), "Unexpected example count {}.".format(len(results))
              assert 18 == len(
                  results[0].features.feature
              ), "Example not match."
  
          util.assert_that(examples, check_results)
  
file_path: tfx/tfx/components/example_gen/csv_example_gen/executor_test.py
imports: import os
  from absl.testing import absltest
  import apache_beam
  from apache_beam.testing import util
  from tfx.components.example_gen.csv_example_gen import executor
  from tfx.dsl.io import fileio
  from tfx.proto import example_gen_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.types import standard_component_specs
  from tfx.utils import proto_utils
label_desc: Use image node_id 2 for calling the ExecutorTest obj's underlying member method code with example usage: obj.testCsvToExample() without return types