code: def test_unary_execution(setup):
      from ...arithmetic import (
          UNARY_UFUNC,
          arccosh,
          invert,
          sin,
          conj,
          logical_not,
      )
  
      _sp_unary_ufunc = {arccosh, invert, conj, logical_not}
      _new_unary_ufunc = list(UNARY_UFUNC - _sp_unary_ufunc)[:3]
  
      def _normalize_by_sin(func1, func2, arr):
          return func1(abs(sin((func2(arr)))))
  
      tested = set()
      rs = np.random.RandomState(0)
      for func1, func2 in _gen_pairs(_new_unary_ufunc):
          raw = rs.random((8, 8, 8))
          arr1 = tensor(raw, chunk_size=4)
  
          arr2 = _normalize_by_sin(func1, func2, arr1)
          res = arr2.execute()
          res_cmp = arr2.execute(fuse_enabled=False)
          np.testing.assert_allclose(res[0], res_cmp[0])
          tested.update([func1, func2])
      # make sure all functions tested
      assert tested == set(_new_unary_ufunc)
  
      raw = rs.randint(100, size=(8, 8, 8))
      arr1 = tensor(raw, chunk_size=4)
      arr2 = arccosh(1 + abs(invert(arr1)))
      res = arr2.execute(fuse_enabled=False).fetch()
      res_cmp = arccosh(1 + abs(~raw))
      np.testing.assert_array_almost_equal(res[0], res_cmp[0])
  
file_path: mars/mars/tensor/fuse/tests/test_numexpr_execution.py
imports: import numpy
  from ....utils import ignore_warning
  from ...arithmetic import abs
  from ...datasource import tensor, arange
  from ...reduction import sum
label_desc: Use image node_id 3 for calling a global function with example usage: test_unary_execution(setup) and returns: func1