code: def networkx_call(M, benchmark_callable=None):
      sources = M[SRC_COL]
      destinations = M[DST_COL]
      edges = []
      for i in range(len(M)):
          edges.append((sources[i], destinations[i]))
          edges.append((destinations[i], sources[i]))
      edges = list(dict.fromkeys(edges))
      edges = sorted(edges)
      # in NVGRAPH tests we read as CSR and feed as CSC, so here we doing this
      # explicitly
      print("Format conversion ... ")
  
      Gnx = nx.from_pandas_edgelist(
          M,
          source=SRC_COL,
          target=DST_COL,
          edge_attr=EDGE_ATT_COL,
          create_using=nx.Graph(),
      )
  
      # Networkx Jaccard Call
      print("Solving... ")
      if benchmark_callable is not None:
          preds = benchmark_callable(nx.jaccard_coefficient, Gnx, edges)
      else:
          preds = nx.jaccard_coefficient(Gnx, edges)
      src = []
      dst = []
      coeff = []
      for u, v, p in preds:
          src.append(u)
          dst.append(v)
          coeff.append(p)
      return src, dst, coeff
  
imports: import gc
  import pytest
  import networkx
  import cudf
  import cugraph
  from cugraph.datasets import netscience
  from cugraph.testing import utils, UNDIRECTED_DATASETS
  from cudf.testing import assert_series_equal
  from cudf.testing.testing import assert_frame_equal
label_desc: Use image node_id 4 for calling a global function with example usage: networkx_call(M, benchmark_callable) and returns: src,  dst,  coeff