code: def testEnumerateArraysWithColumnSelectFn(
      self, col_fn, expected_features
  ):
      actual = list(
          arrow_util.enumerate_arrays(
              _INPUT_RECORD_BATCH,
              _EXAMPLE_WEIGHT_MAP,
              True,
              column_select_fn=col_fn,
          )
      )
      expected = list(
          (
              f,
              _FEATURES_TO_ARRAYS[f].array,
              _FEATURES_TO_ARRAYS[f].weights,
          )
          for f in expected_features
      )
      for (actual_path, actual_col, actual_w), (
          expected_path,
          expected_col,
          expected_w,
      ) in zip(actual, expected):
          self.assertEqual(expected_path, actual_path)
          self.assertEqual(expected_col, actual_col)
          self.assertEqual(pa.array(expected_w), pa.array(actual_w))
  
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 8 for calling the ArrowUtilTest obj's underlying member method code with example usage: obj.testEnumerateArraysWithColumnSelectFn(col_fn, expected_features) without return types