code: def test_cugraph_loader_hetero(dask_client, karate_gnn):
      F, G, N = karate_gnn
      cugraph_store = CuGraphStore(F, G, N, multi_gpu=True, order="CSR")
      loader = CuGraphNeighborLoader(
          (cugraph_store, cugraph_store),
          input_nodes=(
              "type1",
              torch.tensor([0, 1, 2, 5], device="cuda"),
          ),
          batch_size=2,
          num_neighbors=[4, 4],
          random_state=62,
          replace=False,
      )
  
      samples = [s for s in loader]
  
      assert len(samples) == 2
      for sample in samples:
          print(sample)
          if "type0" in sample:
              for prop in sample["type0"]["prop0"].tolist():
                  assert prop % 31 == 0
  
          if "type1" in sample:
              for prop in sample["type1"]["prop0"].tolist():
                  assert prop % 41 == 0
  
imports: import pytest
  from cugraph_pyg.loader import CuGraphNeighborLoader
  from cugraph_pyg.data import CuGraphStore
  from cugraph.utilities.utils import import_optional, MissingModule
label_desc: Use image node_id 2 for calling a global function with example usage: test_cugraph_loader_hetero(dask_client, karate_gnn) without return types