code: def test_dbscan_precomputed(
      datatype, nrows, max_mbytes_per_batch, out_dtype, client
  ):
      from cuml.dask.cluster.dbscan import DBSCAN as cuDBSCAN
  
      # 2-dimensional dataset for easy distance matrix computation
      X, y = make_blobs(
          n_samples=nrows,
          cluster_std=0.01,
          n_features=2,
          random_state=0,
      )
  
      # Precompute distances
      X_dist = pairwise_distances(X).astype(datatype)
  
      eps = 1
      cuml_dbscan = cuDBSCAN(
          eps=eps,
          min_samples=2,
          metric="precomputed",
          max_mbytes_per_batch=max_mbytes_per_batch,
          output_type="numpy",
      )
  
      cu_labels = cuml_dbscan.fit_predict(X_dist, out_dtype=out_dtype)
  
      sk_dbscan = skDBSCAN(
          eps=eps,
          min_samples=2,
          metric="precomputed",
          algorithm="brute",
      )
      sk_labels = sk_dbscan.fit_predict(X_dist)
  
      # Check the core points are equal
      assert array_equal(
          cuml_dbscan.core_sample_indices_,
          sk_dbscan.core_sample_indices_,
      )
  
      # Check the labels are correct
      assert_dbscan_equal(
          sk_labels, cu_labels, X, cuml_dbscan.core_sample_indices_, eps
      )
  
file_path: cuml/python/cuml/tests/dask/test_dask_dbscan.py
imports: from sklearn.preprocessing import StandardScaler
  from sklearn.metrics import pairwise_distances
  from sklearn.datasets import make_blobs
  from sklearn.cluster import DBSCAN
  from cuml.testing.utils import get_pattern, unit_param, quality_param, stress_param, array_equal, assert_dbscan_equal
  import pytest
  from cuml.internals.safe_imports import cpu_only_import
label_desc: Use image node_id 2 for calling a global function with example usage: test_dbscan_precomputed(datatype, nrows, max_mbytes_per_batch, out_dtype, client) without return types