code: def test_arange_grad(executor_kind):
      # TODO: testing arange numerically is strange because two-sided approx can
      #       produce different output shapes
      dtype = "float64"
      start = relay.var("start", relay.TensorType((), dtype))
      stop = relay.var("stop", relay.TensorType((), dtype))
      step = relay.var("step", relay.TensorType((), dtype))
      values = [np.array(v, dtype=dtype) for v in [2.5, 9.5, 1.8]]
      fwd_func = relay.Function(
          [start, stop, step], relay.arange(start, stop, step, dtype)
      )
      check_grad(fwd_func, inputs=values, executor_kind=executor_kind)
  
imports: import numpy
  import pytest
  import tvm
  from tvm import te
  from tvm import relay
  from tvm.relay.testing import check_grad, run_infer_type, run_opt_pass, _np_randn_from_type
  from tvm.relay.transform import gradient
  import tvm.testing
label_desc: Use image node_id 11 for calling a global function with example usage: test_arange_grad(executor_kind) without return types