code: def test_op_plus(left_operand, right_operand, device_id, precision):
      expected_forward = AA([left_operand]) + AA([right_operand])
  
      if np.isscalar(right_operand):
          expected_backward = {
              "left_arg": [
                  [
                      np.ones_like(
                          x, dtype=PRECISION_TO_TYPE[precision]
                      )
                      for x in left_operand
                  ]
              ],
              # gradients are accumulated
              "right_arg": [AA([left_operand]).size],
          }
      else:
          expected_backward = {
              "left_arg": [
                  [
                      np.ones_like(
                          x, dtype=PRECISION_TO_TYPE[precision]
                      )
                      for x in left_operand
                  ]
              ],
              "right_arg": [
                  [
                      np.ones_like(
                          x, dtype=PRECISION_TO_TYPE[precision]
                      )
                      for x in right_operand
                  ]
              ],
          }
      from .. import plus
  
      _test_binary_op(
          precision,
          device_id,
          plus,
          left_operand,
          right_operand,
          expected_forward,
          expected_backward,
      )
  
      _test_binary_op(
          precision,
          device_id,
          "+",
          left_operand,
          right_operand,
          expected_forward,
          expected_backward,
      )
  
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 1 for calling a global function with example usage: test_op_plus(left_operand, right_operand, device_id, precision) without return types