code: def test_titanic_feature_names():
      path = os.path.dirname(__file__)
      titanic = pd.read_csv(
          os.path.join(path, "../datasets/titanic.csv")
      )
      ep = EasyPreprocessor()
      ep.fit(clean(titanic.drop("survived", axis=1)))
      expected_names = [
          "sibsp",
          "parch",
          "age_dabl_continuous",
          "fare_dabl_continuous",
          "body_dabl_continuous",
          "pclass_1",
          "pclass_2",
          "pclass_3",
          "sex_male",
          "embarked_?",
          "embarked_C",
          "embarked_Q",
          "embarked_S",
          "boat_1",
          "boat_10",
          "boat_11",
          "boat_12",
          "boat_13",
          "boat_13 15",
          "boat_13 15 B",
          "boat_14",
          "boat_15",
          "boat_15 16",
          "boat_16",
          "boat_2",
          "boat_3",
          "boat_4",
          "boat_5",
          "boat_5 7",
          "boat_5 9",
          "boat_6",
          "boat_7",
          "boat_8",
          "boat_8 10",
          "boat_9",
          "boat_?",
          "boat_A",
          "boat_B",
          "boat_C",
          "boat_C D",
          "boat_D",
          "age_?_1",
          "body_?_1",
      ]
      assert (ep.get_feature_names_out() == expected_names).all()
  
imports: import os
  import pytest
  import random
  import string
  import warnings
  import numpy
  import pandas
  from sklearn.datasets import load_iris, load_digits
  from sklearn.model_selection import train_test_split
  from sklearn.pipeline import make_pipeline
  from sklearn.linear_model import LogisticRegression
  from dabl.preprocessing import USELESS_TYPES, detect_types, EasyPreprocessor, DirtyFloatCleaner, clean, _FLOAT_REGEX, _float_matching, detect_type_series
  from dabl.utils import data_df_from_bunch
  from dabl.datasets import load_titanic
  from dabl import plot
label_desc: Use image node_id 20 for calling a global function with example usage: test_titanic_feature_names() without return types