Skip to content

Update unit testing #251

@mloning

Description

@mloning

Overview of basic unit test framework for sktime

References issues

#246, #25

All estimators

Tests common to all estimator objects in sktime, adapted list from scikit-learn's estimator_checks:

  • check has base API attributes
  • check inherits from BaseEstimator and one of the task-specific estimators
  • check ("predict", "transform", "decision_function", "predict_proba", "inverse_transform") does not change fitted parameters
  • check fit does not overwrite hyper-parameters (also add checks for other methods like predict, transform etc)
  • check not fitted error for ("predict", "transform", "decision_function", "predict_proba", "inverse_transform")
  • check fit updates state ("is_fitted", "_is_fitted")
  • check fit returns self
  • check fit idempotent
  • check set_params returns self
  • check repr
  • check clone
  • test no logic/interaction in constructor
  • check get-params invariance (use sklearn function: check_get_params_invariance)
  • check set params (use sklearn function: check_set_params)
  • check persistence via pickle
  • check pipeline invariance
  • different data types in input data container (empty, nan, inf)
  • check corner cases for fit/predict/transform (1 sample, 1 timepoint, 1 column)

Series-as-features predictors (regressors/classifiers/clustering algorithms)

  • check inputs
  • check multivariate estimators, create tags _tags = ("multivariate") as class variable
  • check fit full vs fit by batch invariance
  • check fit and score always accept y as second input argument
  • check input target (missing, single lable, zero variance)
  • check predict output
  • check score method

Series-as-features transformers

  • input data and transformed data has the same index
  • check multivariate estimators

Forecasters

  • check inputs
  • check input target warnings (zero variance)
  • check predict output
  • test score
  • test predict in-sample
  • test predict out-of-sample
  • test update predict
  • test fh
  • test oh

Ignored scikit-learn tests

  • sample weight tests
  • class weight tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceContinuous integration, unit testing & package distribution

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions