docstr: Unit test check_preprocessing_options 1
code: def test_check_preprocessing_options_1(self):
      """
      Unit test check_preprocessing_options 1
      """
      df = pd.DataFrame(range(0, 5), columns=["id"])
      df["y"] = df["id"].apply(lambda x: 1 if x < 2 else 0)
      df["x1"] = np.random.randint(1, 123, df.shape[0])
      df = df.set_index("id")
      df["x2"] = ["S", "M", "S", "D", "M"]
      df["x3"] = np.random.randint(1, 123, df.shape[0])
      df["x4"] = ["S", "M", "S", "D", "M"]
  
      features_dict = {
          "x1": "age",
          "x2": "weight",
          "x3": "test",
          "x4": "test2",
      }
      columns_dict = {0: "x1", 1: "x2", 2: "x3", 3: "x4"}
  
      encoder = ColumnTransformer(
          transformers=[
              ("onehot_ce_1", ce.OneHotEncoder(), ["x2"]),
              ("onehot_ce_2", ce.OneHotEncoder(), ["x4"]),
          ],
          remainder="drop",
      )
      encoder_fitted = encoder.fit(df[["x1", "x2", "x3", "x4"]])
  
      encoder_2 = ColumnTransformer(
          transformers=[
              ("onehot_ce_1", ce.OneHotEncoder(), ["x2"]),
              ("onehot_ce_2", ce.OneHotEncoder(), ["x4"]),
          ],
          remainder="passthrough",
      )
      encoder_fitted_2 = encoder_2.fit(df[["x1", "x2", "x3", "x4"]])
  
      expected_dict = {
          "features_to_drop": ["x1", "x3"],
          "features_dict_op": {"x2": "weight", "x4": "test2"},
          "columns_dict_op": {0: "x2", 1: "x4"},
      }
  
      expected_dict_2 = None
  
      drop_option_1 = check_preprocessing_options(
          columns_dict, features_dict, encoder_fitted, [encoder_fitted]
      )
      drop_option_2 = check_preprocessing_options(
          columns_dict,
          features_dict,
          encoder_fitted_2,
          [encoder_fitted_2],
      )
      assert drop_option_1 == expected_dict
      assert drop_option_2 == expected_dict_2
  
imports: import unittest
  import pytest
  import pandas
  import numpy
  import category_encoders
  from shapash.utils.check import check_preprocessing, check_model, check_label_dict, check_mask_params, check_y, check_contribution_object, check_preprocessing_options, check_postprocessing, check_consistency_model_features, check_consistency_model_label, check_additional_data
  from sklearn.compose import ColumnTransformer
  import sklearn.preprocessing
  import types
  import sklearn.ensemble
  import sklearn.svm
  import sklearn.linear_model
  import xgboost
  import lightgbm
  import catboost
label_desc: Use image node_id 25 for calling the TestCheck obj's underlying member method code with example usage: obj.test_check_preprocessing_options_1() without return types