code: def _test_reduce_ops(
      input_var, data, op, cntk_axes, numpy_axes, fwd, bwd
  ):
      expected_forward = fwd(data, numpy_axes)
      expected_backward = bwd(data, expected_forward, numpy_axes)
      binding = {input_var: data}
  
      cntk_op = op(input_var, axis=cntk_axes)
      actual_backward = cntk_op.grad(binding)
      actual_forward = cntk_op.eval(binding)
  
      assert np.allclose(actual_forward, expected_forward)
      for ab, eb in zip(actual_backward, expected_backward):
          assert np.allclose(ab, eb)
  
imports: from __future__ import division
  import numpy
  import itertools
  import pytest
  import cntk
  from .ops_test_utils import unittest_helper, _test_unary_op, AA, precision, PRECISION_TO_TYPE, constant
  from cntk.internal import sanitize_dtype_cntk
  from ..None import reduce_sum, reduce_max, reduce_min, reduce_mean, reduce_log_sum_exp, reduce_prod
label_desc: Use image node_id 14 for calling a global function with example usage: _test_reduce_ops(input_var, data, op, cntk_axes, numpy_axes, fwd, bwd) without return types