code: def categorical_ensembling_classification(model_name=None):
      np.random.seed(0)
  
      (
          df_titanic_train,
          df_titanic_test,
      ) = utils.get_titanic_binary_classification_dataset()
  
      column_descriptions = {
          "survived": "output",
          "sex": "categorical",
          "embarked": "categorical",
          "pclass": "categorical",
      }
  
      ml_predictor = Predictor(
          type_of_estimator="classifier",
          column_descriptions=column_descriptions,
      )
  
      ml_predictor.train_categorical_ensemble(
          df_titanic_train,
          model_names=model_name,
          categorical_column="embarked",
      )
  
      test_score = ml_predictor.score(
          df_titanic_test, df_titanic_test.survived
      )
  
      print("test_score")
      print(test_score)
  
      lower_bound = -0.18
      upper_bound = -0.145
  
      if model_name == "DeepLearningClassifier":
          lower_bound = -0.215
  
      # CatBoost is super inconsistent
      if model_name == "CatBoostClassifier":
          upper_bound = -0.137
  
      assert lower_bound < test_score < upper_bound
  
file_path: auto_ml/tests/advanced_tests/classifiers.py
imports: import datetime
  import os
  import random
  import sys
  from auto_ml import Predictor
  from auto_ml.utils_models import load_ml_model
  import dill
  import numpy
  import pandas
  from nose.tools import assert_equal, assert_not_equal, with_setup
  from sklearn.metrics import accuracy_score
  from sklearn.model_selection import train_test_split
  import utils_testing
label_desc: Use image node_id 2 for calling a global function with example usage: categorical_ensembling_classification(model_name) without return types