code: def test_selector():
      input_df = pd.DataFrame(
          {
              "feat1": [1, 2, 3],
              "feat2": [100, 200, 300],
              "target": [0, 1, 0],
          }
      )
  
      expected = pd.DataFrame({"feat1": [1, 2, 3], "target": [0, 1, 0]})
  
      expected2 = pd.DataFrame({"feat1": [1, 2, 3]})
  
      pred_fn, data, log = selector(
          input_df, ["feat1", "target"], ["feat1"]
      )
  
      # the transformed input df should contain both feat1 and target
      assert expected.equals(data)
  
      # but applying the result function should result in a df containing only feat1
      assert expected2.equals(pred_fn(input_df))
  
imports: from collections import OrderedDict
  import math
  import pandas
  import pytest
  from numpy import nan, round, sqrt, floor, log
  from numpy.testing import assert_almost_equal
  from pandas.testing import assert_frame_equal
  from fklearn.training.transformation import selector, capper, floorer, prediction_ranger, count_categorizer, label_categorizer, quantile_biner, truncate_categorical, rank_categorical, onehot_categorizer, target_categorizer, standard_scaler, ecdfer, discrete_ecdfer, custom_transformer, value_mapper, null_injector, missing_warner
label_desc: Use image node_id 1 for calling a global function with example usage: test_selector() without return types