code: def test_op_times_reduce_sequence_axis(device_id, precision):
      dt_precision = PRECISION_TO_TYPE[precision]
  
      from cntk import (
          times,
          Value,
          TIMES_REDUCE_SEQUENCE_AXIS_WITHOUT_INFERRED_INPUT_RANK,
      )
      from cntk import sequence
  
      dim = 10
      seq = [[0, 1, 2], [3], [4, 5, 6, 7, 8, 9]]
      right_data = Value.one_hot(seq, dim, dtype=dt_precision)
      right_var = sequence.input_variable(
          shape=(dim), is_sparse=True, dtype=dt_precision
      )
      left_data = [
          AA([1, 1, 1], dtype=dt_precision),
          AA([1], dtype=dt_precision),
          AA([1, 1, 1, 1, 1, 1], dtype=dt_precision),
      ]
      left_var = sequence.input_variable(shape=(1), dtype=dt_precision)
  
      func = times(
          left_var,
          right_var,
          infer_input_rank_to_map=TIMES_REDUCE_SEQUENCE_AXIS_WITHOUT_INFERRED_INPUT_RANK,
      )
      func2 = sequence.reduce_sum(times(left_var, right_var))
  
      assert func.dynamic_axes == func2.dynamic_axes
  
      _, forward_output = func.forward(
          {left_var: left_data, right_var: right_data}
      )
  
      actual_forward = forward_output[func.output]
  
      expected_forward = AA(
          [
              [[1, 1, 1, 0, 0, 0, 0, 0, 0, 0]],
              [[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]],
              [[0, 0, 0, 0, 1, 1, 1, 1, 1, 1]],
          ]
      )
  
      assert np.allclose(actual_forward, expected_forward)
  
imports: from __future__ import division
  import numpy
  import pytest
  import cntk
  from .ops_test_utils import unittest_helper, _test_unary_op, _test_binary_op, AA, precision, PRECISION_TO_TYPE, cntk_device
  from cntk.internal import sanitize_dtype_cntk
  from cntk.internal.utils import _ones_like, eval
label_desc: Use image node_id 16 for calling a global function with example usage: test_op_times_reduce_sequence_axis(device_id, precision) without return types