#===============================================================================
# Copyright 2020-2021 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#===============================================================================

# This file lists node ids (in pytest sense) of sklearn tests that
# are to be deselected during test discovery step.
#
# Deselection can be predicated on the version of scikit-learn used.
# Use - node_id cond, or - node_id cond1,cond2  where cond is OPver.
# Supported OPs are >=, <=, ==, !=, >, <
# For example,
#    - tests/test_isotonic.py::test_permutation_invariance >0.18,<=0.19
#  will exclude deselection in versions 0.18.1, and 0.18.2 only

deselected_tests:
  # Model with sparse data are different between oneAPI Data Analytics Library (oneDAL) and stock sklearn
  - svm/tests/test_sparse.py::test_svc
  - svm/tests/test_sparse.py::test_svc_iris
  - svm/tests/test_sparse.py::test_sparse_realdata
  # decision function different 1.83697605e-06
  - ensemble/tests/test_bagging.py::test_sparse_classification
  - ensemble/tests/test_bagging.py::test_sparse_regression <0.23

  # Different models between oneAPI Data Analytics Library (oneDAL) and stock sklearn with custom and precompute kernel
  - svm/tests/test_svm.py::test_svc_clone_with_callable_kernel
  - svm/tests/test_svm.py::test_precomputed

  # sklearn expects an exception for sparce matrices with 64-bit integer indices.
  # sklearnex works correctly with 64-bit integer indices
  - tests/test_common.py::test_estimators[NuSVC()-check_estimator_sparse_data]
  - utils/tests/test_estimator_checks.py::test_xfail_ignored_in_check_estimator

  # SVC._dual_coef_ is changing after fitting but result of prediction is still the same
  - svm/tests/test_svm.py::test_tweak_params

  # Bitwise comparison of SVR score using a print (diff = 2.220446049250313e-16)
  - svm/tests/test_svm.py::test_custom_kernel_not_array_input[SVR]

  # This test needs a warning from sklearn. sklearnex raises the same warning
  - tests/test_common.py::test_estimators[SVC()-check_supervised_y_2d]
  - tests/test_common.py::test_estimators[SVR()-check_supervised_y_2d]
  - tests/test_common.py::test_estimators[NuSVC()-check_supervised_y_2d]
  - tests/test_common.py::test_estimators[NuSVR()-check_supervised_y_2d]

  # Bitwise comparison of probabilities using a print.
  - metrics/tests/test_classification.py >=0.22,<0.24

  # Max absolute difference: 0.04 for rocauc, and 0.01 for precision_recall
  - metrics/tests/test_ranking.py::test_roc_curve_hard >=0.23,<0.24

  # test_non_uniform_strategies fails due to differences in handling of vacuous clusters after update
  # See https://github.com/IntelPython/daal4py/issues/69
  - cluster/tests/test_k_means.py::test_relocated_clusters >=0.23,<0.24
  - cluster/tests/test_k_means.py::test_kmeans_relocated_clusters >=0.24

  # oneAPI Data Analytics Library (oneDAL) does not check convergence for tol == 0.0 for ease of benchmarking
  - cluster/tests/test_k_means.py::test_kmeans_convergence >=0.23
  - cluster/tests/test_k_means.py::test_kmeans_verbose >=0.23

  # For Newton-CG solver, solution computed in float32 disagrees with that of float64 a little more than
  # the test expects, see https://github.com/scikit-learn/scikit-learn/pull/13645
  - linear_model/tests/test_logistic.py::test_dtype_match

  # This fails on certain platforms. Weighted data do not go through DAAL,
  # unweighted do. Since convergence is not accomplished (comment in te test
  # suggests that), coefficients are slightly different, resulting in 1 prediction
  # disagreement.
  - ensemble/tests/test_stacking.py::test_stacking_with_sample_weight[StackingClassifier]

  # Insufficient accuracy of "coefs" and "intercept" in Elastic Net for multi-target problem
  # https://github.com/oneapi-src/oneDAL/issues/494
  - linear_model/tests/test_coordinate_descent.py::test_enet_multitarget

  # Insufficient accuracy of objective function in Elastic Net in case warm_start
  # https://github.com/oneapi-src/oneDAL/issues/495
  - linear_model/tests/test_coordinate_descent.py::test_warm_start_convergence_with_regularizer_decrement <0.24

  # oneAPI Data Analytics Library (oneDAL) doesn't support sample_weight (back to Sklearn), insufficient accuracy (similar to previous cases)
  - linear_model/tests/test_coordinate_descent.py::test_enet_sample_weight_consistency >=0.23

  # On small datasets, the regression coefficients for multi-target problem differ from scikit-learn. Coefficients matches for first label only.
  # For big data the coefficients are close.
  # See: https://github.com/IntelPython/daal4py/issues/275
  - linear_model/tests/test_ridge.py::test_ridge_cv_individual_penalties >=0.24

  # Different interpretation of trees compared to scikit-learn
  # Looks like we need to align tree traversal. This problem will be fixed
  - ensemble/tests/test_forest.py::test_min_samples_leaf

  # Different random number generation engine in oneDAL and scikit-learn
  # The result is depend on random state, for random_state=777 in RandomForestClassifier the test is passed
  - ensemble/tests/test_voting.py::test_majority_label_iris

  # Our threads are used internally and are not explicitly specified
  - ensemble/tests/test_forest.py::test_backend_respected

  # We do not support accessing trees through the result variable
  - ensemble/tests/test_forest.py::test_warm_start
  - inspection/tests/test_partial_dependence.py::test_recursion_decision_tree_vs_forest_and_gbdt[0] >=0.23

  # Our implementation builds different trees compared to skikit-learn
  # Comparison of tree forest will be failed
  - ensemble/tests/test_forest.py::test_class_weights[RandomForestClassifier]
  - inspection/tests/test_permutation_importance.py::test_robustness_to_high_cardinality_noisy_feature >=0.23
  - tests/test_common.py::test_estimators[RandomForestClassifier()-check_classifiers_train]
  - tests/test_common.py::test_estimators[RandomForestClassifier()-check_classifiers_train(readonly_memmap=True)]
  - tests/test_common.py::test_estimators[RandomForestClassifier()-check_no_attributes_set_in_init] >=1.0
  - tests/test_common.py::test_estimators[RandomForestRegressor()-check_no_attributes_set_in_init] >=1.0
  - tests/test_common.py::test_estimators[SVC()-check_sample_weights_invariance(kind=zeros)] <1.0
  - tests/test_common.py::test_estimators[SVR()-check_sample_weights_invariance(kind=zeros)] <1.0
  - tests/test_common.py::test_estimators[NuSVC()-check_sample_weights_invariance(kind=zeros)] <1.0
  - tests/test_common.py::test_estimators[NuSVR()-check_sample_weights_invariance(kind=zeros)] <1.0
  - tests/test_common.py::test_estimators[NuSVC()-check_class_weight_classifiers] <1.0
  - tests/test_multioutput.py::test_multi_output_classification
  - tests/test_multioutput.py::test_classifier_chain_tuple_order >=0.24,<1.0

  # Different behavior when 1 class enters the input
  - feature_selection/tests/test_rfe.py::test_rfe_cv_groups

  # The bugs are fixed in 2021.2 release
  - ensemble/tests/test_forest.py::test_regression >=0.24 # pass for defaultDence method only
  - ensemble/tests/test_forest.py::test_boston <0.24
  - ensemble/tests/test_stacking.py::test_stacking_cv_influence
  - utils/tests/test_estimator_checks.py::test_check_estimator_clones

  # module name should starts with 'sklearn.' but we have 'daal4py.sklearn.'
  - tests/test_common.py::test_check_n_features_in_after_fitting[LogisticRegression()] >=0.24,<1.0
  - tests/test_common.py::test_check_n_features_in_after_fitting[SVC()] >=0.24,<1.0
  - metrics/tests/test_score_objects.py::test_scoring_is_not_metric

  # Stability issue with max absolute difference: 4.33846826e-08/1.17613697e-11. Remove in next release
  - ensemble/tests/test_bagging.py::test_estimators_samples_deterministic

  # Data for the tests is generated by using SVC. And it's not equal to stock sklearn
  - metrics/tests/test_ranking.py::test_precision_recall_curve >=0.22,<0.24

  # Some values in PCA.components_ (in the last component) aren't equal (0.6 on average for absolute error in this test)
  # because of different implementations of PCA. Also, results are not stable.
  - decomposition/tests/test_incremental_pca.py::test_whitening

  # Stability issue with max absolute difference: 0.00015992. Remove in the next release.
  - decomposition/tests/test_pca.py::test_pca_dtype_preservation >=0.24,<1.0

  # The test fails because of changing of 'auto' strategy in PCA to improve performance.
  # 'randomized' PCA expected, but 'full' is given.
  - decomposition/tests/test_pca.py::test_pca_svd_solver_auto[data3-10-randomized]

  # Scikit-learn logistic regression predict depends from decision_function while d4p is not.
  # Assertion error in check_estimator(PoorScoreLogisticRegression())
  - utils/tests/test_estimator_checks.py::test_check_estimator >=0.24

  # Need to fix for next release
  - tests/test_multioutput.py::test_classifier_chain_tuple_order >=0.24, <1.0

  # RandomForestRegressor sum(y_pred)!=sum(y_true)
  - ensemble/tests/test_forest.py::test_balance_property_random_forest[squared_error] >=1.0

  # This tests fail on mac mini 8.1 with stock scikit-learn
  - semi_supervised/tests/test_label_propagation.py

  # --------------------------------------------------------
  # Not need of testing for daal4py patching
