code: def test_np_function():
      class func(Function):
          def forward(self, x, y):
              m = x / y
              n = x * y
              self.save_for_backward(x, y)
              return m, n
  
          def backward(self, dm, dn):
              x, y = self.saved_tensors
              dx = dm / y + dn * y
              dy = dn * x - dm * x / y / y
              return dx, dy
  
      f = func()
      x = mx.np.random.uniform(size=(10,))
      x.attach_grad()
      y = mx.np.random.uniform(size=(10,))
      y.attach_grad()
      with record():
          m, n = f(x, y)
          backward([m, n])
  
      dx1 = x.grad.asnumpy()
      dy1 = y.grad.asnumpy()
  
      with record():
          backward([x / y, x * y])
  
      # Non-zero atol required, as exposed by seed 630179191
      atol = 1e-6
      assert_almost_equal(x.grad.asnumpy(), dx1, atol=atol)
      assert_almost_equal(y.grad.asnumpy(), dy1, atol=atol)
  
imports: import functools
  import mxnet.ndarray
  from mxnet.ndarray import zeros_like
  from mxnet.autograd import *
  from mxnet.test_utils import *
  from common import xfail_when_nonstandard_decimal_separator
  from mxnet.test_utils import environment
  import pytest
label_desc: Use image node_id 16 for calling a global function with example usage: test_np_function() and returns: m,  n, dx,  dy