code: def test_bipartite_api(graph_file):
      # This test only tests the functionality of adding set of nodes and
      # retrieving them. The datasets currently used are not truly bipartite.
      cu_M = utils.read_csv_file(graph_file)
      nodes = cudf.concat([cu_M["0"], cu_M["1"]]).unique().sort_values()
  
      # Create set of nodes for partition
      set1_exp = cudf.Series(nodes[0 : int(len(nodes) / 2)])
      set2_exp = cudf.Series(
          set(nodes.values_host) - set(set1_exp.values_host)
      )
  
      G = cugraph.BiPartiteGraph()
      assert G.is_bipartite()
  
      # Add a set of nodes present in one partition
      G.add_nodes_from(set1_exp, bipartite="set1")
      G.from_cudf_edgelist(cu_M, source="0", destination="1")
  
      # Call sets() to get the bipartite set of nodes.
      set1, set2 = G.sets()
  
      # assert if the input set1_exp is same as returned bipartite set1
      assert set1.equals(set1_exp)
      # assert if set2 is the remaining set of nodes not in set1_exp
      assert set2.equals(set2_exp)
  
imports: import gc
  import time
  import pytest
  import pandas
  import scipy
  import networkx
  import cupy
  import cudf
  import cugraph
  from cugraph.testing import utils
  from cudf.testing import assert_series_equal
  from cudf.testing.testing import assert_frame_equal
  import dask_cudf
  import cugraph.dask
  from dask.distributed import Client
  from dask_cuda import LocalCUDACluster
  from pylibcugraph import ResourceHandle
  from pylibcugraph import bfs
  from cugraph.dask.traversal.bfs import convert_to_cudf
  from cugraph.dask.common.mg_utils import is_single_gpu
label_desc: Use image node_id 24 for calling a global function with example usage: test_bipartite_api(graph_file) without return types