code: def test_cross_feature_stats_generator_string_feature(self):
      generator = (
          cross_feature_stats_generator.CrossFeatureStatsGenerator(
              sample_rate=1.0
          )
      )
      b1 = pa.RecordBatch.from_arrays(
          [pa.array([["x"], ["y"]]), pa.array([[2.0], [4.0]])],
          ["a", "b"],
      )
      b2 = pa.RecordBatch.from_arrays(
          [pa.array([["a"], ["b"]]), pa.array([[14.0], [16.0]])],
          ["a", "b"],
      )
      batches = [b1, b2]
      self.assertCombinerOutputEqual(batches, generator, {}, {})
  
file_path: data-validation/tensorflow_data_validation/statistics/generators/cross_feature_stats_generator_test.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import absltest
  import pyarrow
  from tensorflow_data_validation.statistics.generators import cross_feature_stats_generator
  from tensorflow_data_validation.utils import test_util
  from google.protobuf import text_format
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 5 for calling the CrossFeatureStatsGeneratorTest obj's underlying member method code with example usage: obj.test_cross_feature_stats_generator_string_feature() without return types