class_docstr: Tests for SkLearnMutualInformationStatsFn.
code: def test_mi_with_invalid_features(self):
      batch = pa.RecordBatch.from_arrays(
          [pa.array([[1]]), pa.array([[1, 2]])],
          ["label_key", "multivalent_feature"],
      )
      schema = text_format.Parse(
          """
          feature {
            name: "label_key"
            type: INT
            shape {
              dim {
                size: 1
              }
            }
          }
          feature {
            name: "multivalent_feature"
            type: INT
            value_count: {
              min: 2
              max: 2
            }
          }
          """,
          schema_pb2.Schema(),
      )
  
      expected = text_format.Parse(
          """""", statistics_pb2.DatasetFeatureStatistics()
      )
      self._assert_mi_output_equal(
          batch, expected, schema, types.FeaturePath(["label_key"])
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import absltest
  import numpy
  import pyarrow
  from tensorflow_data_validation import types
  from tensorflow_data_validation.statistics.generators import sklearn_mutual_information
  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 13 for calling the SkLearnMutualInformationTest obj's underlying member method code with example usage: obj.test_mi_with_invalid_features() without return types