code: def test_run_single_node(graph, n, A, myadd):
      mlib_proxy = tvm.support.FrontendTestModule()
      mlib_proxy["myadd"] = myadd
      mod: debug_executor.GraphModuleDebug = debug_executor.create(
          graph, mlib_proxy, tvm.cpu(0)
      )
  
      a = np.random.uniform(size=(n,)).astype(A.dtype)
      mod.set_input(x=a)
  
      assert len(mod.debug_datum.get_graph_nodes()) == 2
      assert mod.debug_datum.get_graph_nodes()[0]["op"] == "param"
      assert mod.debug_datum.get_graph_nodes()[1]["op"] == "myadd"
  
      # Running a node with no associated function should return instantly and have 0 runtime
      assert mod.run_individual_node(0, number=1).mean == 0
  
      # Meanwhile the actual function should take some time, more time if you run it more times
      repeat_1_result = mod.run_individual_node(1, repeat=1)
      assert repeat_1_result.mean > 0
  
      # Running multiple times (10) should take longer than 1 time
      repeat_3_results = mod.run_individual_node(1, repeat=3)
      assert sum(repeat_3_results.results) > sum(
          repeat_1_result.results
      )
  
      # Increasing the number of repeats should give you the number of results asked for
      assert len(mod.run_individual_node(1, repeat=10).results) == 10
  
      # Doing repeat_ms should have the run time greater than the asked amount
      start = time.time()
      mod.run_individual_node(1, min_repeat_ms=500)
      end = time.time()
      elapsed_time_in_seconds = end - start
      assert elapsed_time_in_seconds >= 0.5
  
      # Doing `cooldown_interval_ms` should have the execution time increases
      start = time.time()
      mod.run_individual_node(
          1, repeat=2, min_repeat_ms=500, cooldown_interval_ms=1000
      )
      end = time.time()
      elapsed_time_in_seconds_with_def_rep = end - start
      assert elapsed_time_in_seconds_with_def_rep >= 3
  
      # Doing with `repeats_to_cooldown` not equal 1 should not trigger
      # cooldown after each repeat
      start = time.time()
      mod.run_individual_node(
          1,
          repeat=2,
          min_repeat_ms=500,
          cooldown_interval_ms=1000,
          repeats_to_cooldown=2,
      )
      end = time.time()
      elapsed_time_in_seconds_with_rep_2 = end - start
      assert elapsed_time_in_seconds_with_rep_2 >= 2 and (
          elapsed_time_in_seconds_with_rep_2
          < elapsed_time_in_seconds_with_def_rep
      )
  
      # Going out of bounds of node index throws a tvm error
      with pytest.raises(TVMError):
          mod.run_individual_node(2)
  
imports: import json
  import os
  import re
  import sys
  import time
  from distutils.log import debug
  import numpy
  import pytest
  import tvm
  import tvm.testing
  from tvm import rpc, te
  from tvm._ffi.base import TVMError
  from tvm.contrib import utils
  from tvm.contrib.debugger import debug_executor
  from tvm import relay
label_desc: Use image node_id 9 for calling a global function with example usage: test_run_single_node(graph, n, A, myadd) without return types