code: def test_pipe_with_skl_transformer_that_adds_features(df_vartypes):
      pipe = Pipeline(
          [
              ("poly", PolynomialFeatures()),
              ("transformer", MockTransformer()),
          ]
      )
  
      # when input is array
      pipe.fit(df_vartypes[["Age", "Marks"]].to_numpy())
      assert pipe.get_feature_names_out(input_features=None) == [
          "1",
          "x0",
          "x1",
          "x0^2",
          "x0 x1",
          "x1^2",
      ]
  
      assert pipe.get_feature_names_out(
          input_features=["Age", "Marks"]
      ) == [
          "1",
          "Age",
          "Marks",
          "Age^2",
          "Age Marks",
          "Marks^2",
      ]
      assert pipe.get_feature_names_out(
          input_features=["Dog", "Cat"]
      ) == [
          "1",
          "Dog",
          "Cat",
          "Dog^2",
          "Dog Cat",
          "Cat^2",
      ]
  
      # when input is df
      pipe.fit(df_vartypes[["Age", "Marks"]])
      assert pipe.get_feature_names_out(input_features=None) == [
          "1",
          "Age",
          "Marks",
          "Age^2",
          "Age Marks",
          "Marks^2",
      ]
  
      assert pipe.get_feature_names_out(
          input_features=["Age", "Marks"]
      ) == [
          "1",
          "Age",
          "Marks",
          "Age^2",
          "Age Marks",
          "Marks^2",
      ]
  
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 9 for calling a global function with example usage: test_pipe_with_skl_transformer_that_adds_features(df_vartypes) without return types