code: def test_unknown_multiclass_category():
      data = iris_classification()
      X_train = data["train"]["X"]
      y_train = data["train"]["y"]
  
      X_test = data["test"]["X"]
  
      # Add categorical feature
      X_train["cat_feature"] = [
          np.random.choice(["a", "b", "c"])
          for x in range(X_train.shape[0])
      ]
      X_test["cat_feature"] = [
          "d" for x in range(X_test.shape[0])
      ]  # Unknown category in test set
  
      # X_train['cat_feature'][1] = np.nan
      # X_test['cat_feature'][1] = np.nan
  
      clf = ExplainableBoostingClassifier(interactions=0)
      clf.fit(X_train, y_train)
  
      # Term contributions for categorical feature should always be 0 in test
      assert np.all(
          clf.explain_local(X_train).data(0)["scores"][-1] != 0
      )
      assert np.all(
          clf.explain_local(X_test).data(0)["scores"][-1] == 0
      )
  
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 10 for calling a global function with example usage: test_unknown_multiclass_category() without return types