code: def test_dbscan_sklearn_comparison(name, nrows, eps, client):
      from cuml.dask.cluster.dbscan import DBSCAN as cuDBSCAN
  
      default_base = {
          "quantile": 0.2,
          "eps": eps,
          "damping": 0.9,
          "preference": -200,
          "n_neighbors": 10,
          "n_clusters": 2,
      }
  
      n_samples = nrows
      pat = get_pattern(name, n_samples)
      params = default_base.copy()
      params.update(pat[1])
      X, y = pat[0]
  
      X = StandardScaler().fit_transform(X)
  
      cuml_dbscan = cuDBSCAN(
          eps=params["eps"], min_samples=5, output_type="numpy"
      )
      cu_labels = cuml_dbscan.fit_predict(X)
  
      if nrows < 500000:
          sk_dbscan = skDBSCAN(eps=params["eps"], min_samples=5)
          sk_labels = sk_dbscan.fit_predict(X)
  
          assert_dbscan_equal(
              sk_labels,
              cu_labels,
              X,
              cuml_dbscan.core_sample_indices_,
              eps,
          )
  
          # 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 3 for calling a global function with example usage: test_dbscan_sklearn_comparison(name, nrows, eps, client) without return types