Skip to content

sklearn/utils/tests/test_pprint.py is too brittle to API changes #13508

@jnothman

Description

@jnothman

Although I was fine making this test file depend on the definitions of various estimators, #13470 has made it clear that this can be a nuisance to developers when they add a parameter to the estimators that happen to be used in those tests (or even change a default value). I think if we replace:

from sklearn.linear_model import LogisticRegression

with something like

# Some example constructors excerpted to test pprinting

class LogisticRegression(BaseEstimator):
    """Logistic Regression (aka logit, MaxEnt) classifier.
    """

    def __init__(self, penalty='l2', dual=False, tol=1e-4, C=1.0,
                 fit_intercept=True, intercept_scaling=1, class_weight=None,
                 random_state=None, solver='warn', max_iter=100,
                 multi_class='warn', verbose=0, warm_start=False, n_jobs=None,
                 l1_ratio=None):
        pass

and do similar for other classes, then we will get most of the effect of the tests (checking that standard use cases look acceptable) without being brittle to changes in parameters of those estimators.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EasyWell-defined and straightforward way to resolvehelp wanted

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions