code: def test_dbscan(
      datatype, nrows, ncols, max_mbytes_per_batch, out_dtype, client
  ):
      from cuml.dask.cluster.dbscan import DBSCAN as cuDBSCAN
  
      n_samples = nrows
      n_feats = ncols
      X, y = make_blobs(
          n_samples=n_samples,
          cluster_std=0.01,
          n_features=n_feats,
          random_state=0,
      )
  
      eps = 1
      cuml_dbscan = cuDBSCAN(
          eps=eps,
          min_samples=2,
          max_mbytes_per_batch=max_mbytes_per_batch,
          output_type="numpy",
      )
  
      cu_labels = cuml_dbscan.fit_predict(X, out_dtype=out_dtype)
  
      if nrows < 500000:
          sk_dbscan = skDBSCAN(eps=1, min_samples=2, algorithm="brute")
          sk_labels = sk_dbscan.fit_predict(X)
  
          # 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,
          )
  
      if out_dtype == "int32" or out_dtype == np.int32:
          assert cu_labels.dtype == np.int32
      elif out_dtype == "int64" or out_dtype == np.int64:
          assert cu_labels.dtype == np.int64
  
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 1 for calling a global function with example usage: test_dbscan(datatype, nrows, ncols, max_mbytes_per_batch, out_dtype, client) without return types