code: def test_op_abs(operand, device_id, precision):
      t = np.abs(AA(operand, dtype=PRECISION_TO_TYPE[precision]))
  
      expected_forward = AA([t])
  
      # For 0 NumPy gives a gradient non, while CNTK gives 0
      backward = operand / np.abs(operand)
      backward[np.isnan(backward)] = 0
      expected_backward = {"arg": [backward]}
  
      from .. import abs
  
      _test_unary_op(
          precision,
          device_id,
          abs,
          operand,
          expected_forward,
          expected_backward,
      )
  
imports: from __future__ import division
  import numpy
  import cntk
  import pytest
  from .ops_test_utils import unittest_helper, _test_unary_op, _test_binary_op, AA, precision, PRECISION_TO_TYPE, cntk_device
  from cntk.tests.test_utils import TOLERANCE_ABSOLUTE
  from cntk.internal.utils import eval
  from cntk.internal import sanitize_dtype_cntk
  from ..None import constant
  from cntk.variables import Parameter, Constant
label_desc: Use image node_id 5 for calling a global function with example usage: test_op_abs(operand, device_id, precision) without return types