class_docstr: Tests that MutualInformation returns the correct AMI value.
class_docstr_tok: ["Tests","that","MutualInformation","returns","the","correct","AMI","value","."]
code: def test_mi_batch_smaller_than_k(self):
      label_array = pa.array([[0.1], [0.2]])
      feat_array_1 = pa.array([[0.4], [0.1]])
      feat_array_2 = pa.array([[0.2], [0.4]])
      batch = pa.RecordBatch.from_arrays(
          [label_array, feat_array_1, feat_array_2],
          ["label_key", "feat_array_1", "feat_array_2"],
      )
  
      schema = text_format.Parse(
          """
          feature {
            name: "feat_array_1"
            type: FLOAT
            shape {
              dim {
                size: 1
              }
            }
          }
          feature {
            name: "feat_array_2"
            type: FLOAT
            shape {
              dim {
                size: 1
              }
            }
          }
          feature {
            name: "label_key"
            type: FLOAT
            shape {
              dim {
                size: 1
              }
            }
          }
          """,
          schema_pb2.Schema(),
      )
  
      # Data is invalid (partition size of 2, but k of 3) but since
      # allow_invalid_partitions is True, the output for this partition will
      # simply be empty, rather than raising an exception.
      expected = statistics_pb2.DatasetFeatureStatistics()
      self._assert_ami_output_equal(
          batch,
          expected,
          schema,
          types.FeaturePath(["label_key"]),
          allow_invalid_partitions=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 types
  from tensorflow_data_validation.statistics.generators import mutual_information
  from tensorflow_data_validation.statistics.generators import partitioned_stats_generator
  from tensorflow_data_validation.utils import test_util
  from tfx_bsl.arrow import table_util
  from google.protobuf import text_format
  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 MutualInformationTest obj's underlying member method code with example usage: obj.test_mi_batch_smaller_than_k() without return types