def METHOD_NAME():
    cs = ConfigurationSpace(0)
    cs.add_hyperparameter(UniformFloatHyperparameter("x0", 0.0, 1.0))
    cs.add_hyperparameter(CategoricalHyperparameter("x1", [0, 1, 2, 3, 4, 5]))
    rf = RandomForest(
        cs,
        num_trees=10,
        ratio_features=1.0,
        min_samples_split=2,
        min_samples_leaf=1,
        seed=0,
    )
    X = np.array([[0.0, 0], [0.2, 1], [0.3, 2], [0.7, 5], [0.6, 3]])
    Y = np.array([0.1, 0.2, 0.7, 0.6, 0.5])
    X_inc = np.array([0.4, 3])
    rf.train(X, Y)
    _, bounds = get_types(cs)
    ss_extraction_kwargs = dict(X=X, challenger=X_inc, model=rf, bounds=bounds, cat_dims=[1], cont_dims=[0])
    num_min = 2
    num_max = 5
    ss_bounds_cont, ss_bounds_cat, ss_indices = subspace_extraction(
        num_min=num_min, num_max=np.inf, **ss_extraction_kwargs
    )
    assert num_min <= sum(ss_indices)
    x_in_ss = check_subspace_points(X_inc, [0], [1], ss_bounds_cont, ss_bounds_cat)
    assert x_in_ss[0]
    ss_indices_re_exam = check_subspace_points(X, [0], [1], ss_bounds_cont, ss_bounds_cat)
    assert sum(ss_indices) == sum(ss_indices_re_exam)
    ss_bounds_cont, ss_bounds_cat, ss_indices = subspace_extraction(
        num_min=num_min, num_max=num_max, **ss_extraction_kwargs
    )
    assert num_min <= sum(ss_indices) <= num_max
    x_in_ss = check_subspace_points(X_inc, [0], [1], ss_bounds_cont, ss_bounds_cat)
    assert x_in_ss[0]
    ss_indices_re_exam = check_subspace_points(X, [0], [1], ss_bounds_cont, ss_bounds_cat)
    assert sum(ss_indices) == sum(ss_indices_re_exam)
    num_max = 3
    ss_bounds_cont, ss_bounds_cat, ss_indices = subspace_extraction(
        num_min=num_min, num_max=num_max, **ss_extraction_kwargs
    )
    assert num_min <= sum(ss_indices) <= num_max
    assert x_in_ss[0]
    ss_indices_re_exam = check_subspace_points(X, [0], [1], ss_bounds_cont, ss_bounds_cat)
    assert sum(ss_indices) == sum(ss_indices_re_exam)