code: def test_probability():
      # Predict probabilities.
      rng = check_random_state(0)
      X_train, X_test, y_train, y_test = train_test_split(
          iris.data, iris.target, random_state=rng
      )
  
      with np.errstate(divide="ignore", invalid="ignore"):
          # Normal case
          ensemble = BaggingClassifier(
              estimator=DecisionTreeClassifier(), random_state=rng
          ).fit(X_train, y_train)
  
          assert_array_almost_equal(
              np.sum(ensemble.predict_proba(X_test), axis=1),
              np.ones(len(X_test)),
          )
  
          assert_array_almost_equal(
              ensemble.predict_proba(X_test),
              np.exp(ensemble.predict_log_proba(X_test)),
          )
  
          # Degenerate case, where some classes are missing
          ensemble = BaggingClassifier(
              estimator=LogisticRegression(),
              random_state=rng,
              max_samples=5,
          ).fit(X_train, y_train)
  
          assert_array_almost_equal(
              np.sum(ensemble.predict_proba(X_test), axis=1),
              np.ones(len(X_test)),
          )
  
          assert_array_almost_equal(
              ensemble.predict_proba(X_test),
              np.exp(ensemble.predict_log_proba(X_test)),
          )
  
imports: from itertools import cycle, product
  import joblib
  import numpy
  import pytest
  from sklearn.base import BaseEstimator
  from sklearn.datasets import load_diabetes, load_iris, make_hastie_10_2
  from sklearn.dummy import DummyClassifier, DummyRegressor
  from sklearn.ensemble import BaggingClassifier, BaggingRegressor, HistGradientBoostingClassifier, HistGradientBoostingRegressor
  from sklearn.feature_selection import SelectKBest
  from sklearn.linear_model import LogisticRegression, Perceptron
  from sklearn.model_selection import GridSearchCV, ParameterGrid, train_test_split
  from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor
  from sklearn.pipeline import make_pipeline
  from sklearn.preprocessing import FunctionTransformer, scale
  from sklearn.random_projection import SparseRandomProjection
  from sklearn.svm import SVC, SVR
  from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor
  from sklearn.utils import check_random_state
  from sklearn.utils._testing import assert_array_almost_equal, assert_array_equal
  from sklearn.utils.fixes import CSC_CONTAINERS, CSR_CONTAINERS
label_desc: Use image node_id 7 for calling a global function with example usage: test_probability() without return types