code: def test_stats_impl_slicing_sql_in_config(self):
      record_batches = [
          pa.RecordBatch.from_arrays(
              [
                  pa.array([[1.0, 2.0]], type=pa.list_(pa.float32())),
                  pa.array([[b"a"]], type=pa.list_(pa.binary())),
                  pa.array([np.linspace(1, 500, 500, dtype=np.int64)]),
              ],
              ["a", "b", "c"],
          ),
          pa.RecordBatch.from_arrays(
              [
                  pa.array(
                      [[3.0, 4.0, np.NaN, 5.0]],
                      type=pa.list_(pa.float32()),
                  ),
                  pa.array([[b"a", b"b"]], type=pa.list_(pa.binary())),
                  pa.array(
                      [np.linspace(501, 1250, 750, dtype=np.int64)]
                  ),
              ],
              ["a", "b", "c"],
          ),
          pa.RecordBatch.from_arrays(
              [
                  pa.array([[1.0]], type=pa.list_(pa.float32())),
                  pa.array([[b"b"]], type=pa.list_(pa.binary())),
                  pa.array(
                      [np.linspace(1251, 3000, 1750, dtype=np.int64)]
                  ),
              ],
              ["a", "b", "c"],
          ),
      ]
      options = stats_options.StatsOptions(
          slicing_config=text_format.Parse(
              """
              slicing_specs {
                slice_keys_sql: "SELECT STRUCT(b) FROM example.b"
              }
              """,
              slicing_spec_pb2.SlicingConfig(),
          ),
          num_top_values=2,
          num_rank_histogram_buckets=2,
          num_values_histogram_buckets=2,
          num_histogram_buckets=2,
          num_quantiles_histogram_buckets=2,
          enable_semantic_domain_stats=True,
      )
      expected_result = text_format.Parse(
          _SLICED_STATS_TEST_RESULT,
          statistics_pb2.DatasetFeatureStatisticsList(),
      )
      with beam.Pipeline() as p:
          result = (
              p
              | beam.Create(record_batches, reshuffle=False)
              | stats_impl.GenerateStatisticsImpl(options)
          )
          util.assert_that(
              result,
              test_util.make_dataset_feature_stats_list_proto_equal_fn(
                  self, expected_result, check_histograms=False
              ),
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import sys
  from typing import Iterable
  import unittest
  from absl.testing import absltest
  from absl.testing import parameterized
  import apache_beam
  from apache_beam.testing import util
  import numpy
  import pyarrow
  from tensorflow_data_validation.statistics import stats_impl
  from tensorflow_data_validation.statistics import stats_options
  from tensorflow_data_validation.statistics.generators import cross_feature_stats_generator
  from tensorflow_data_validation.statistics.generators import stats_generator
  from tensorflow_data_validation.utils import slicing_util
  from tensorflow_data_validation.utils import test_util
  from tfx_bsl.arrow import array_util
  from tfx_bsl.arrow import table_util
  from tfx_bsl.public.proto import slicing_spec_pb2
  from tfx_bsl.statistics import merge_util
  from google.protobuf import text_format
  from tensorflow.python.util.protobuf import compare
  from tensorflow_metadata.proto.v0 import schema_pb2
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 3 for calling the StatsImplTest obj's underlying member method code with example usage: obj.test_stats_impl_slicing_sql_in_config() without return types