code: def test_classification_new_classes_at_test(
      iris_split_dataset_and_model,
  ):
      # Arrange
      _, test, model = iris_split_dataset_and_model
      check = SingleDatasetPerformance(
          scorers=["precision_per_class", "roc_auc_per_class"]
      )
      test_new = test.data.copy()
      test_new.loc[test.n_samples] = [0, 1, 2, 3, 5]
      test = test.copy(test_new)
      # Act
      result = check.run(test, model).value
      # Assert
      assert_that(
          result.loc[3],
          has_entries(
              {"Class": 5, "Metric": "precision", "Value": is_nan()}
          ),
      )
      assert_that(
          result.loc[7],
          has_entries(
              {"Class": 5, "Metric": "roc_auc", "Value": is_nan()}
          ),
      )
  
imports: from typing import List
  from hamcrest import assert_that, calling, close_to, equal_to, has_entries, has_items, has_length, instance_of, none, raises
  from sklearn.ensemble import AdaBoostClassifier, RandomForestClassifier
  from sklearn.model_selection import train_test_split
  from deepchecks.core import ConditionResult
  from deepchecks.core.errors import DeepchecksNotSupportedError, DeepchecksValueError, ModelValidationError
  from deepchecks.tabular.checks import SingleDatasetPerformance
  from deepchecks.tabular.dataset import Dataset
  from deepchecks.tabular.metric_utils.scorers import DEFAULT_MULTICLASS_SCORERS, DEFAULT_REGRESSION_SCORERS
  from tests.base.utils import equal_condition_result
  from tests.common import is_nan
label_desc: Use image node_id 7 for calling a global function with example usage: test_classification_new_classes_at_test(iris_split_dataset_and_model) without return types