class_docstr: Tests for NonStreamingCustomStatsGenerator.
code: def test_sklearn_mi(self):
      expected_result = [
          _get_test_stats_with_mi(
              [
                  types.FeaturePath(["fa"]),
                  types.FeaturePath(["fb"]),
                  types.FeaturePath(["fd"]),
              ]
          )
      ]
      generator = (
          partitioned_stats_generator.NonStreamingCustomStatsGenerator(
              sklearn_mutual_information.SkLearnMutualInformation(
                  label_feature=types.FeaturePath(["label_key"]),
                  schema=self.schema,
                  seed=TEST_SEED,
              ),
              num_partitions=2,
              min_partitions_stat_presence=2,
              seed=TEST_SEED,
              max_examples_per_partition=1000,
              batch_size=1,
              name="NonStreaming Mutual Information",
          )
      )
      self.assertSlicingAwareTransformOutputEqual(
          self.record_batches,
          generator,
          expected_result,
          add_default_slice_key_to_input=True,
          add_default_slice_key_to_output=True,
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  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 import constants
  from tensorflow_data_validation import types
  from tensorflow_data_validation.statistics.generators import partitioned_stats_generator
  from tensorflow_data_validation.statistics.generators import sklearn_mutual_information
  from tensorflow_data_validation.utils import test_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 2 for calling the NonStreamingCustomStatsGeneratorTest obj's underlying member method code with example usage: obj.test_sklearn_mi() without return types