code: def test_exact_classification_datasets(
      exact_shap_classification_dataset,
  ):
      (
          X_train,
          X_test,
          y_train,
          y_test,
      ) = exact_shap_classification_dataset
  
      models = []
      models.append(cuml.SVC(probability=True).fit(X_train, y_train))
      models.append(
          sklearn.svm.SVC(probability=True).fit(X_train, y_train)
      )
  
      for mod in models:
          explainer, shap_values = get_shap_values(
              model=mod.predict_proba,
              background_dataset=X_train,
              explained_dataset=X_test,
              explainer=KernelExplainer,
          )
  
          # Some values are very small, which mean our tolerance here needs to be
          # a little looser to avoid false positives from comparisons like
          # 0.00348627 - 0.00247397. The loose tolerance still tests that the
          # distribution of the values matches.
          for idx, svs in enumerate(shap_values):
              assert_and_log(
                  svs[0],
                  golden_classification_result[idx],
                  float(mod.predict_proba(X_test)[0][idx]),
                  explainer.expected_value[idx],
                  tolerance=1e-01,
              )
  
imports: from sklearn.model_selection import train_test_split
  from cuml.testing.utils import create_synthetic_dataset, ClassEnumerator, get_shap_values
  from cuml.datasets import make_regression
  from cuml.internals.import_utils import has_shap
  from cuml.internals.import_utils import has_scipy
  from cuml import KernelExplainer
  from cuml import Lasso
  import sklearn.neighbors
  import pytest
  import math
  from cuml.internals.safe_imports import cpu_only_import
  import cuml
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 3 for calling a global function with example usage: test_exact_classification_datasets(exact_shap_classification_dataset) without return types