def test_borderline_smote_kind():
    """Check the behaviour of the `kind` parameter.

    In short, "borderline-2" generates sample closer to the boundary decision than
    "borderline-1". We generate an example where a logistic regression will perform
    worse on "borderline-2" than on "borderline-1".
    """
    X, y = make_classification(
        n_samples=500,
        n_features=2,
        n_informative=2,
        n_redundant=0,
        n_repeated=0,
        n_clusters_per_class=1,
        n_classes=3,
        weights=[0.1, 0.2, 0.7],
        class_sep=1.0,
        random_state=1,
    )
    smote = BorderlineSMOTE(
        kind="borderline-1", m_neighbors=9, k_neighbors=5, random_state=0
    )
    X_res_borderline_1, y_res_borderline_1 = smote.fit_resample(X, y)
    smote.set_params(kind="borderline-2")
    X_res_borderline_2, y_res_borderline_2 = smote.fit_resample(X, y)

    score_borderline_1 = (
        LogisticRegression()
        .fit(X_res_borderline_1, y_res_borderline_1)
        .score(X_res_borderline_1, y_res_borderline_1)
    )
    score_borderline_2 = (
        LogisticRegression()
        .fit(X_res_borderline_2, y_res_borderline_2)
        .score(X_res_borderline_2, y_res_borderline_2)
    )
    assert score_borderline_1 > score_borderline_2
Check the behaviour of the `kind` parameter.

    In short, "borderline-2" generates sample closer to the boundary decision than
    "borderline-1". We generate an example where a logistic regression will perform
    worse on "borderline-2" than on "borderline-1".
    
imblearn/over_sampling/_smote/tests/test_borderline_smote.py