code: def test_empty_column(self):
      # training data
      d = {
          "col1": [np.nan, np.nan, np.nan, np.nan],
          "col2": [5, 6, 7, 0],
          "col3": [1, 1, 1, 3],
          "col4": [2, 2, 4, 3],
          "y": [0, 1, 0, 1],
      }
      df = pd.DataFrame(data=d)
      X_train = df.loc[:, ["col1", "col2", "col3", "col4"]]
      y_train = df.loc[:, "y"]
  
      preprocessing_params = {
          "columns_preprocessing": {"col1": ["remove_column"]}
      }
  
      ps = Preprocessing(preprocessing_params)
      X_train1, _, _ = ps.fit_and_transform(X_train, y_train)
  
      self.assertTrue("col1" not in X_train1.columns)
      self.assertEqual(3, len(X_train1.columns))
      X_train2, _, _ = ps.transform(X_train, y_train)
      self.assertTrue("col1" not in X_train2.columns)
      self.assertEqual(3, len(X_train2.columns))
      for col in ["col2", "col3", "col4"]:
          self.assertTrue(col in X_train2.columns)
  
      params_json = ps.to_json()
      ps2 = Preprocessing()
      ps2.from_json(params_json, "./")
  
      X_train3, _, _ = ps2.transform(X_train, y_train)
      self.assertTrue("col1" not in X_train3.columns)
      self.assertEqual(3, len(X_train3.columns))
      for col in ["col2", "col3", "col4"]:
          self.assertTrue(col in X_train3.columns)
  
imports: import json
  import copy
  import unittest
  import tempfile
  import numpy
  import pandas
  import uuid
  from supervised.preprocessing.preprocessing_missing import PreprocessingMissingValues
  from supervised.preprocessing.preprocessing_categorical import PreprocessingCategorical
  from supervised.preprocessing.preprocessing import Preprocessing
label_desc: Use image node_id 11 for calling the PreprocessingTest obj's underlying member method code with example usage: obj.test_empty_column() without return types