code: def test_impact_encoders(self):
      for encoder_name in encoders.__all__:
          enc = getattr(encoders, encoder_name)()
          if not enc._get_tags().get("supervised_encoder"):
              continue
          with self.subTest(encoder_name=encoder_name):
              # encode a numpy array and transform with the help of the target
              enc.fit(np_X, np_y)
              th.verify_numeric(enc.transform(np_X_t, np_y_t))
  
              # target is a DataFrame
              enc = getattr(encoders, encoder_name)()
              enc.fit(X, y)
              th.verify_numeric(enc.transform(X_t, y_t))
  
              # when we run transform(X, y) and there is a new value in X, something is wrong and we raise an error
              enc = getattr(encoders, encoder_name)(
                  handle_unknown="error", cols=["extra"]
              )
              enc.fit(X, y)
              self.assertRaises(ValueError, enc.transform, (X_t, y_t))
  
imports: import warnings
  from datetime import timedelta
  import numpy
  from numpy.testing import assert_array_equal
  import pandas
  import sklearn
  import tests.helpers
  from sklearn.utils.estimator_checks import check_transformer_general, check_transformers_unfitted, check_n_features_in
  from sklearn.compose import ColumnTransformer
  from unittest import TestCase
  from copy import deepcopy
  import category_encoders
label_desc: Use image node_id 4 for calling the TestEncoders obj's underlying member method code with example usage: obj.test_impact_encoders() without return types