code: def test_feature_engineer_list_experiment_equality(
      env_boston, steps_0, steps_1
  ):
      """Test that the `feature_engineer` attribute constructed by
      :class:`~hyperparameter_hunter.experiments.CVExperiment` is the same whether it was given a
      list as input, or a :class:`~hyperparameter_hunter.feature_engineering.FeatureEngineer`
      """
      exp_0 = CVExperiment(Ridge, feature_engineer=steps_0)
      exp_1 = CVExperiment(
          Ridge, feature_engineer=FeatureEngineer(steps_1)
      )
      assert exp_0.feature_engineer == exp_1.feature_engineer
  
      # Repeat above, but switch which steps are wrapped in `FeatureEngineer`
      exp_2 = CVExperiment(Ridge, feature_engineer=steps_1)
      exp_3 = CVExperiment(
          Ridge, feature_engineer=FeatureEngineer(steps_0)
      )
      assert exp_2.feature_engineer == exp_3.feature_engineer
  
file_path: hyperparameter_hunter/tests/integration_tests/feature_engineering/test_support.py
imports: from hyperparameter_hunter import Environment, CVExperiment, FeatureEngineer, EngineerStep
  from hyperparameter_hunter import Categorical, GBRT
  from hyperparameter_hunter.utils.learning_utils import get_boston_data
  import pytest
  from sklearn.linear_model import Ridge
  from sklearn.model_selection import train_test_split
  from sklearn.preprocessing import QuantileTransformer, StandardScaler
label_desc: Use image node_id 8 for calling a global function with example usage: test_feature_engineer_list_experiment_equality(env_boston, steps_0, steps_1) without return types