code: def assert_topology(ref_outputs, outputs):
      for ref_f, f in zip(
          iterate_function(ref_outputs, "left"),
          iterate_function(outputs, "right"),
      ):
          assert ref_f.name == f.name
          assert ref_f.arguments == f.arguments
          for ref_v, v in zip(ref_f.inputs, f.inputs):
              assert ref_v.d.shape == v.d.shape
              assert ref_v.need_grad == v.need_grad
  
imports: import os
  import io
  import pytest
  import numpy
  import nnabla
  import nnabla.functions
  from nnabla.testing import assert_allclose
  from contextlib import contextmanager
  from shutil import rmtree
  import tempfile
  import numpy
  import warnings
  from legacy_expander import NnpExpander
  from nnabla.utils import nnabla_pb2
  from legacy_load import _create_variable
  import google.protobuf.text_format
  from nnabla.utils.image_utils import imsave
  from nnabla.utils.get_file_handle import get_file_handle_save
  from nnabla.utils.nnp_format import nnp_version
label_desc: Use image node_id 4 for calling a global function with example usage: assert_topology(ref_outputs, outputs) without return types