reduced_tests:
  - cluster/tests/test_affinity_propagation.py
  - cluster/tests/test_bicluster.py
  - cluster/tests/test_birch.py
  - cluster/tests/test_mean_shift.py
  - cluster/tests/test_optics.py

  - compose/tests/test_column_transformer.py

  - decomposition/tests/test_dict_learning.py
  - decomposition/tests/test_factor_analysis.py
  - decomposition/tests/test_nmf.py
  - decomposition/tests/test_online_lda.py

  - ensemble/tests/test_gradient_boosting.py
  - ensemble/tests/test_gradient_boosting_loss_functions.py
  - ensemble/tests/test_iforest.py

  - feature_selection/tests/test_chi2.py
  - feature_selection/tests/test_feature_select.py
  - feature_selection/tests/test_mutual_info.py
  - feature_selection/tests/test_sequential.py
  - feature_selection/tests/test_from_model.py

  - manifold/tests/test_isomap.py
  - manifold/tests/test_locally_linear.py
  - manifold/tests/test_spectral_embedding.py

  - model_selection/tests/test_successive_halving.py

  - neighbors/tests/test_ball_tree.py
  - neighbors/tests/test_kd_tree.py
  - neighbors/tests/test_quad_tree.py

  - tests/test_kernel_approximation.py
  - tests/test_docstring_parameters.py
  - tests/test_dummy.py
  - tests/test_random_projection.py
  - tests/test_naive_bayes.py

  - utils/tests/test_arpack.py
  - utils/tests/test_cython_blas.py
  - utils/tests/test_encode.py
  - utils/tests/test_estimator_html_repr.py
  - utils/tests/test_extmath.py
  - utils/tests/test_fast_dict.py
  - utils/tests/test_mocking.py
  - utils/tests/test_murmurhash.py
  - utils/tests/test_sparsefuncs.py
  - utils/tests/test_utils.py

  - _loss/
  - covariance/
  - cross_decomposition/
  - datasets/
  - ensemble/_hist_gradient_boosting/
  - experimental/
  - feature_extraction/
  - gaussian_process/
  - impute/
  - inspection/
  - neural_network/
  - preprocessing/

