code: def test_extract_partitions_futures(
      nrows, ncols, n_parts, X_delayed, y_delayed, colocated, client
  ):
      X = cp.random.standard_normal((nrows, ncols))
      y = cp.random.standard_normal((nrows,))
  
      X = da.from_array(X, chunks=(nrows / n_parts, -1))
      y = da.from_array(y, chunks=(nrows / n_parts,))
  
      if not X_delayed:
          X = client.persist(X)
      if not y_delayed:
          y = client.persist(y)
  
      if colocated:
          ddh = DistributedDataHandler.create((X, y), client)
      else:
          ddh = DistributedDataHandler.create(X, client)
  
      parts = list(map(lambda x: x[1], ddh.gpu_futures))
      assert len(parts) == n_parts
  
file_path: cuml/python/cuml/tests/dask/test_dask_input_utils.py
imports: from cuml.dask.common.dask_arr_utils import to_dask_cudf
  import pytest
  from cuml.dask.datasets.blobs import make_blobs
  from cuml.dask.common.input_utils import DistributedDataHandler
  import dask.array
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 3 for calling a global function with example usage: test_extract_partitions_futures(nrows, ncols, n_parts, X_delayed, y_delayed, colocated, client) without return types