code: def test_raise_error_when_input_feature_non_permitted(df_vartypes):
      transformer = MockTransformer()
  
      # when input is dataframe
      transformer.fit(df_vartypes)
      with pytest.raises(ValueError) as record:
          transformer.get_feature_names_out(input_features=["Name"])
      assert "feature_names_in_" in str(record)
  
      with pytest.raises(ValueError) as record:
          transformer.get_feature_names_out(
              input_features=np.array(["Name", "Age"])
          )
      assert "feature_names_in_" in str(record)
  
      with pytest.raises(ValueError) as record:
          transformer.get_feature_names_out(input_features="var1")
      assert "list or an array" in str(record)
  
      with pytest.raises(ValueError) as record:
          transformer.get_feature_names_out(input_features=True)
      assert "list or an array" in str(record)
  
      # when input is array
      transformer.fit(df_vartypes.to_numpy())
      with pytest.raises(ValueError) as record:
          transformer.get_feature_names_out(
              input_features=["Name", "Age"]
          )
      assert "number of input_features does not match" in str(record)
  
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 10 for calling a global function with example usage: test_raise_error_when_input_feature_non_permitted(df_vartypes) without return types