public:
  - tests/test_common.py::test_estimators
  # Failed in stock sklearn
  - metrics/tests/test_common.py::test_not_symmetric_metric[precision_recall_curve]
  - metrics/tests/test_common.py::test_binary_sample_weight_invariance[precision_recall_curve]

  # --------------------------------------------------------
  # The following tests currently fail with GPU offload
gpu:

  # Segfaults
  - ensemble/tests/test_weight_boosting.py
  - svm/tests/test_sparse.py

  # Fails
  - cluster/tests/test_dbscan.py::test_weighted_dbscan

  - ensemble/tests/test_bagging.py::test_gridsearch
  - ensemble/tests/test_bagging.py::test_estimators_samples
  - ensemble/tests/test_common.py::test_ensemble_heterogeneous_estimators_behavior
  - ensemble/tests/test_forest.py::test_min_samples_split[RandomForestClassifier]
  - ensemble/tests/test_forest.py::test_min_weight_fraction_leaf
  - ensemble/tests/test_voting.py::test_parallel_fit
  - ensemble/tests/test_voting.py::test_sample_weight

  - feature_selection/tests/test_rfe.py::test_number_of_subsets_of_features

  - linear_model/tests/test_coordinate_descent.py::test_model_pipeline_same_as_normalize_true
  - linear_model/tests/test_logistic.py::test_predict_3_classes
  - linear_model/tests/test_logistic.py::test_logistic_cv_sparse
  - linear_model/tests/test_logistic.py::test_ovr_multinomial_iris
  - linear_model/tests/test_logistic.py::test_logistic_regression_multinomial

  - manifold/tests/test_t_sne.py::test_preserve_trustworthiness_approximately
  - manifold/tests/test_t_sne.py::test_uniform_grid
  - manifold/tests/test_t_sne.py::test_tsne_different_square_distances

  - metrics/tests/test_classification.py::test_precision_recall_f1_score_binary
  - metrics/tests/test_classification.py::test_precision_recall_fscore_support_errors
  - metrics/tests/test_classification.py::test_confusion_matrix_binary
  - metrics/tests/test_classification.py::test_multilabel_confusion_matrix_binary
  - metrics/tests/test_ranking.py::test_roc_curve
  - metrics/tests/test_ranking.py::test_roc_returns_consistency
  - metrics/tests/test_ranking.py::test_roc_curve_confidence
  - metrics/tests/test_ranking.py::test_precision_recall_curve
  - metrics/tests/test_ranking.py::test_score_scale_invariance
  - metrics/tests/test_ranking.py::test_partial_roc_auc_score
  - metrics/tests/test_score_objects.py::test_average_precision_pos_label

  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_weights_prior_initialisation
  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_mean_prior_initialisation
  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_precisions_prior_initialisation
  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_weights
  - mixture/tests/test_bayesian_mixture.py::test_monotonic_likelihood
  - mixture/tests/test_bayesian_mixture.py::test_compare_covar_type
  - mixture/tests/test_bayesian_mixture.py::test_check_covariance_precision
  - mixture/tests/test_bayesian_mixture.py::test_invariant_translation
  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_fit_predict
  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_fit_predict_n_init
  - mixture/tests/test_bayesian_mixture.py::test_bayesian_mixture_predict_predict_proba
  - mixture/tests/test_gaussian_mixture.py::test_check_weights
  - mixture/tests/test_gaussian_mixture.py::test_check_means
  - mixture/tests/test_gaussian_mixture.py::test_check_precisions
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_estimate_log_prob_resp
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_predict_predict_proba
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_fit_predict
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_fit_predict_n_init
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_fit
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_fit_best_params
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_fit_convergence_warning
  - mixture/tests/test_gaussian_mixture.py::test_multiple_init
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_n_parameters
  - mixture/tests/test_gaussian_mixture.py::test_bic_1d_1component
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_aic_bic
  - mixture/tests/test_gaussian_mixture.py::test_gaussian_mixture_verbose
  - mixture/tests/test_gaussian_mixture.py::test_warm_start
  - mixture/tests/test_gaussian_mixture.py::test_convergence_detected_with_warm_start
  - mixture/tests/test_gaussian_mixture.py::test_score
  - mixture/tests/test_gaussian_mixture.py::test_score_samples
  - mixture/tests/test_gaussian_mixture.py::test_monotonic_likelihood
  - mixture/tests/test_gaussian_mixture.py::test_regularisation
  - mixture/tests/test_gaussian_mixture.py::test_property
  - mixture/tests/test_gaussian_mixture.py::test_sample
  - mixture/tests/test_gaussian_mixture.py::test_init
  - mixture/tests/test_mixture.py::test_gaussian_mixture_n_iter

  - model_selection/tests/test_search.py::test_grid_search_one_grid_point
  - model_selection/tests/test_search.py::test_search_default_iid
  - model_selection/tests/test_search.py::test_random_search_cv_results_multimetric
  - model_selection/tests/test_search.py::test_predict_proba_disabled

  - model_selection/tests/test_validation.py::test_cross_val_predict_sparse_prediction
  - model_selection/tests/test_validation.py::test_fit_and_score_verbosity

  - neighbors/tests/test_neighbors.py::test_unsupervised_kneighbors

  - neighbors/tests/test_neighbors.py::test_kneighbors_classifier
  - neighbors/tests/test_neighbors.py::test_KNeighborsClassifier_multioutput
  - neighbors/tests/test_neighbors.py::test_neighbors_metrics

  - semi_supervised/tests/test_self_training.py::test_early_stopping

  - svm/tests/test_svm.py::test_libsvm_parameters
  - svm/tests/test_svm.py::test_weight
  - svm/tests/test_svm.py::test_svm_classifier_sided_sample_weight[estimator0]
  - svm/tests/test_svm.py::test_svm_equivalence_sample_weight_C
  - svm/tests/test_svm.py::test_negative_weights_svc_leave_two_labels
  - svm/tests/test_svm.py::test_negative_weight_equal_coeffs
  - svm/tests/test_svm.py::test_bad_input
  - svm/tests/test_svm.py::test_unicode_kernel
  - svm/tests/test_svm.py::test_consistent_proba
  - svm/tests/test_svm.py::test_decision_function_shape_two_class
  - svm/tests/test_svm.py::test_gamma_auto
  - svm/tests/test_svm.py::test_gamma_scale
  - svm/tests/test_svm.py::test_custom_kernel_not_array_input[SVC]

  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_estimators_dtypes]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_fit_score_takes_y]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_estimators_fit_returns_self]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_estimators_fit_returns_self(readonly_memmap=True)]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_dtype_object]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_pipeline_consistency]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_estimators_nan_inf]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_estimators_overwrite_params]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_estimators_pickle]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_methods_sample_order_invariance]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_methods_subset_invariance]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_fit2d_1feature]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_dict_unchanged]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_dont_overwrite_parameters]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_fit_idempotent]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_n_features_in]
  - tests/test_common.py::test_estimators[BayesianGaussianMixture()-check_fit2d_predict1d]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_estimators_dtypes]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_fit_score_takes_y]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_estimators_fit_returns_self]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_estimators_fit_returns_self(readonly_memmap=True)]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_dtype_object]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_pipeline_consistency]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_estimators_nan_inf]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_estimators_overwrite_params]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_estimators_pickle]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_methods_sample_order_invariance]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_methods_subset_invariance]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_fit2d_1feature]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_dict_unchanged]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_dont_overwrite_parameters]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_fit_idempotent]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_n_features_in]
  - tests/test_common.py::test_estimators[GaussianMixture()-check_fit2d_predict1d]
  - tests/test_common.py::test_estimators[KMeans()-check_clustering]
  - tests/test_common.py::test_estimators[KMeans()-check_clustering(readonly_memmap=True)]
  - tests/test_common.py::test_estimators[LogisticRegression()-check_sample_weights_invariance(kind=ones)]
  - tests/test_common.py::test_estimators[LogisticRegression()-check_sample_weights_invariance(kind=zeros)]
  - tests/test_common.py::test_estimators[LogisticRegression()-check_classifiers_classes]
  - tests/test_common.py::test_estimators[LogisticRegression()-check_decision_proba_consistency]
  - tests/test_common.py::test_estimators[OneVsOneClassifier(estimator=LogisticRegression(C=1))-check_methods_sample_order_invariance]
  - tests/test_common.py::test_estimators[OneVsOneClassifier(estimator=LogisticRegression(C=1))-check_methods_subset_invariance]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_classifier_multioutput]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_classifiers_train]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_classifiers_train(readonly_memmap=True)]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_classifiers_train(readonly_memmap=True,X_dtype=float32)]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_decision_proba_consistency]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_methods_sample_order_invariance]
  - tests/test_common.py::test_estimators[OneVsRestClassifier(estimator=LogisticRegression(C=1))-check_methods_subset_invariance]
  - tests/test_common.py::test_estimators[RFE(estimator=LogisticRegression(C=1))-check_classifiers_classes]
  - tests/test_common.py::test_estimators[RFE(estimator=LogisticRegression(C=1))-check_decision_proba_consistency]
  - tests/test_common.py::test_estimators[RFECV(estimator=LogisticRegression(C=1))-check_classifiers_classes]
  - tests/test_common.py::test_estimators[RFECV(estimator=LogisticRegression(C=1))-check_decision_proba_consistency]
  - tests/test_common.py::test_estimators[RandomForestClassifier()-check_class_weight_classifiers]
  - tests/test_common.py::test_estimators[SVC()-check_sample_weights_pandas_series]
  - tests/test_common.py::test_estimators[SVC()-check_sample_weights_not_an_array]
  - tests/test_common.py::test_estimators[SVC()-check_sample_weights_shape]
  - tests/test_common.py::test_estimators[SVC()-check_pipeline_consistency]
  - tests/test_common.py::test_estimators[SVC()-check_estimators_nan_inf]
  - tests/test_common.py::test_estimators[SVC()-check_estimators_pickle]
  - tests/test_common.py::test_estimators[SVC()-check_classifier_data_not_an_array]
  - tests/test_common.py::test_estimators[SVC()-check_classifiers_classes]
  - tests/test_common.py::test_estimators[SVC()-check_classifiers_train]
  - tests/test_common.py::test_estimators[SVC()-check_class_weight_classifiers]
  - tests/test_common.py::test_estimators[SVC()-check_fit2d_1feature]
  - tests/test_common.py::test_estimators[SVC()-check_dict_unchanged]
  - tests/test_common.py::test_estimators[SVC()-check_fit_idempotent]
  - tests/test_common.py::test_estimators[SVC()-check_n_features_in]
  - tests/test_common.py::test_estimators[SelfTrainingClassifier(base_estimator=LogisticRegression(C=1))-check_classifiers_classes]
  - tests/test_common.py::test_estimators[SelfTrainingClassifier(base_estimator=LogisticRegression(C=1))-check_decision_proba_consistency]
  - tests/test_common.py::test_estimators[StackingClassifier(estimators=[('est1',LogisticRegression(C=0.1)),('est2',LogisticRegression(C=1))])-check_sample_weights_invariance(kind=ones)]
  - tests/test_common.py::test_estimators[StackingClassifier(estimators=[('est1',LogisticRegression(C=0.1)),('est2',LogisticRegression(C=1))])-check_sample_weights_invariance(kind=zeros)]
  - tests/test_common.py::test_estimators[TSNE()-check_fit_idempotent]
  - tests/test_common.py::test_estimators[TSNE()-check_n_features_in]
  - tests/test_common.py::test_search_cv[RandomizedSearchCV(estimator=LogisticRegression(),param_distributions={'C':[0.1,1.0]})-check_classifiers_classes]
  - tests/test_common.py::test_search_cv[RandomizedSearchCV(estimator=LogisticRegression(),param_distributions={'C':[0.1,1.0]})-check_decision_proba_consistency]
  - tests/test_common.py::test_search_cv[RandomizedSearchCV(error_score='raise',estimator=Pipeline(steps=[('pca',PCA()),('logisticregression',LogisticRegression())]),param_distributions={'logisticregression__C':[0.1,1.0]})-check_decision_proba_consistency]
  - tests/test_common.py::test_check_n_features_in_after_fitting[TSNE()]

  - tests/test_multiclass.py::test_ovr_fit_predict_sparse
  - tests/test_multiclass.py::test_ovr_binary
  - tests/test_multiclass.py::test_ovr_fit_predict_svc
  - tests/test_multiclass.py::test_ovr_multilabel_predict_proba
  - tests/test_multiclass.py::test_ovr_multilabel_decision_function
  - tests/test_multiclass.py::test_ovr_single_label_decision_function
  - tests/test_multiclass.py::test_ovr_coef_
  - tests/test_multiclass.py::test_ovr_deprecated_coef_intercept
  - tests/test_multiclass.py::test_pairwise_cross_val_score

  - tests/test_multioutput.py::test_multiclass_multioutput_estimator_predict_proba
  - tests/test_multioutput.py::test_classifier_chain_fit_and_predict_with_sparse_data
