code: def test_type_hints(type_hints):
      X = pd.DataFrame(
          {
              "a": [0, 1, 0, 1, 0],
              "b": [0.1, 0.2, 0.3, 0.1, 0.1],
              "c": ["a", "b", "a", "b", "a"],
          }
      )
      types = detect_types(X, type_hints=type_hints)
      X_clean = clean(X, type_hints=type_hints)
  
      # dropped a column:
      assert X_clean.shape[1] == 2
  
      for k, v in type_hints.items():
          # detect_types respects hints
          assert types.T.idxmax()[k] == v
          # conversion successful
          if v == "continuous":
              assert X_clean[k].dtype == float
          elif v == "categorical":
              assert X_clean[k].dtype == "category"
  
imports: import os
  import pytest
  import random
  import string
  import warnings
  import numpy
  import pandas
  from sklearn.datasets import load_iris, load_digits
  from sklearn.model_selection import train_test_split
  from sklearn.pipeline import make_pipeline
  from sklearn.linear_model import LogisticRegression
  from dabl.preprocessing import USELESS_TYPES, detect_types, EasyPreprocessor, DirtyFloatCleaner, clean, _FLOAT_REGEX, _float_matching, detect_type_series
  from dabl.utils import data_df_from_bunch
  from dabl.datasets import load_titanic
  from dabl import plot
label_desc: Use image node_id 16 for calling a global function with example usage: test_type_hints(type_hints) without return types