code: def test_regression_datasets(exact_shap_regression_dataset, model):
      X_train, X_test, y_train, y_test = exact_shap_regression_dataset
  
      models = []
      models.append(model().fit(X_train, y_train))
      models.append(cuml_skl_class_dict[model]().fit(X_train, y_train))
  
      for mod in models:
          explainer, shap_values = get_shap_values(
              model=mod.predict,
              background_dataset=X_train,
              explained_dataset=X_test,
              explainer=PermutationExplainer,
          )
  
          fx = mod.predict(X_test)
          exp_v = explainer.expected_value
  
          for i in range(3):
              assert (
                  np.sum(cp.asnumpy(shap_values[i]))
                  - abs(fx[i] - exp_v)
              ) <= 1e-5
  
file_path: cuml/python/cuml/tests/explainer/test_explainer_permutation_shap.py
imports: from cuml.testing.utils import ClassEnumerator, get_shap_values, create_synthetic_dataset
  from cuml import PermutationExplainer
  import sklearn.neighbors
  import pytest
  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 1 for calling a global function with example usage: test_regression_datasets(exact_shap_regression_dataset, model) without return types