code: def test_itervar_relationship_graph():
      """Tests itervars relationship graph"""
      n = te.var("n")
      m = te.var("m")
      A = te.placeholder((n, m), name="A")
      k = te.reduce_axis((0, m), "k")
      B = te.compute((n,), lambda i: te.sum(A[i, k], axis=k), name="B")
  
      s = te.create_schedule(B.op)
      s[B].split(B.op.reduce_axis[0], factor=16)
  
      def verify():
          # pylint: disable=import-outside-toplevel
          from tvm.contrib import tedd
  
          _str = tedd.viz_itervar_relationship_graph(s, False, "", True)
          findany(r"digraph \"IterVar Relationship Graph\"", str)
          findany(r"subgraph cluster_legend", str)
          # Check subgraphs for stages
          findany(r"subgraph cluster_Stage_0", str)
          findany(r"subgraph cluster_Stage_1", str)
          # Check itervars and their types
          findany(r"\(kDataPar\)\<br/\>T.Range\(0, n\)", str)
          findany(r"\(kCommReduce\)\<br/\>T.Range\(0, m\)", str)
          # Check the split node
          findany(r"Split_Relation_1_0 +.+\>Split", str)
          # Check all edges to/from the split node
          findany(
              r"IterVar_1_1:itervar -> Split_Relation_1_0:Input", str
          )
          findany(
              r"Split_Relation_1_0:Outer -> IterVar_1_2:itervar", str
          )
          findany(
              r"Split_Relation_1_0:Inner -> IterVar_1_3:itervar", str
          )
  
      if checkdependency():
          verify()
  
file_path: tvm/tests/python/contrib/test_tedd.py
imports: import re
  import tvm
  from tvm import te
  from tvm import topi
  from tvm import relay
  from tvm.relay import testing
  from tvm.relay.backend import Runtime, Executor
label_desc: Use image node_id 4 for calling a global function with example usage: test_itervar_relationship_graph() without return types