code: def test_drop_invariant(self):
      x = pd.DataFrame(
          [
              ["A", "B", "C"],
              ["A", "B", "C"],
              ["A", "B", "C"],
              ["D", "E", "C"],
              ["A", "B", "C"],
          ]
      )
      y = [0, 0, 1, 1, 1]
  
      for encoder_name in set(encoders.__all__) - {
          "CatBoostEncoder"
      }:  # CatBoost does not generally deliver a constant column when the feature is constant
          with self.subTest(encoder_name=encoder_name):
              enc1 = getattr(encoders, encoder_name)(
                  drop_invariant=False
              )
              enc2 = getattr(encoders, encoder_name)(
                  drop_invariant=True
              )
  
              result1 = enc1.fit_transform(x, y)
              result2 = enc2.fit_transform(x, y)
  
              self.assertTrue(
                  len(result1.columns) > len(result2.columns)
              )
  
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 36 for calling the TestEncoders obj's underlying member method code with example usage: obj.test_drop_invariant() without return types