code: def test_poor_man_boruta_selection(
      train_df,
      holdout_df,
      train_fn,
      eval_fn,
      base_extractor,
      metric_name,
  ):
      features = ["x1", "x2", "x3", "x4", "x5", "x6"]
      logs = poor_man_boruta_selection(
          train_df,
          holdout_df,
          train_fn,
          features,
          eval_fn,
          base_extractor,
          metric_name,
          max_removed_by_step=1,
          threshold=0,
          early_stop=10,
          iter_limit=50,
          min_remaining_features=5,
      )
  
      assert (
          len(get_used_features(first(logs))) <= 6
      )  # Assert stop by remaining features
  
      logs = poor_man_boruta_selection(
          train_df,
          holdout_df,
          train_fn,
          features,
          eval_fn,
          base_extractor,
          metric_name,
          max_removed_by_step=1,
          threshold=0,
          early_stop=10,
          iter_limit=1,
          min_remaining_features=3,
      )
      assert len(logs) == 1  # Assert stop by iter limit
  
      logs = poor_man_boruta_selection(
          train_df,
          holdout_df,
          train_fn,
          features,
          eval_fn,
          base_extractor,
          metric_name,
          max_removed_by_step=1,
          threshold=1,
          early_stop=2,
          iter_limit=50,
          min_remaining_features=1,
      )
      assert len(logs) == 2
  
imports: import pandas
  import pytest
  from toolz.curried import first
  from fklearn.metrics.pd_extractors import evaluator_extractor
  from fklearn.training.classification import logistic_classification_learner
  from fklearn.tuning.utils import get_used_features
  from fklearn.tuning.selectors import feature_importance_backward_selection, poor_man_boruta_selection, backward_subset_feature_selection
  from fklearn.validation.evaluators import roc_auc_evaluator
  from fklearn.validation.splitters import k_fold_splitter
  from tests import LOGS, PARALLEL_LOGS
label_desc: Use image node_id 11 for calling a global function with example usage: test_poor_man_boruta_selection(train_df, holdout_df, train_fn, eval_fn, base_extractor, metric_name) without return types