code: def test_add_edge_data_with_ids(dask_client, set_index):
      """
      add_edge_data() on "transactions" table, all properties.
      """
      from cugraph.experimental import MGPropertyGraph
  
      transactions = dataset1["transactions"]
      transactions_df = cudf.DataFrame(
          columns=transactions[0], data=transactions[1]
      )
      transactions_df["edge_id"] = list(
          range(10, 10 + len(transactions_df))
      )
      transactions_ids = transactions_df["edge_id"]
      if set_index:
          transactions_df.set_index("edge_id", inplace=True)
      transactions_df = dask_cudf.from_cudf(
          transactions_df, npartitions=2
      )
  
      pG = MGPropertyGraph()
      pG.add_edge_data(
          transactions_df,
          type_name="transactions",
          edge_id_col_name="edge_id",
          vertex_col_names=("user_id", "merchant_id"),
          property_columns=None,
      )
  
      assert pG.get_num_vertices() == 7
      # 'transactions' is edge type, not vertex type
      assert pG.get_num_vertices("transactions") == 0
      assert pG.get_num_edges() == 4
      assert pG.get_num_edges("transactions") == 4
      # Original SRC and DST columns no longer include "merchant_id", "user_id"
      expected_props = ["volume", "time", "card_num", "card_type"]
      assert sorted(pG.edge_property_names) == sorted(expected_props)
  
      relationships = dataset1["relationships"]
      relationships_df = cudf.DataFrame(
          columns=relationships[0], data=relationships[1]
      )
  
      # user-provided, then auto-gen (not allowed)
      with pytest.raises(NotImplementedError):
          pG.add_edge_data(
              dask_cudf.from_cudf(relationships_df, npartitions=2),
              type_name="relationships",
              vertex_col_names=("user_id_1", "user_id_2"),
              property_columns=None,
          )
  
      relationships_df["edge_id"] = list(
          range(30, 30 + len(relationships_df))
      )
      relationships_ids = relationships_df["edge_id"]
      if set_index:
          relationships_df.set_index("edge_id", inplace=True)
      relationships_df = dask_cudf.from_cudf(
          relationships_df, npartitions=2
      )
  
      pG.add_edge_data(
          relationships_df,
          type_name="relationships",
          edge_id_col_name="edge_id",
          vertex_col_names=("user_id_1", "user_id_2"),
          property_columns=None,
      )
  
      df = pG.get_edge_data(types="transactions").compute()
      assert_series_equal(
          df[pG.edge_id_col_name].sort_values().reset_index(drop=True),
          transactions_ids,
          check_names=False,
      )
      df = pG.get_edge_data(types="relationships").compute()
      assert_series_equal(
          df[pG.edge_id_col_name].sort_values().reset_index(drop=True),
          relationships_ids,
          check_names=False,
      )
  
      # auto-gen, then user-provided (not allowed)
      pG = MGPropertyGraph()
      pG.add_edge_data(
          transactions_df,
          type_name="transactions",
          vertex_col_names=("user_id", "merchant_id"),
          property_columns=None,
      )
      with pytest.raises(NotImplementedError):
          pG.add_edge_data(
              relationships_df,
              type_name="relationships",
              edge_id_col_name="edge_id",
              vertex_col_names=("user_id_1", "user_id_2"),
              property_columns=None,
          )
  
imports: import gc
  import pytest
  import pandas
  import numpy
  import cudf
  import cugraph
  import dask_cudf
  import cupy
  import cugraph.dask
  from cupy.testing import assert_array_equal
  from cudf.testing import assert_frame_equal, assert_series_equal
  from pylibcugraph.testing.utils import gen_fixture_params_product
  from cugraph.dask.common.mg_utils import is_single_gpu
  from cugraph.datasets import cyber, netscience
label_desc: Use image node_id 13 for calling a global function with example usage: test_add_edge_data_with_ids(dask_client, set_index) without return types