code: def create_random_bipartite(v1, v2, size, dtype):
      #
      #   Create a full bipartite graph
      #
      df1 = cudf.DataFrame()
      df1["src"] = cudf.Series(range(0, v1, 1))
      df1["key"] = 1
  
      df2 = cudf.DataFrame()
      df2["dst"] = cudf.Series(range(v1, v1 + v2, 1))
      df2["key"] = 1
  
      edges = df1.merge(df2, on="key")[["src", "dst"]]
      edges = edges.sort_values(["src", "dst"]).reset_index()
  
      # Generate edge weights
      a = np.random.randint(1, high=size, size=(v1, v2)).astype(dtype)
      edges["weight"] = a.flatten()
  
      g = cugraph.Graph()
      g.from_cudf_edgelist(
          edges,
          source="src",
          destination="dst",
          edge_attr="weight",
          renumber=False,
      )
  
      return df1["src"], g, a
  
file_path: cugraph/python/cugraph/cugraph/tests/linear/test_hungarian.py
imports: import gc
  from timeit import default_timer
  import numpy
  import pytest
  import cudf
  import cugraph
  from scipy.optimize import linear_sum_assignment
label_desc: Use image node_id 1 for calling a global function with example usage: create_random_bipartite(v1, v2, size, dtype) and returns: df1,  g,  a