code: def test_dp_ebm_binary():
      from sklearn.metrics import roc_auc_score  # type: ignore
  
      X, y, names, types = make_synthetic(
          classes=2, n_samples=10000, objects=False
      )
      X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.20)
  
      w_tr = np.ones_like(y_tr)
      w_tr[-1] = 2
  
      with warnings.catch_warnings():
          warnings.filterwarnings(
              "ignore", "Possible privacy violation.*"
          )
  
          clf = DPExplainableBoostingClassifier(names, types, epsilon=1)
          clf.fit(X_tr, y_tr, w_tr)
  
          prob_scores = clf.predict_proba(X_te)
  
          within_bounds = (prob_scores >= 0.0).all() and (
              prob_scores <= 1.0
          ).all()
          assert within_bounds
  
          # Performance
          auc = roc_auc_score(y_te, prob_scores[:, 1])
          assert auc > 0.5
  
          valid_ebm(clf)
  
          global_exp = clf.explain_global()
          local_exp = clf.explain_local(X_te[:5, :], y_te[:5])
  
          smoke_test_explanations(global_exp, local_exp, 6000)
  
imports: import math
  from sklearn.metrics import log_loss
  from interpret.utils import make_synthetic
  from ...tutils import synthetic_multiclass, synthetic_classification, iris_classification, smoke_test_explanations
  from ...tutils import synthetic_regression
  from interpret.glassbox import ExplainableBoostingRegressor, ExplainableBoostingClassifier
  from interpret.privacy import DPExplainableBoostingClassifier, DPExplainableBoostingRegressor
  from interpret.utils import inv_link
  from io import StringIO
  import json
  import numpy
  import pandas
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import accuracy_score
  from sklearn.utils.estimator_checks import check_estimator
  import pytest
  import warnings
label_desc: Use image node_id 32 for calling a global function with example usage: test_dp_ebm_binary() without return types