def METHOD_NAME(self):
    # training data
    d_train = {
        "col1": [1, 2, 3],
        "col2": ["a", "a", "c"],
        "col3": [1, 1, 3],
        "col4": ["a", "b", "c"],
    }
    df_train = pd.DataFrame(data=d_train)
    categorical = PreprocessingCategorical(
        df_train.columns, PreprocessingCategorical.CONVERT_INTEGER
    )
    categorical.fit(df_train)
    # testing data
    d = {
        "col1": [1, 2, 3],
        "col2": ["a", "d", "f"],
        "col3": [1, 1, 3],
        "col4": ["e", "b", "z"],
    }
    df = pd.DataFrame(data=d)
    df = categorical.transform(df)
    for col in ["col1", "col2", "col3", "col4"]:
        self.assertTrue(col in df.columns)
    self.assertEqual(df["col2"][0], 0)
    self.assertEqual(df["col2"][1], 2)  # new values get higher indexes
    self.assertEqual(df["col2"][2], 3)  # new values get higher indexes
    self.assertEqual(df["col4"][0], 3)  # new values get higher indexes
    self.assertEqual(df["col4"][1], 1)
    self.assertEqual(df["col4"][2], 4)  # new values get higher indexes