code: def test_new_feature_names_pipe_with_skl_transformer_and_df(
      df_vartypes, features_in, input_features
  ):
      pipe = Pipeline(
          [
              ("imputer", SimpleImputer(strategy="constant")),
              (
                  "transformer",
                  MockCreator(
                      variables=features_in, drop_original=False
                  ),
              ),
          ]
      )
      pipe.fit(df_vartypes)
      features_out = list(df_vartypes.columns) + [
          f"{i}_plus" for i in features_in
      ]
      assert (
          pipe.get_feature_names_out(input_features=input_features)
          == features_out
      )
      pipe = Pipeline(
          [
              ("imputer", SimpleImputer(strategy="constant")),
              (
                  "transformer",
                  MockCreator(
                      variables=features_in, drop_original=True
                  ),
              ),
          ]
      )
      pipe.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 (
          pipe.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 13 for calling a global function with example usage: test_new_feature_names_pipe_with_skl_transformer_and_df(df_vartypes, features_in, input_features) without return types