code: def test_boolean_and_nan(null_object):
      X = pd.DataFrame({"a": [True, False, True, False, null_object]})
      types = detect_types(X)
      assert types.categorical.a
      ep = EasyPreprocessor()
      X_preprocessed = ep.fit_transform(X)
      assert (
          ep.get_feature_names_out() == ["a_True", "a_imputed_True"]
      ).all()
      assert X_preprocessed.shape[1] == 2
      assert all(np.unique(X_preprocessed) == [0, 1])
  
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 9 for calling a global function with example usage: test_boolean_and_nan(null_object) without return types