code: def test_umap_update(
      iris, iris_subset_model, iris_selection, iris_model
  ):
      new_data = iris.data[~iris_selection]
      new_model = iris_subset_model
      new_model.update(new_data)
  
      comparison_graph = scipy.sparse.vstack(
          [
              iris_model.graph_[iris_selection],
              iris_model.graph_[~iris_selection],
          ]
      )
      comparison_graph = scipy.sparse.hstack(
          [
              comparison_graph[:, iris_selection],
              comparison_graph[:, ~iris_selection],
          ]
      )
  
      error = np.sum(np.abs((new_model.graph_ - comparison_graph).data))
  
      assert error < 1.0
  
imports: from sklearn.datasets import make_blobs
  from sklearn.cluster import KMeans
  from sklearn.metrics import adjusted_rand_score, pairwise_distances
  from sklearn.preprocessing import normalize
  from numpy.testing import assert_array_equal
  from umap import UMAP
  from umap.spectral import component_layout
  import numpy
  import scipy.sparse
  import pytest
  import warnings
  from umap.distances import pairwise_special_metric
  from umap.utils import disconnected_vertices
  from scipy.sparse import csr_matrix
label_desc: Use image node_id 8 for calling a global function with example usage: test_umap_update(iris, iris_subset_model, iris_selection, iris_model) without return types