code: def test_string_categories(self):
      # Numerical dataset (as used in NumericalPreprocessingPipelineTest)
      X_num = np.array(
          [
              [3.14, 1.0, 1.0],  # noqa : matrix legibility
              [3.14, 2.0, np.nan],  # noqa : matrix legibility
              [3.14, 3.0, 3.0],
          ]
      )  # noqa : matrix legibility
      # Categorical string dataset
      X_cat = np.array(
          [
              ["red", "medium", "small"],
              ["blue", "short", "big"],
              ["white", "tall", np.nan],
          ]
      )
      # Combined dataset with shuffled columns:
      X_comb = np.hstack((X_num, X_cat))
      categ_feat = [False] * 3 + [True] * 3
      random_order = np.random.choice(
          np.arange(6), size=6, replace=False
      )
      X_comb = X_comb[:, random_order]
      categ_feat = [categ_feat[order] for order in random_order]
      # Strings are not allowed, therefore:
      with self.assertRaises(ValueError):
          categ_feat = {
              i: "categorical" if feat else "numerical"
              for i, feat in enumerate(categ_feat)
          }
          FeatTypeSplit(feat_type=categ_feat).fit_transform(X_comb)
  
file_path: auto-sklearn/test/test_pipeline/components/data_preprocessing/test_data_preprocessing.py
imports: import numpy
  from scipy import sparse
  from autosklearn.pipeline.components.data_preprocessing.feature_type import FeatTypeSplit
  import unittest
label_desc: Use image node_id 4 for calling the PreprocessingPipelineTest obj's underlying member method code with example usage: obj.test_string_categories() without return types