docstr: Test multiple preprocessing
code: def test_multiple_encoding_category_encoder(self):
      """
      Test multiple preprocessing
      """
      train = pd.DataFrame(
          {
              "Onehot1": ["A", "B"],
              "Onehot2": ["C", "D"],
              "Binary1": ["E", "F"],
              "Binary2": ["G", "H"],
              "Ordinal1": ["I", "J"],
              "Ordinal2": ["K", "L"],
              "BaseN1": ["M", "N"],
              "BaseN2": ["O", "P"],
              "Target1": ["Q", "R"],
              "Target2": ["S", "T"],
              "other": ["other", np.nan],
          }
      )
  
      contributions = pd.DataFrame(
          [
              [1, 0, 1, 1, 3, 0, -3.5, 0, 4, 5, 0, 6, 7, 0, 8, 9, 10],
              [
                  0.5,
                  0.5,
                  2,
                  0,
                  1.5,
                  1.5,
                  5.5,
                  -2,
                  -4,
                  -5,
                  8.5,
                  -2.5,
                  -7,
                  14,
                  -8,
                  -9,
                  -10,
              ],
          ],
          index=["index1", "index2"],
      )
  
      expected_contrib = pd.DataFrame(
          {
              "Onehot1": [1.0, 1.0],
              "Onehot2": [2, 2],
              "Binary1": [3.0, 3.0],
              "Binary2": [-3.5, 3.5],
              "Ordinal1": [4, -4],
              "Ordinal2": [5, -5],
              "BaseN1": [6.0, 6.0],
              "BaseN2": [7, 7],
              "Target1": [8, -8],
              "Target2": [9, -9],
              "other": [10, -10],
          },
          index=["index1", "index2"],
      )
  
      y = pd.DataFrame(data=[0, 1], columns=["y"])
  
      enc_onehot = ce.OneHotEncoder(cols=["Onehot1", "Onehot2"]).fit(
          train
      )
      train_onehot = enc_onehot.transform(train)
      enc_binary = ce.BinaryEncoder(cols=["Binary1", "Binary2"]).fit(
          train_onehot
      )
      train_binary = enc_binary.transform(train_onehot)
      enc_ordinal = ce.OrdinalEncoder(
          cols=["Ordinal1", "Ordinal2"]
      ).fit(train_binary)
      train_ordinal = enc_ordinal.transform(train_binary)
      enc_basen = ce.BaseNEncoder(cols=["BaseN1", "BaseN2"]).fit(
          train_ordinal
      )
      train_basen = enc_basen.transform(train_ordinal)
      enc_target = ce.TargetEncoder(cols=["Target1", "Target2"]).fit(
          train_basen, y
      )
  
      input_dict1 = dict()
      input_dict1["col"] = "Onehot2"
      input_dict1["mapping"] = pd.Series(
          data=["C", "D", np.nan], index=["C", "D", "missing"]
      )
      input_dict1["data_type"] = "object"
  
      input_dict2 = dict()
      input_dict2["col"] = "Binary2"
      input_dict2["mapping"] = pd.Series(
          data=["G", "H", np.nan], index=["G", "H", "missing"]
      )
      input_dict2["data_type"] = "object"
  
      input_dict3 = dict()
      input_dict3["col"] = "Ordinal2"
      input_dict3["mapping"] = pd.Series(
          data=["K", "L", np.nan], index=["K", "L", "missing"]
      )
      input_dict3["data_type"] = "object"
      list_dict = [input_dict2, input_dict3]
  
      result1 = enc_onehot.transform(train)
      result2 = enc_binary.transform(result1)
      result3 = enc_ordinal.transform(result2)
      result4 = enc_basen.transform(result3)
      result5 = enc_target.transform(result4)
  
      contributions.columns = result5.columns
  
      original = inverse_transform_contributions(
          contributions,
          [
              enc_onehot,
              enc_binary,
              enc_ordinal,
              enc_basen,
              enc_target,
              input_dict1,
              list_dict,
          ],
      )
  
      pd.testing.assert_frame_equal(expected_contrib, original)
  
file_path: shapash/tests/unit_tests/decomposition/test_inverse_contribution.py
imports: import unittest
  import pandas
  import numpy
  import category_encoders
  import sklearn.preprocessing
  from sklearn.compose import ColumnTransformer
  from shapash.decomposition.contributions import inverse_transform_contributions
label_desc: Use image node_id 2 for calling the TestInverseContribCaterogyEncoder obj's underlying member method code with example usage: obj.test_multiple_encoding_category_encoder() without return types