code: def structure_tester(v_ref, v_act):
      ginfo_ref = GraphInfo(v_ref)
      ginfo_act = GraphInfo(v_act)
  
      print("====================")
      print(ginfo_ref.funcs)
      print("====================")
      print(ginfo_act.funcs)
      print("====================")
  
      # Length check
      assert len(ginfo_ref.funcs) == len(ginfo_act.funcs)
      assert len(ginfo_ref.inputs) == len(ginfo_act.inputs)
      assert len(ginfo_ref.outputs) == len(ginfo_act.outputs)
  
      # Input shape check
      for is_ref, is_act in zip(ginfo_ref.inputs, ginfo_act.inputs):
          assert len(is_ref) == len(is_act)
          for i_ref, i_act in zip(is_ref, is_act):
              assert i_ref.shape == i_act.shape
  
      # Output shape check
      for os_ref, os_act in zip(ginfo_ref.outputs, ginfo_act.outputs):
          assert len(os_ref) == len(os_act)
          for o_ref, o_act in zip(os_ref, os_act):
              assert o_ref.shape == o_act.shape
  
      # Func name check
      for f_ref, f_act in zip(ginfo_ref.funcs, ginfo_act.funcs):
          assert f_ref.name == f_act.name
  
file_path: nnabla/python/test/utils/test_graph_converters/graph_converter_test_utils.py
imports: import os
  import numpy
  import nnabla.functions
  import nnabla.parametric_functions
  import nnabla
  import nnabla.communicators
  from configparser import ConfigParser
  from collections import defaultdict
  from nnabla.ext_utils import get_extension_context
  from nnabla.testing import assert_allclose
label_desc: Use image node_id 1 for calling a global function with example usage: structure_tester(v_ref, v_act) without return types