code: def test_elkan_results(setup, distribution, tol):
      # check that results are identical between lloyd and elkan algorithms
  
      rnd = np.random.RandomState(0)
      if distribution == "normal":
          X = rnd.normal(size=(5000, 10))
      else:
          X, _ = make_blobs(random_state=rnd)
  
      km_full = KMeans(
          algorithm="full",
          n_clusters=5,
          random_state=0,
          n_init=1,
          tol=tol,
          init="k-means++",
      )
      km_elkan = KMeans(
          algorithm="elkan",
          n_clusters=5,
          random_state=0,
          n_init=1,
          tol=tol,
          init="k-means++",
      )
  
      km_full.fit(X)
      km_elkan.fit(X)
      np.testing.assert_allclose(
          km_elkan.cluster_centers_, km_full.cluster_centers_
      )
      np.testing.assert_array_equal(km_elkan.labels_, km_full.labels_)
  
      assert km_elkan.n_iter_ == km_full.n_iter_
      assert km_elkan.inertia_ == pytest.approx(
          km_full.inertia_, rel=1e-6
      )
  
imports: import sys
  from io import StringIO
  import numpy
  import pytest
  import scipy.sparse
  from ....None import tensor
  from ....core import TileableGraphBuilder, TileableGraph, ChunkGraphBuilder
  from ....config import options
  from ..None import KMeans, k_means
  from .._kmeans import _init_centroids
label_desc: Use image node_id 3 for calling a global function with example usage: test_elkan_results(setup, distribution, tol) without return types