code: def test_op_reduce_batch_sequence_static_axes_together(
      input_data, dynamic_axes, static_axes, device_id, precision
  ):
      from cntk import Axis
  
      dt = PRECISION_TO_TYPE[precision]
      data = AA(input_data, dtype=dt)
      if dynamic_axes == [C.Axis.default_batch_axis()]:
          # Reduction along the batch axis on input sequence is currently unsupported, so only batch axis input is tested
          v = C.input_variable(
              data.shape[1:],
              dtype=sanitize_dtype_cntk(dt),
              needs_gradient=True,
          )
          numpy_axis_offset = 1
          ignore_max_min = True
      else:
          v = C.sequence.input_variable(
              data.shape[2:],
              dtype=sanitize_dtype_cntk(dt),
              needs_gradient=True,
          )
          numpy_axis_offset = 2
          ignore_max_min = False
  
      for op, fwd, bwd in reduce_batch_sequence_static_ops(dt):
          cntk_axes = tuple(dynamic_axes + static_axes)
          numpy_axes = tuple(
              [
                  0 if a == C.Axis.default_batch_axis() else 1
                  for a in dynamic_axes
              ]
              + [ax + numpy_axis_offset for ax in static_axes]
          )
          _test_reduce_ops(v, data, op, cntk_axes, numpy_axes, fwd, bwd)
  
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 15 for calling a global function with example usage: test_op_reduce_batch_sequence_static_axes_together(input_data, dynamic_axes, static_axes, device_id, precision) without return types