code: def test_create_graph_with_edge_ids(graph_file):
      el = utils.read_csv_file(graph_file)
      el["id"] = cupy.random.permutation(len(el))
      el["id"] = el["id"].astype(el["1"].dtype)
      el["etype"] = cupy.random.random_integers(4, size=len(el))
      el["etype"] = el["etype"].astype("int32")
  
      with pytest.raises(ValueError):
          G = cugraph.Graph()
          G.from_cudf_edgelist(
              el,
              source="0",
              destination="1",
              edge_attr=["2", "id", "etype"],
          )
  
      G = cugraph.Graph(directed=True)
      G.from_cudf_edgelist(
          el,
          source="0",
          destination="1",
          edge_attr=["2", "id", "etype"],
      )
  
      assert G.is_directed()
  
      # 'edge_ids are not supported for undirected graph"
      with pytest.raises(ValueError):
          G.to_undirected()
  
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 29 for calling a global function with example usage: test_create_graph_with_edge_ids(graph_file) without return types