code: def test_ebm_synthetic_singleclass_classification():
      X, y, names, types = make_synthetic(classes=2, objects=False)
      y[:] = 0
  
      clf = ExplainableBoostingClassifier(names, types)
      clf.fit(X, y)
  
      assert clf.link_ == "monoclassification"
      assert clf.term_scores_[0][1] == -np.inf
      assert clf.intercept_[0] == -np.inf
      assert clf.bagged_scores_[0][0, 1] == -np.inf
      assert clf.bagged_intercept_[0] == -np.inf
  
      prob_scores = clf.predict_proba(X)
      assert prob_scores.ndim == 2
      assert prob_scores.shape[0] == len(y)
      assert prob_scores.shape[1] == 1
      assert (prob_scores == 1.0).all()
  
      predicts = clf.predict(X)
      assert predicts.ndim == 1
      assert predicts.shape[0] == len(y)
      assert not np.any(predicts)
  
      scores = clf._predict_score(X)
      assert scores.ndim == 1
      assert len(scores) == len(y)
  
      explanations = clf.eval_terms(X)
      assert explanations.ndim == 2
      assert explanations.shape[0] == len(y)
      assert explanations.shape[1] == len(clf.term_features_)
  
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 21 for calling a global function with example usage: test_ebm_synthetic_singleclass_classification() without return types