code: def test_remove_feature_names_pipe_with_skl_transformer_and_df(
      df_vartypes, input_features
  ):
      df_vartypes = df_vartypes.drop(["dob"], axis=1)
      if input_features is not None:
          input_features = input_features[0:-1]
  
      pipe = Pipeline(
          [
              ("transformer", MockSelector()),
              ("imputer", SimpleImputer(strategy="constant")),
          ]
      )
      pipe.fit(df_vartypes)
      features_out = list(df_vartypes.columns)[2:]
      assert all(
          pipe.get_feature_names_out(input_features=input_features)
          == features_out
      )
  
      pipe = Pipeline(
          [
              ("imputer", SimpleImputer(strategy="constant")),
              ("transformer", MockSelector()),
          ]
      )
      pipe.fit(df_vartypes)
      features_out = list(df_vartypes.columns)[2:]
      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 18 for calling a global function with example usage: test_remove_feature_names_pipe_with_skl_transformer_and_df(df_vartypes, input_features) without return types