code: def testOutputEachSanityCheck(self):
      np.random.seed(23)
      fx = np.random.randn(1000)
      fy = np.array([1.0] * 1000)
      fz = np.array([True] * 700 + [False] * 300)
  
      for method in ["smaller_data", "larger_data"]:
          result, each_mi = _MI(
              [fx],
              [fy],
              [False],
              [False],
              seed=3,
              output_each=True,
              estimate_method=method,
          )
          self.assertLess(abs(result), 1e-2)
          self.assertLen(each_mi, 1000)
          self.assertLess(max(0, np.mean(each_mi)), 1e-2)
  
          result, each_mi = _MI(
              [fx],
              [fy],
              [False],
              [False],
              filter_feature=fz,
              seed=4,
              output_each=True,
              estimate_method=method,
          )
          self.assertLess(abs(result), 1e-2)
          self.assertLen(each_mi, 700)
          self.assertLess(max(0, np.mean(each_mi)), 1e-2)
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  from tensorflow_data_validation.utils import mutual_information_util
label_desc: Use image node_id 10 for calling the RanklabMutualInformationTest obj's underlying member method code with example usage: obj.testOutputEachSanityCheck() without return types