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_with_multivalent_feature_all_null(self):
      label_array = pa.array([[0.1], [0.2], [0.7], [0.7]])
      null_feat_array = pa.array(
          [[np.NaN], [np.NaN], [np.NaN], [np.NaN]]
      )
      batch = pa.RecordBatch.from_arrays(
          [label_array, null_feat_array], ["label_key", "null_feature"]
      )
  
      schema = text_format.Parse(
          """
          feature {
            name: "null_feature"
            type: FLOAT
            value_count {
                min: 0
                max: 3
            }
          }
          feature {
            name: "label_key"
            type: FLOAT
            shape {
              dim {
                size: 1
              }
            }
          }
          """,
          schema_pb2.Schema(),
      )
  
      expected = text_format.Parse(
          """
          features {
            path {
              step: "null_feature"
            }
            custom_stats {
              name: "adjusted_mutual_information"
              num: 0
            }
          }""",
          statistics_pb2.DatasetFeatureStatistics(),
      )
      self._assert_ami_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
  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 8 for calling the MutualInformationTest obj's underlying member method code with example usage: obj.test_mi_with_multivalent_feature_all_null() without return types