code: def testEnumerateMissingPropagatedInFlattenedStruct(
      self, batch, expected_results
  ):
      actual_results = {}
      for feature_path, feature_array, _ in arrow_util.enumerate_arrays(
          batch, example_weight_map=None, enumerate_leaves_only=False
      ):
          actual_results[feature_path] = feature_array
      self.assertLen(actual_results, len(expected_results))
      for k, v in six.iteritems(expected_results):
          assert k in actual_results, (k, list(actual_results.keys()))
          self.assertIn(k, actual_results)
          actual = _Normalize(actual_results[k])
          v = _Normalize(v)
          self.assertTrue(
              actual.equals(v),
              "feature={}; expected: {}; actual: {}; diff: {}".format(
                  k, v, actual, actual.diff(v)
              ),
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import itertools
  from typing import Dict, Iterable, NamedTuple
  from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  import pyarrow
  import six
  from tensorflow_data_validation import types
  from tensorflow_data_validation.arrow import arrow_util
  from tensorflow_data_validation.utils.example_weight_map import ExampleWeightMap
  from tfx_bsl.arrow import array_util
  from tfx_bsl.types import tfx_namedtuple
label_desc: Use image node_id 9 for calling the ArrowUtilTest obj's underlying member method code with example usage: obj.testEnumerateMissingPropagatedInFlattenedStruct(batch, expected_results) without return types