code: def test_unload():
      email_csv = RAPIDS_DATASET_ROOT_DIR_PATH / "email-Eu-core.csv"
  
      ds = datasets.Dataset(
          csv_file=email_csv.as_posix(),
          csv_col_names=["src", "dst", "wgt"],
          csv_col_dtypes=["int32", "int32", "float32"],
      )
  
      # FIXME: another (better?) test would be to check free memory and assert
      # the memory use increases after get_*(), then returns to the pre-get_*()
      # level after unload(). However, that type of test may fail for several
      # reasons (the device being monitored is accidentally also being used by
      # another process, and the use of memory pools to name two). Instead, just
      # test that the internal members get cleared on unload().
      assert ds._edgelist is None
  
      ds.get_edgelist()
      assert ds._edgelist is not None
      ds.unload()
      assert ds._edgelist is None
  
      ds.get_graph()
      assert ds._edgelist is not None
      ds.unload()
      assert ds._edgelist is None
  
imports: import os
  import gc
  from pathlib import Path
  from tempfile import TemporaryDirectory
  import pandas
  import pytest
  import cudf
  import dask_cudf
  from cugraph.structure import Graph
  from cugraph.testing import RAPIDS_DATASET_ROOT_DIR_PATH, ALL_DATASETS, WEIGHTED_DATASETS, SMALL_DATASETS, BENCHMARKING_DATASETS
  from cugraph import datasets
  from cugraph.dask.common.mg_utils import is_single_gpu
label_desc: Use image node_id 23 for calling a global function with example usage: test_unload() without return types