code: def testFeatureToNumpyArray(self):
      feat = np.array([1.0, 2.0, None])
      expected = np.array([1.0, 2.0, np.nan])
      actual = mutual_information_util._fill_missing_values(feat, False)
      np.testing.assert_equal(
          actual[np.isnan(actual)], expected[np.isnan(expected)]
      )
      np.testing.assert_equal(expected, actual)
  
      feat = np.array([b"a", b"b", None])
      expected = np.array([b"a", b"b", np.nan], dtype=object)
      actual = mutual_information_util._fill_missing_values(feat, True)
      self.assertEqual(
          [
              i
              for i, v in enumerate(actual)
              if isinstance(v, float) and np.isnan(v)
          ],
          [
              i
              for i, v in enumerate(expected)
              if isinstance(v, float) and np.isnan(v)
          ],
      )
      self.assertEqual(
          [v for v in actual if not isinstance(v, float)],
          [v for v in expected if not isinstance(v, float)],
      )
  
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 20 for calling the RanklabMutualInformationTest obj's underlying member method code with example usage: obj.testFeatureToNumpyArray() without return types