code: def testAverage(self):
      def reduce_fn(x, y):
          return (x[0] * x[1] + math_ops.cast(y, dtypes.float32)) / (
              x[1] + 1
          ), x[1] + 1
  
      reducer = grouping.Reducer(
          init_func=lambda _: (0.0, 0.0),
          reduce_func=reduce_fn,
          finalize_func=lambda x, _: x,
      )
      for i in range(1, 11):
          dataset = dataset_ops.Dataset.range(2 * i).apply(
              grouping.group_by_reducer(
                  lambda x: math_ops.cast(x, dtypes.int64) % 2, reducer
              )
          )
          self.assertDatasetProduces(
              dataset,
              expected_shapes=tensor_shape.TensorShape([]),
              expected_output=[i - 1, i],
          )
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.data.experimental.ops import grouping
  from tensorflow.python.data.kernel_tests import checkpoint_test_base
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the GroupByReducerTest obj's underlying member method code with example usage: obj.testAverage() and returns: unknown,  unknown