code: def test_basic(self, Xl_blobs_easy):
      X, _ = Xl_blobs_easy
  
      # make it super easy to cluster
      a = DKKMeans(n_clusters=3, random_state=0)
      b = SKKMeans(n_clusters=3, random_state=0, n_init="auto")
      a.fit(X)
      b.fit(X)
      assert_estimator_equal(
          a,
          b,
          exclude=[
              "n_iter_",
              "inertia_",
              "cluster_centers_",
              "labels_",
          ],
      )
      assert abs(a.inertia_ - b.inertia_) < 0.01
      # order is arbitrary, so align first
      a_order = np.argsort(a.cluster_centers_, 0)[:, 0]
      b_order = np.argsort(b.cluster_centers_, 0)[:, 0]
      a_centers = a.cluster_centers_[a_order]
      b_centers = b.cluster_centers_[b_order]
      np.testing.assert_allclose(a_centers, b_centers, rtol=1e-3)
      b_labels = replace(b.labels_, [0, 1, 2], a_order[b_order]).astype(
          b.labels_.dtype
      )
      assert_eq(a.labels_.compute(), b_labels)
      assert a.n_iter_
      # this is hacky
      b.cluster_centers_ = b_centers
      a.cluster_centers_ = a_centers
      assert_eq(a.transform(X), b.transform(X), rtol=1e-3)
  
      yhat_a = a.predict(X)
      yhat_b = b.predict(X)
      assert_eq(yhat_a.compute(), yhat_b)
  
imports: import warnings
  import dask.array
  import dask.dataframe
  import numpy
  import pandas
  import pytest
  import sklearn.datasets
  import sklearn.utils.extmath
  from dask.array.utils import assert_eq
  from sklearn.cluster import KMeans
  from sklearn.utils.estimator_checks import check_estimator
  import dask_ml.cluster
  from dask_ml.cluster import KMeans, k_means
  from dask_ml.cluster._compat import _kmeans_plusplus
  from dask_ml.utils import assert_estimator_equal, row_norms
label_desc: Use image node_id 1 for calling the TestKMeans obj's underlying member method code with example usage: obj.test_basic(Xl_blobs_easy) without return types