code: def test_new_feature_names_with_df(
      df_vartypes, features_in, input_features
  ):
      transformer = MockCreator(
          variables=features_in, drop_original=False
      )
      transformer.fit(df_vartypes)
      features_out = list(df_vartypes.columns) + [
          f"{i}_plus" for i in features_in
      ]
      assert (
          transformer.get_feature_names_out(
              input_features=input_features
          )
          == features_out
      )
  
      transformer = MockCreator(
          variables=features_in, drop_original=True
      )
      transformer.fit(df_vartypes)
      features_out = [
          f for f in df_vartypes.columns if f not in features_in
      ] + [f"{i}_plus" for i in features_in]
      assert (
          transformer.get_feature_names_out(
              input_features=input_features
          )
          == features_out
      )
  
imports: import numpy
  import pytest
  from sklearn.exceptions import NotFittedError
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import Pipeline
  from sklearn.preprocessing import PolynomialFeatures
  from feature_engine._base_transformers.mixins import GetFeatureNamesOutMixin
  from feature_engine.dataframe_checks import check_X
label_desc: Use image node_id 11 for calling a global function with example usage: test_new_feature_names_with_df(df_vartypes, features_in, input_features) without return types