code: def test_sklearn_recursion(predictor, binary_data, features, params):
      """Check `alibi` pd recursion implementation against the `sklearn` implementation."""
      X_train, y_train = binary_data["X_train"], binary_data["y_train"]
      predictor = predictor.fit(X_train, y_train)
  
      # compute `sklearn` explanation
      exp_sklearn = partial_dependence(
          X=X_train, estimator=predictor, features=features, **params
      )
  
      # compute `alibi` explanation
      exp_alibi = get_alibi_tree_pd_explanation(
          predictor=predictor,
          X=X_train,
          features=features,
          percentiles=params["percentiles"],
          grid_resolution=params["grid_resolution"],
      )
  
      # compare explanations
      assert_feature_values_equal(
          exp_alibi=exp_alibi, exp_sklearn=exp_sklearn
      )
  
imports: import re
  import sys
  from copy import deepcopy
  from typing import Dict, List, Optional, Tuple, Union
  from packaging import version
  import matplotlib.pyplot
  import numpy
  import pandas
  import pytest
  from pytest_lazyfixture import lazy_fixture
  from sklearn.base import BaseEstimator
  from sklearn.datasets import make_classification
  from sklearn.ensemble import GradientBoostingClassifier
  from sklearn.exceptions import NotFittedError
  from sklearn.inspection import partial_dependence
  from sklearn.model_selection import train_test_split
  from sklearn.multioutput import MultiOutputClassifier
  from sklearn.pipeline import Pipeline
  from sklearn.utils import Bunch, shuffle
  import sklearn
  from alibi.api.defaults import DEFAULT_DATA_PD, DEFAULT_META_PD
  from alibi.api.interfaces import Explanation
  from alibi.explainers import PartialDependence, TreePartialDependence, plot_pd
  from alibi.explainers.partial_dependence import _plot_one_pd_cat, _plot_one_pd_num, _plot_two_pd_cat_cat, _plot_two_pd_num_cat, _plot_two_pd_num_num, _process_pd_ice, _sample_ice
label_desc: Use image node_id 18 for calling a global function with example usage: test_sklearn_recursion(predictor, binary_data, features, params) without return types