code: def test_classification_alt_scores_per_class_and_macro(
      iris_split_dataset_and_model,
  ):
      # Arrange
      train, test, model = iris_split_dataset_and_model
      check = TrainTestPerformance(
          scorers=[
              "recall_per_class",
              "f1_per_class",
              "f1_macro",
              "recall_micro",
          ]
      )
      # Act
      result = check.run(train, test, model).value
      # Assert
      assert_that(
          extract_metric(result, "Test", "f1"), close_to(0.913, 0.001)
      )
      assert_that(
          extract_metric(result, "Test", "f1_macro"),
          close_to(0.913, 0.001),
      )
      assert_that(
          extract_metric(result, "Test", "recall"),
          close_to(0.916, 0.001),
      )
      assert_that(
          extract_metric(result, "Test", "recall_micro"),
          close_to(0.92, 0.001),
      )
  
imports: import re
  from typing import List
  import numpy
  from hamcrest import assert_that, calling, close_to, equal_to, greater_than, has_items, has_length, instance_of, raises
  from sklearn.ensemble import AdaBoostClassifier, RandomForestClassifier
  from sklearn.metrics import jaccard_score, make_scorer
  from sklearn.model_selection import train_test_split
  from deepchecks.core import ConditionResult
  from deepchecks.core.errors import DatasetValidationError, DeepchecksNotSupportedError, DeepchecksValueError, ModelValidationError
  from deepchecks.tabular.checks.model_evaluation import TrainTestPerformance
  from deepchecks.tabular.dataset import Dataset
  from deepchecks.tabular.metric_utils.scorers import DEFAULT_REGRESSION_SCORERS, MULTICLASS_SCORERS_NON_AVERAGE
  from tests.base.utils import equal_condition_result
label_desc: Use image node_id 26 for calling a global function with example usage: test_classification_alt_scores_per_class_and_macro(iris_split_dataset_and_model) without return types