code: def test_automatic_variable_selection(df_test):
      X, y = df_test
      # add 2 additional categorical variables, these should not be evaluated by
      # the selector
      X["cat_1"] = "cat1"
      X["cat_2"] = "cat2"
  
      sel = SelectByShuffling(
          RandomForestClassifier(random_state=1),
          threshold=0.01,
          random_state=1,
      )
      sel.fit(X, y)
  
      # expected result
      Xtransformed = X[["var_7", "cat_1", "cat_2"]].copy()
  
      # test init params
      assert sel.threshold == 0.01
      assert sel.cv == 3
      assert sel.scoring == "roc_auc"
      # test fit attrs
      assert np.round(sel.initial_model_performance_, 3) == 0.997
      assert sel.features_to_drop_ == [
          "var_0",
          "var_1",
          "var_2",
          "var_3",
          "var_4",
          "var_5",
          "var_6",
          "var_8",
          "var_9",
          "var_10",
          "var_11",
      ]
      # test transform output
      pd.testing.assert_frame_equal(sel.transform(X), Xtransformed)
  
file_path: feature_engine/tests/test_selection/test_shuffle_features.py
imports: import numpy
  import pandas
  import pytest
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.linear_model import LinearRegression
  from sklearn.tree import DecisionTreeRegressor
  from feature_engine.selection import SelectByShuffling
label_desc: Use image node_id 5 for calling a global function with example usage: test_automatic_variable_selection(df_test) without return types