Ë
    8Ò^j÷  ã                   óÆ  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
Z
d dlZd dlmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lm Z m!Z!m"Z" d d
l#m$Z$m%Z%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZk d dllmmZmmnZn d dlompZp d dlqmrZr d dlsmtZtmuZumvZvmwZw d„ Zxd„ Zy G d„ dez«      Z{ G d„ dee«      Z| G d„ de«      Z} G d „ d!e«      Z~ G d"„ d#e«      Z G d$„ d%e«      Z€ G d&„ d'e«      Z� G d(„ d)e«      Z‚ G d*„ d+e«      Zƒ G d,„ d-e«      Z„ G d.„ d/e«      Z… G d0„ d1e|«      Z† G d2„ d3e|«      Z‡ G d4„ d5e|«      Zˆ G d6„ d7e«      Z‰ G d8„ d9e|«      ZŠ G d:„ d;e«      Z‹ G d<„ d=e«      ZŒ G d>„ d?e«      Z� G d@„ dAe|«      ZŽ G dB„ dCe«      Z� G dD„ dEee«      Z� G dF„ dGe«      Z‘ G dH„ dIe'«      Z’ G dJ„ dKe’«      Z“ G dL„ dMe$«      Z” G dN„ dOe$«      Z• G dP„ dQe%«      Z– G dR„ dSe«      Z— G dT„ dUe«      Z˜dV„ Z™dW„ ZšdX„ Z›dY„ ZœdZ„ Z�exd[„ «       Zžd\„ ZŸd]„ Z d^„ Z¡d_„ Z¢d`„ Z£da„ Z¤db„ Z¥dc„ Z¦dd„ Z§de„ Z¨eyexdf„ «       «       Z©dg„ Zªdh„ Z«di„ Z¬eydj„ «       Z­dk„ Z®dl„ Z¯exdm„ «       Z°dn„ Z±do„ Z²dp„ Z³ G dq„ dree«      Z´ds„ Zµdt„ Z¶du„ Z·dv„ Z¸dw„ Z¹exdx„ «       Zºe»dyk(  r e¸«        dz„ Z¼d{„ Z½exd|„ «       Z¾exd}„ «       Z¿d~„ ZÀd„ ZÁd€„ ZÂd�„ ZÃd‚„ ZÄdƒ„ ZÅd„„ ZÆd…„ ZÇd†„ ZÈd‡„ ZÉdˆ„ ZÊd‰„ ZËexdŠ„ «       ZÌd‹„ ZÍdŒ„ ZÎd�„ ZÏdŽ„ ZÐy)�é    N)Úisgenerator)ÚIntegralÚReal)Úconfig_contextÚ
get_config)ÚBaseEstimatorÚClassifierMixinÚOutlierMixinÚTransformerMixin)ÚMiniBatchKMeans)Ú	load_irisÚmake_multilabel_classification)ÚPCA)ÚConvergenceWarningÚEstimatorCheckFailedWarningÚSkipTestWarning)ÚLinearRegressionÚLogisticRegressionÚMultiTaskElasticNetÚSGDClassifier)ÚGaussianMixture)ÚKNeighborsRegressor)ÚStandardScaler)ÚSVCÚNuSVC)Ú
_array_apiÚall_estimatorsÚ
deprecated)ÚIntervalÚ
StrOptions)Ú_construct_instancesÚ_get_expected_failed_checks)ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚSkipTestÚignore_warningsÚraises))Ú_check_nameÚ_NotAnArrayÚ_yield_all_checksÚcheck_array_api_inputÚ-check_class_weight_balanced_linear_classifierÚ"check_classifier_data_not_an_arrayÚ*check_classifier_not_supporting_multiclassÚ<check_classifiers_multilabel_output_format_decision_functionÚ2check_classifiers_multilabel_output_format_predictÚ8check_classifiers_multilabel_output_format_predict_probaÚ*check_classifiers_one_label_sample_weightsÚ(check_dataframe_column_names_consistencyÚ check_decision_proba_consistencyÚcheck_dict_unchangedÚcheck_dont_overwrite_parametersÚcheck_estimatorÚcheck_estimator_cloneableÚcheck_estimator_reprÚcheck_estimator_sparse_arrayÚcheck_estimator_sparse_matrixÚcheck_estimator_sparse_tagÚcheck_estimator_tags_renamedÚcheck_estimators_nan_infÚ!check_estimators_overwrite_paramsÚcheck_estimators_unfittedÚcheck_fit_check_is_fittedÚcheck_fit_score_takes_yÚ%check_methods_sample_order_invarianceÚcheck_methods_subset_invarianceÚcheck_mixin_orderÚcheck_no_attributes_set_in_initÚcheck_outlier_contaminationÚcheck_outlier_corruptionÚ&check_parameters_default_constructibleÚ"check_positive_only_tag_during_fitÚ!check_regressor_data_not_an_arrayÚcheck_requires_y_noneÚ"check_sample_weights_pandas_seriesÚcheck_set_paramsÚestimator_checks_generatorÚset_random_state)ÚCSR_CONTAINERSÚSPARRAY_PRESENT)Úavailable_if)Útype_of_target)Úcheck_arrayÚcheck_is_fittedÚ	check_X_yÚvalidate_datac                 ó~   — t         j                  j                  d«      }|�|j                  j	                  | «      S | S ©NÚpytest)ÚsysÚmodulesÚgetÚmarkÚthread_unsafe©Úfr\   s     út/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_estimator_checks.pyÚ&_mark_thread_unsafe_if_pytest_importedre   l   s4   € Ü�[‰[�_‰_˜XÓ&€FØÐØ�{‰{×(Ñ(¨Ó+Ð+àˆó    c                 ót   — t         j                  j                  d«      }|�|j                  j                  S | S r[   )r]   r^   r_   r`   Úno_check_spmatrixrb   s     rd   Ú*_mark_no_check_spmatrix_if_pytest_importedri   t   s/   € Ü�[‰[�_‰_˜XÓ&€FØÐØ�{‰{×,Ñ,Ð,àˆrf   c                   ó   — e Zd ZdZy)ÚCorrectNotFittedErrorz±Exception class to raise if estimator is used before fitting.

    Like NotFittedError, it inherits from ValueError, but not from
    AttributeError. Used for testing only.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© rf   rd   rk   rk   |   s   „ òrf   rk   c                   ó   — e Zd Zd„ Zd„ Zy)ÚBaseBadClassifierc                 ó   — | S ©Nrp   ©ÚselfÚXÚys      rd   ÚfitzBaseBadClassifier.fit…   ó   € Øˆrf   c                 óF   — t        j                  |j                  d   «      S ©Nr   ©ÚnpÚonesÚshape©rv   rw   s     rd   ÚpredictzBaseBadClassifier.predictˆ   s   € Ü�w‰w�q—w‘w˜q‘zÓ"Ð"rf   N©rl   rm   rn   ry   r‚   rp   rf   rd   rr   rr   „   s   „ òó#rf   rr   c                   ó"   — e Zd Zdd„Zdd„Zd„ Zy)ÚChangesDictc                 ó   — || _         y rt   )Úkey)rv   r‡   s     rd   Ú__init__zChangesDict.__init__�   s	   € Øˆ�rf   Nc                 ó&   — t        | ||«      \  }}| S rt   ©rY   ru   s      rd   ry   zChangesDict.fit�   ó   € Ü˜T 1 aÓ(‰ˆˆ1Øˆrf   c                 ój   — t        |«      }d| _        t        j                  |j                  d   «      S )Niè  r   )rV   r‡   r~   r   r€   r�   s     rd   r‚   zChangesDict.predict”   s)   € Ü˜‹NˆØˆŒÜ�w‰w�q—w‘w˜q‘zÓ"Ð"rf   ©r   rt   ©rl   rm   rn   rˆ   ry   r‚   rp   rf   rd   r…   r…   Œ   s   „ óóó#rf   r…   c                   ó   — e Zd Zdd„Zdd„Zy)ÚSetsWrongAttributec                 ó   — || _         y rt   )Úacceptable_key)rv   r’   s     rd   rˆ   zSetsWrongAttribute.__init__›   s
   € Ø,ˆÕrf   Nc                 ó4   — d| _         t        | ||«      \  }}| S r|   ©Úwrong_attributerY   ru   s      rd   ry   zSetsWrongAttribute.fitž   ó!   € Ø ˆÔÜ˜T 1 aÓ(‰ˆˆ1Øˆrf   r�   rt   ©rl   rm   rn   rˆ   ry   rp   rf   rd   r�   r�   š   s   „ ó-ôrf   r�   c                   ó   — e Zd Zdd„Zdd„Zy)ÚChangesWrongAttributec                 ó   — || _         y rt   )r•   )rv   r•   s     rd   rˆ   zChangesWrongAttribute.__init__¥   ó
   € Ø.ˆÕrf   Nc                 ó4   — d| _         t        | ||«      \  }}| S ©Né   r”   ru   s      rd   ry   zChangesWrongAttribute.fit¨   r–   rf   r�   rt   r—   rp   rf   rd   r™   r™   ¤   s   „ ó/ôrf   r™   c                   ó   — e Zd Zdd„Zy)ÚChangesUnderscoreAttributeNc                 ó4   — d| _         t        | ||«      \  }}| S r�   )Ú_good_attributerY   ru   s      rd   ry   zChangesUnderscoreAttribute.fit¯   r–   rf   rt   ©rl   rm   rn   ry   rp   rf   rd   r    r    ®   s   „ ôrf   r    c                   ó.   ‡ — e Zd Zdd„Zˆ fd„Zdd„Zˆ xZS )ÚRaisesErrorInSetParamsc                 ó   — || _         y rt   ©Úp©rv   r¨   s     rd   rˆ   zRaisesErrorInSetParams.__init__¶   ó	   € Øˆ�rf   c                 óz   •— d|v r(|j                  d«      }|dk  rt        d«      ‚|| _        t        ‰| �  di |¤ŽS )Nr¨   r   zp can't be less than 0rp   )ÚpopÚ
ValueErrorr¨   ÚsuperÚ
set_params©rv   Úkwargsr¨   Ú	__class__s      €rd   r¯   z!RaisesErrorInSetParams.set_params¹   sD   ø€ Ø�&‰=Ø—
‘
˜3“ˆAØ�1ŠuÜ Ð!9Ó:Ð:ØˆDŒFÜ‰wÑ!Ñ+ FÑ+Ð+rf   c                 ó&   — t        | ||«      \  }}| S rt   rŠ   ru   s      rd   ry   zRaisesErrorInSetParams.fitÁ   r‹   rf   r�   rt   ©rl   rm   rn   rˆ   r¯   ry   Ú__classcell__©r²   s   @rd   r¥   r¥   µ   ó   ø„ óô,÷rf   r¥   c                   ó(   — e Zd Z e«       fd„Zdd„Zy)ÚHasMutableParametersc                 ó   — || _         y rt   r§   r©   s     rd   rˆ   zHasMutableParameters.__init__Ç   rª   rf   Nc                 ó&   — t        | ||«      \  }}| S rt   rŠ   ru   s      rd   ry   zHasMutableParameters.fitÊ   r‹   rf   rt   )rl   rm   rn   Úobjectrˆ   ry   rp   rf   rd   r¹   r¹   Æ   s   „ Ù›ó ôrf   r¹   c                   óB   — e Zd Zd ej                  d«      efd„Zdd„Zy)ÚHasImmutableParametersé*   c                 ó.   — || _         || _        || _        y rt   )r¨   ÚqÚr)rv   r¨   rÁ   rÂ   s       rd   rˆ   zHasImmutableParameters.__init__Ñ   s   € ØˆŒØˆŒØˆ�rf   Nc                 ó&   — t        | ||«      \  }}| S rt   rŠ   ru   s      rd   ry   zHasImmutableParameters.fitÖ   r‹   rf   rt   )rl   rm   rn   r~   Úint32r¼   rˆ   ry   rp   rf   rd   r¾   r¾   Ï   s   „ à˜x˜rŸx™x¨›|¨vó ô
rf   r¾   c                   ó.   ‡ — e Zd Zdd„Zˆ fd„Zdd„Zˆ xZS )Ú"ModifiesValueInsteadOfRaisingErrorc                 ó   — || _         y rt   r§   r©   s     rd   rˆ   z+ModifiesValueInsteadOfRaisingError.__init__Ü   rª   rf   c                 óh   •— d|v r|j                  d«      }|dk  rd}|| _        t        ‰| �  di |¤ŽS )Nr¨   r   rp   )r¬   r¨   r®   r¯   r°   s      €rd   r¯   z-ModifiesValueInsteadOfRaisingError.set_paramsß   s=   ø€ Ø�&‰=Ø—
‘
˜3“ˆAØ�1ŠuØ�ØˆDŒFÜ‰wÑ!Ñ+ FÑ+Ð+rf   c                 ó&   — t        | ||«      \  }}| S rt   rŠ   ru   s      rd   ry   z&ModifiesValueInsteadOfRaisingError.fitç   r‹   rf   r�   rt   r´   r¶   s   @rd   rÆ   rÆ   Û   r·   rf   rÆ   c                   ó.   ‡ — e Zd Zdd„Zˆ fd„Zdd„Zˆ xZS )ÚModifiesAnotherValuec                 ó    — || _         || _        y rt   )ÚaÚb)rv   rÍ   rÎ   s      rd   rˆ   zModifiesAnotherValue.__init__í   s   € ØˆŒØˆ�rf   c                 óŽ   •— d|v r2|j                  d«      }|| _        |€|j                  d«       d| _        t        ‰| �  di |¤ŽS )NrÍ   rÎ   Úmethod2rp   )r¬   rÍ   rÎ   r®   r¯   )rv   r±   rÍ   r²   s      €rd   r¯   zModifiesAnotherValue.set_paramsñ   sH   ø€ Ø�&‰=Ø—
‘
˜3“ˆAØˆDŒFØˆyØ—
‘
˜3”Ø"�”Ü‰wÑ!Ñ+ FÑ+Ð+rf   c                 ó&   — t        | ||«      \  }}| S rt   rŠ   ru   s      rd   ry   zModifiesAnotherValue.fitú   r‹   rf   )r   Úmethod1rt   r´   r¶   s   @rd   rË   rË   ì   s   ø„ óô,÷rf   rË   c                   ó   — e Zd Zd„ Zy)ÚNoCheckinPredictc                 ó&   — t        | ||«      \  }}| S rt   rŠ   ru   s      rd   ry   zNoCheckinPredict.fit   r‹   rf   Nr£   rp   rf   rd   rÔ   rÔ   ÿ   s   „ órf   rÔ   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚNoSparseClassifierNc                 ó   — || _         y rt   ©Úraise_for_type©rv   rÚ   s     rd   rˆ   zNoSparseClassifier.__init__  ó
   € à,ˆÕrf   c                 óî   — t        | ||ddg¬«      \  }}| j                  dk(  rt        |t        j                  «      }n)| j                  dk(  rt        |t        j
                  «      }rt        d«      ‚| S )NÚcsrÚcsc©Úaccept_sparseÚsparse_arrayÚsparse_matrixúNonsensical Error)rY   rÚ   Ú
isinstanceÚspÚsparrayÚspmatrixr­   ©rv   rw   rx   Úcorrect_types       rd   ry   zNoSparseClassifier.fit
  sj   € Ü˜T 1 a¸¸u°~ÔF‰ˆˆ1Ø×Ñ .Ò0Ü% a¬¯©Ó4‰LØ× Ñ  OÒ3Ü% a¬¯©Ó5ˆLÙÜÐ0Ó1Ð1Øˆrf   c                 ó\   — t        |«      }t        j                  |j                  d   «      S r|   ©rV   r~   r   r€   r�   s     rd   r‚   zNoSparseClassifier.predict  ó"   € Ü˜‹NˆÜ�w‰w�q—w‘w˜q‘zÓ"Ð"rf   rt   rŽ   rp   rf   rd   r×   r×     s   „ ó-òó#rf   r×   c                   ó   — e Zd Zd„ Zd„ Zy)ÚCorrectNotFittedErrorClassifierc                 ót   — t        | ||«      \  }}t        j                  |j                  d   «      | _        | S r�   )rY   r~   r   r€   Úcoef_ru   s      rd   ry   z#CorrectNotFittedErrorClassifier.fit  s1   € Ü˜T 1 aÓ(‰ˆˆ1Ü—W‘W˜QŸW™W Q™ZÓ(ˆŒ
Øˆrf   c                 ór   — t        | «       t        |«      }t        j                  |j                  d   «      S r|   )rW   rV   r~   r   r€   r�   s     rd   r‚   z'CorrectNotFittedErrorClassifier.predict  s*   € Ü˜ÔÜ˜‹NˆÜ�w‰w�q—w‘w˜q‘zÓ"Ð"rf   Nrƒ   rp   rf   rd   rï   rï     s   „ òó
#rf   rï   c                   ó   — e Zd Zdd„Zd„ Zy)ÚNoSampleWeightPandasSeriesTypeNc                 óh   — t        | ||ddd¬«      \  }}ddlm} t        ||«      rt	        d«      ‚| S )N©rÞ   rß   T©rá   Úmulti_outputÚ	y_numericr   ©ÚSeriesz>Estimator does not accept 'sample_weight'of type pandas.Series)rY   Úpandasrû   rå   r­   )rv   rw   rx   Úsample_weightrû   s        rd   ry   z"NoSampleWeightPandasSeriesType.fit&  sD   € äØ�!�Q nÀ4ÐSWô
‰ˆˆ1õ 	"ä�m VÔ,ÜØPóð ð ˆrf   c                 ó\   — t        |«      }t        j                  |j                  d   «      S r|   rì   r�   s     rd   r‚   z&NoSampleWeightPandasSeriesType.predict4  rí   rf   rt   rƒ   rp   rf   rd   rô   rô   %  s   „ óó#rf   rô   c                   ó   — e Zd Zdd„Zd„ Zy)ÚBadBalancedWeightsClassifierNc                 ó   — || _         y rt   )Úclass_weight)rv   r  s     rd   rˆ   z%BadBalancedWeightsClassifier.__init__:  s
   € Ø(ˆÕrf   c                 óÂ   — ddl m} ddlm}  |«       j	                  |«      }|j
                  } || j                  ||¬«      }| j                  dk(  r|dz  }|| _        | S )Nr   )ÚLabelEncoder)Úcompute_class_weight)Úclassesrx   Úbalancedç      ð?)Úsklearn.preprocessingr  Úsklearn.utilsr  ry   Úclasses_r  rñ   )rv   rw   rx   r  r  Úlabel_encoderr  r  s           rd   ry   z BadBalancedWeightsClassifier.fit=  sb   € Ý6Ý6á$›×*Ñ*¨1Ó-ˆØ×(Ñ(ˆÙ+¨D×,=Ñ,=ÀwÐRSÔTˆð ×Ñ 
Ò*Ø˜CÑˆLð "ˆŒ
Øˆrf   rt   r—   rp   rf   rd   r   r   9  s   „ ó)órf   r   c                   ó   — e Zd Zdd„Zd„ Zy)ÚBadTransformerWithoutMixinNc                 ó   — t        | |«      }| S rt   rŠ   ru   s      rd   ry   zBadTransformerWithoutMixin.fitP  s   € Ü˜$ Ó"ˆØˆrf   c                 ó8   — t        | «       t        | |d¬«      }|S )NF©Úreset)rW   rY   r�   s     rd   Ú	transformz$BadTransformerWithoutMixin.transformT  s   € Ü˜ÔÜ˜$ ¨Ô/ˆØˆrf   rt   )rl   rm   rn   ry   r  rp   rf   rd   r  r  O  s   „ óórf   r  c                   ó   — e Zd Zd„ Zd„ Zy)ÚNotInvariantPredictc                 ó.   — t        | ||ddd¬«      \  }}| S ©Nrö   Tr÷   rŠ   ru   s      rd   ry   zNotInvariantPredict.fit[  s%   € äØ�!�Q nÀ4ÐSWô
‰ˆˆ1ð ˆrf   c                 óÄ   — t        |«      }|j                  d   dkD  r"t        j                  |j                  d   «      S t        j                  |j                  d   «      S )Nr   rž   )rV   r€   r~   r   Úzerosr�   s     rd   r‚   zNotInvariantPredict.predictb  sH   € ä˜‹NˆØ�7‰7�1‰:˜Š>Ü—7‘7˜1Ÿ7™7 1™:Ó&Ð&Ü�x‰x˜Ÿ™ ™
Ó#Ð#rf   Nrƒ   rp   rf   rd   r  r  Z  s   „ òó$rf   r  c                   ó   — e Zd Zd„ Zd„ Zy)ÚNotInvariantSampleOrderc                 ó<   — t        | ||ddd¬«      \  }}|| _        | S r  )rY   Ú_Xru   s      rd   ry   zNotInvariantSampleOrder.fitk  s,   € ÜØ�!�Q nÀ4ÐSWô
‰ˆˆ1ð ˆŒØˆrf   c                 ó<  — t        |«      }t        j                  t        j                  |d¬«      t        j                  | j                  d¬«      «      r?|| j                  k7  j                  «       r"t        j                  |j                  d   «      S |d d …df   S )Nr   )Úaxis)rV   r~   Úarray_equivÚsortr  Úanyr  r€   r�   s     rd   r‚   zNotInvariantSampleOrder.predicts  sm   € Ü˜‹Nˆô �N‰Nœ2Ÿ7™7 1¨1Ô-¬r¯w©w°t·w±wÀQÔ/GÔHØ�d—g‘g‘×"Ñ"Ô$ä—8‘8˜AŸG™G A™JÓ'Ð'Ø’�A�‰wˆrf   Nrƒ   rp   rf   rd   r  r  j  s   „ òó	rf   r  c                   ó&   — e Zd ZdZdd„Zdd„Zd„ Zy)ÚOneClassSampleErrorClassifierzoClassifier allowing to trigger different behaviors when `sample_weight` reduces
    the number of classes to 1.c                 ó   — || _         y rt   )Úraise_when_single_class)rv   r&  s     rd   rˆ   z&OneClassSampleErrorClassifier.__init__ƒ  s
   € Ø'>ˆÕ$rf   Nc                 óÄ  — t        ||ddd¬«      \  }}d| _        t        j                  |d¬«      \  | _        }| j                  j
                  d   }|dk  r| j                  rd| _        t        d«      ‚|�ht        |t        j                  «      r7t        |«      dkD  r)t        j                  t        j                  ||«      «      }|dk  rd| _        t        d	«      ‚| S )
Nrö   Tr÷   F)Úreturn_inverser   é   znormal class errorrä   )rX   Úhas_single_class_r~   Úuniquer  r€   r&  r­   rå   ÚndarrayÚlenÚcount_nonzeroÚbincount)rv   rw   rx   rý   Ú
n_classes_s        rd   ry   z!OneClassSampleErrorClassifier.fit†  sÐ   € ÜØˆq ¸TÈTô
‰ˆˆ1ð "'ˆÔÜŸ9™9 Q°tÔ<ÑˆŒ�qØ—]‘]×(Ñ(¨Ñ+ˆ
Ø˜Š>˜d×:Ò:Ø%)ˆDÔ"ÜÐ1Ó2Ð2ð Ð$Ü˜-¬¯©Ô4¼¸]Ó9KÈaÒ9OÜ×-Ñ-¬b¯k©k¸!¸]Ó.KÓL�
Ø˜AŠ~Ø)-�Ô&Ü Ð!4Ó5Ð5àˆrf   c                 óÎ   — t        | «       t        |«      }| j                  r"t        j                  |j
                  d   «      S t        j                  |j
                  d   «      S r|   )rW   rV   r*  r~   r  r€   r   r�   s     rd   r‚   z%OneClassSampleErrorClassifier.predictœ  sJ   € Ü˜ÔÜ˜‹NˆØ×!Ò!Ü—8‘8˜AŸG™G A™JÓ'Ð'Ü�w‰w�q—w‘w˜q‘zÓ"Ð"rf   )Frt   ©rl   rm   rn   ro   rˆ   ry   r‚   rp   rf   rd   r$  r$    s   „ ñ#ó?óó,#rf   r$  c                   ó   — e Zd ZdZdd„Zd„ Zy)Ú!LargeSparseNotSupportedClassifierz^Estimator that claims to support large sparse data
    (accept_large_sparse=True), but doesn'tNc                 ó   — || _         y rt   rÙ   rÛ   s     rd   rˆ   z*LargeSparseNotSupportedClassifier.__init__¨  rÜ   rf   c           	      óü  — t        | ||dddd¬«      \  }}| j                  dk(  rt        |t        j                  «      }n)| j                  dk(  rt        |t        j
                  «      }r‘|j                  dk(  r?|j                  j                  dk(  s|j                  j                  dk(  rt        d«      ‚| S |j                  d	v r5d|j                  j                  |j                  j                  fvsJ d«       ‚| S )
N)rÞ   rß   ÚcooT)rá   Úaccept_large_sparserø   rù   râ   rã   r7  Úint64z(Estimator doesn't support 64-bit indices)rß   rÞ   )rY   rÚ   rå   ræ   rç   rè   ÚformatÚrowÚdtypeÚcolr­   ÚindicesÚindptrré   s       rd   ry   z%LargeSparseNotSupportedClassifier.fit¬  sð   € ÜØØØØ/Ø $ØØô
‰ˆˆ1ð ×Ñ .Ò0Ü% a¬¯©Ó4‰LØ× Ñ  OÒ3Ü% a¬¯©Ó5ˆLÙØ�x‰x˜5Ò Ø—5‘5—;‘; 'Ò)¨Q¯U©U¯[©[¸GÒ-CÜ$Ð%OÓPÐPð ˆð —‘˜^Ñ+ØØ—I‘I—O‘OØ—H‘H—N‘Nð'ñ ð >ð >ó>ð ð
 ˆrf   rt   )rl   rm   rn   ro   rˆ   ry   rp   rf   rd   r4  r4  ¤  s   „ ñ/ó-órf   r4  c                   ó*   — e Zd Zdd„Zdd„Zdd„Zd„ Zy)ÚSparseTransformerNc                 ó   — || _         y rt   ©Úsparse_container)rv   rD  s     rd   rˆ   zSparseTransformer.__init__È  s
   € Ø 0ˆÕrf   c                 ó   — t        | |«       | S rt   rŠ   ru   s      rd   ry   zSparseTransformer.fitË  s   € Ü�d˜AÔØˆrf   c                 óD   — | j                  ||«      j                  |«      S rt   )ry   r  ru   s      rd   Úfit_transformzSparseTransformer.fit_transformÏ  s   € Ø�x‰x˜˜1‹~×'Ñ'¨Ó*Ð*rf   c                 óX   — t        | «       t        | |dd¬«      }| j                  |«      S )NTF)rá   r  )rW   rY   rD  r�   s     rd   r  zSparseTransformer.transformÒ  s+   € Ü˜ÔÜ˜$ °¸UÔCˆØ×$Ñ$ QÓ'Ð'rf   rt   )rl   rm   rn   rˆ   ry   rG  r  rp   rf   rd   rA  rA  Ç  s   „ ó1óó+ó(rf   rA  c                   ó   — e Zd Zd„ Zd„ Zy)ÚEstimatorInconsistentForPandasc                 óÎ   — 	 ddl m} t        ||«      r|j                  d   | _        | S t        |«      }|d   | _        | S # t        $ r t        |«      }|d   | _        | cY S w xY w)Nr   )Ú	DataFrame)r   r   )rž   r   )rü   rL  rå   ÚilocÚvalue_rV   ÚImportError)rv   rw   rx   rL  s       rd   ry   z"EstimatorInconsistentForPandas.fitÙ  sm   € ð	Ý(ä˜!˜YÔ'ØŸf™f T™l�”ð ˆKô   “N�Ø ™g�”ØˆKøäò 	Ü˜A“ˆAØ˜D™'ˆDŒKØŠKð	ús   ‚'A ªA Á A$Á#A$c                 óx   — t        |«      }t        j                  | j                  g|j                  d   z  «      S r|   )rV   r~   ÚarrayrN  r€   r�   s     rd   r‚   z&EstimatorInconsistentForPandas.predicté  s-   € Ü˜‹NˆÜ�x‰x˜Ÿ™˜¨¯©°©
Ñ2Ó3Ð3rf   Nrƒ   rp   rf   rd   rJ  rJ  Ø  s   „ òó 4rf   rJ  c                   ó,   ‡ — e Zd Zdˆ fd„	Zdˆ fd„	Zˆ xZS )ÚUntaggedBinaryClassifierc                 ót   •— t         ‰| �  |||||«       t        | j                  «      dkD  rt	        d«      ‚| S )Nr)  úOnly 2 classes are supported)r®   ry   r-  r  r­   )rv   rw   rx   Ú	coef_initÚintercept_initrý   r²   s         €rd   ry   zUntaggedBinaryClassifier.fitð  s9   ø€ Ü‰‰�A�q˜) ^°]ÔCÜˆt�}‰}Ó Ò!ÜÐ;Ó<Ð<Øˆrf   c                 ót   •— t         ‰| �  ||||¬«       t        | j                  «      dkD  rt	        d«      ‚| S )N)rw   rx   r  rý   r)  rU  )r®   Úpartial_fitr-  r  r­   )rv   rw   rx   r  rý   r²   s        €rd   rY  z$UntaggedBinaryClassifier.partial_fitö  s;   ø€ Ü‰Ñ˜a 1¨gÀ]ÐÔSÜˆt�}‰}Ó Ò!ÜÐ;Ó<Ð<Øˆrf   )NNN©NN)rl   rm   rn   ry   rY  rµ   r¶   s   @rd   rS  rS  î  s   ø„ õ÷ñ rf   rS  c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚTaggedBinaryClassifierc                 óh   •— t        |dd¬«      }|dk7  rt        d|› d�«      ‚t        ‰| �  ||«      S )Nrx   T)Ú
input_nameÚraise_unknownÚbinaryzCOnly binary classification is supported. The type of the target is ú.)rU   r­   r®   ry   )rv   rw   rx   Úy_typer²   s       €rd   ry   zTaggedBinaryClassifier.fitþ  sJ   ø€ Ü ¨cÀÔFˆØ�XÒÜðØ�X˜Qð óð ô ‰w‰{˜1˜aÓ Ð rf   c                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NF)r®   Ú__sklearn_tags__Úclassifier_tagsÚmulti_class©rv   Útagsr²   s     €rd   re  z'TaggedBinaryClassifier.__sklearn_tags__  s#   ø€ Ü‰wÑ'Ó)ˆØ+0ˆ×ÑÔ(Øˆrf   ©rl   rm   rn   ry   re  rµ   r¶   s   @rd   r\  r\  ý  s   ø„ ô!÷ð rf   r\  c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚRequiresPositiveXRegressorc                 ó†   •— t        | ||dd¬«      \  }}|dk  j                  «       rt        d«      ‚t        ‰| �  ||«      S )NFT©rá   rø   r   z$Negative values in data passed to X.©rY   r"  r­   r®   ry   ©rv   rw   rx   r²   s      €rd   ry   zRequiresPositiveXRegressor.fit  sC   ø€ ä˜T 1 a°uÈ4ÔP‰ˆˆ1Ø�‰E�;‰;Œ=ÜÐCÓDÐDÜ‰w‰{˜1˜aÓ Ð rf   c                 óh   •— t         ‰| �  «       }d|j                  _        d|j                  _        |S )NTF)r®   re  Ú
input_tagsÚpositive_onlyÚsparserh  s     €rd   re  z+RequiresPositiveXRegressor.__sklearn_tags__  s-   ø€ Ü‰wÑ'Ó)ˆØ(,ˆ�‰Ô%à!&ˆ�‰ÔØˆrf   rj  r¶   s   @rd   rl  rl    s   ø„ ô!÷ð rf   rl  c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚRequiresPositiveYRegressorc                 ó†   •— t        | ||dd¬«      \  }}|dk  j                  «       rt        d«      ‚t        ‰| �  ||«      S )NTrn  r   ú negative y values not supported!ro  rp  s      €rd   ry   zRequiresPositiveYRegressor.fit  sC   ø€ Ü˜T 1 a°tÈ$ÔO‰ˆˆ1Ø�‰F�<‰<Œ>ÜÐ?Ó@Ð@Ü‰w‰{˜1˜aÓ Ð rf   c                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NT)r®   re  Útarget_tagsrs  rh  s     €rd   re  z+RequiresPositiveYRegressor.__sklearn_tags__%  s#   ø€ Ü‰wÑ'Ó)ˆØ)-ˆ×ÑÔ&Øˆrf   rj  r¶   s   @rd   rv  rv    s   ø„ ô!÷ð rf   rv  c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚPoorScoreLogisticRegressionc                 ó(   •— t         ‰| �  |«      dz   S r�   )r®   Údecision_function)rv   rw   r²   s     €rd   r  z-PoorScoreLogisticRegression.decision_function,  s   ø€ Ü‰wÑ(¨Ó+¨aÑ/Ð/rf   c                 óF   •— t         ‰| �  «       }d|j                  _        |S rz  )r®   re  rf  Ú
poor_scorerh  s     €rd   re  z,PoorScoreLogisticRegression.__sklearn_tags__/  s#   ø€ Ü‰wÑ'Ó)ˆØ*.ˆ×ÑÔ'Øˆrf   )rl   rm   rn   r  re  rµ   r¶   s   @rd   r}  r}  +  s   ø„ ô0÷ð rf   r}  c                   ó   — e Zd Zd„ Zd„ Zy)ÚPartialFitChecksNamec                 ó    — t        | ||«       | S rt   rŠ   ru   s      rd   ry   zPartialFitChecksName.fit6  s   € Ü�d˜A˜qÔ!Øˆrf   c                 óL   — t        | d«       }t        | |||¬«       d| _        | S )NÚ_fittedr  T)ÚhasattrrY   r†  )rv   rw   rx   r  s       rd   rY  z PartialFitChecksName.partial_fit:  s+   € Ü˜D )Ó,Ð,ˆÜ�d˜A˜q¨Õ.ØˆŒØˆrf   N)rl   rm   rn   ry   rY  rp   rf   rd   rƒ  rƒ  5  s   „ òórf   rƒ  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚBrokenArrayAPIz=Make different predictions when using Numpy and the Array APIc                 ó   — | S rt   rp   ru   s      rd   ry   zBrokenArrayAPI.fitD  rz   rf   c                 ó¤   — t        «       d   }t        j                  |«      \  }}|r|j                  g d¢«      S t	        j
                  g d¢«      S )NÚarray_api_dispatch)rž   r)  é   )r�  r)  rž   )r   r   Úget_namespaceÚasarrayr~   rQ  )rv   rw   ÚenabledÚxpÚ_s        rd   r‚   zBrokenArrayAPI.predictG  sD   € Ü“,Ð3Ñ4ˆÜ×(Ñ(¨Ó+‰ˆˆAÙØ—:‘:šiÓ(Ð(ä—8‘8šIÓ&Ð&rf   N)rl   rm   rn   ro   ry   r‚   rp   rf   rd   r‰  r‰  A  s   „ ÙGòó'rf   r‰  c                  óÚ   — 	 t        j                  d«       t	        t
        d¬«      5  t        dt        «       dd¬«       d d d «       y # t        $ r t        d«      ‚w xY w# 1 sw Y   y xY w)NÚarray_api_strictz-array-api-strict is required to run this testúNot equal to tolerance©Úmatchr‰  T)Úarray_namespaceÚcheck_values)Ú	importlibÚimport_moduleÚModuleNotFoundErrorr&   r(   ÚAssertionErrorr,   r‰  rp   rf   rd   Útest_check_array_api_inputrž  P  st   € ðHÜ×ÑÐ 2Ô3ô 
”Ð&>Ô	?ñ 
ÜØÜÓØ.Øõ		
÷
ð 
øô ò HÜÐFÓGÐGðHú÷
ð 
ús   ‚A	 ¨A!Á	AÁ!A*c                  óê   — t        t        j                  d«      «      } d}t        t        |¬«      5  t        j
                  | «       d d d «       t        j                  | d «      sJ ‚y # 1 sw Y   Œ"xY w)Né
   z&Don't want to call array_function sum!r–  )r*   r~   r   r(   Ú	TypeErrorÚsumÚmay_share_memory)Ú	not_arrayÚmsgs     rd   Ú test_not_an_array_array_functionr¦  _  s\   € ÜœBŸG™G B›KÓ(€IØ
2€CÜ	”	 Ô	%ñ Ü
�‰ˆyÔ÷ô ×Ñ˜y¨$Ô/Ð/Ñ/÷ð ús   ²A)Á)A2c                  óD   —  G d„ dt         «      } t        d | «       «       y )Nc                   ó(   — e Zd Z ed«      d„ «       Zy)úbtest_check_fit_score_takes_y_works_on_deprecated_fit.<locals>.TestEstimatorWithDeprecatedFitMethodz=Deprecated for the purpose of testing check_fit_score_takes_yc                 ó   — | S rt   rp   ru   s      rd   ry   zftest_check_fit_score_takes_y_works_on_deprecated_fit.<locals>.TestEstimatorWithDeprecatedFitMethod.fitm  s   € àˆKrf   N)rl   rm   rn   r   ry   rp   rf   rd   Ú$TestEstimatorWithDeprecatedFitMethodr©  l  s   „ Ù	ÐSÓ	Tñ	ó 
Uñ	rf   r«  Útest)r   rC   )r«  s    rd   Ú4test_check_fit_score_takes_y_works_on_deprecated_fitr­  h  s   € ô¬}ô ô
 ˜FÑ$HÓ$JÕKrf   c                  ór   — d} t        t        | ¬«      5  t        t        «       ddd«       y# 1 sw Y   yxY w)z7Test that passing a class instead of an instance fails.zPassing a class was deprecatedr–  N)r(   r¡  r8   r   ©r¥  s    rd   Ú'test_check_estimator_with_class_removedr°  t  s/   € à
*€CÜ	”	 Ô	%ñ ,ÜÔ*Ô+÷,÷ ,ñ ,ús   ”-­6c                  ó¤   — d} t        dt        «       «       t        t        | ¬«      5  t        dt	        «       «       ddd«       y# 1 sw Y   yxY w)z=Test that constructor cannot have mutable default parameters.zXParameter 'p' of estimator 'HasMutableParameters' is of type object which is not allowedÚ	Immutabler–  ÚMutableN)rJ   r¾   r(   r�  r¹   r¯  s    rd   Útest_mutable_default_paramsr´  {  sR   € ð	&ð ô
 +ØÔ+Ó-ôô 
” cÔ	*ñ RÜ.¨yÔ:NÓ:PÔQ÷R÷ Rñ Rús   ¨AÁAc                  ó¼  — d} t        t        | ¬«      5  t        dt        «       «       ddd«       t	        j
                  d¬«      5 }t        dt        «       «       ddd«       t        D �cg c]  }|j                  ‘Œ c}v sJ ‚t        t        | ¬«      5  t        dt        «       «       ddd«       y# 1 sw Y   Œ�xY w# 1 sw Y   ŒfxY wc c}w # 1 sw Y   yxY w)z8Check set_params doesn't fail and sets the right values.z>get_params result does not match what was passed to set_paramsr–  r¬  NT©Úrecord)
r(   r�  rO   rÆ   ÚwarningsÚcatch_warningsr¥   ÚUserWarningÚcategoryrË   )r¥  ÚrecordsÚrecs      rd   Útest_check_set_paramsr¾  ‰  sÁ   € ð K€CÜ	” cÔ	*ñ GÜ˜Ô!CÓ!EÔF÷Gô 
×	 Ñ	 ¨Ô	-ð ;°Ü˜Ô!7Ó!9Ô:÷;ä°7Ö;¨C˜3Ÿ<›<Ò;Ñ;Ð;Ð;ä	” cÔ	*ñ 9Ü˜Ô!5Ó!7Ô8÷9ð 9÷Gð Gú÷;ð ;üâ;÷9ð 9ús)   ”B5ÁCÁ-CÂCÂ5B>ÃC
ÃCc                  ó|   — d} t        t        | ¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w)NzCEstimator NoCheckinPredict doesn't check for NaN and inf in predictr–  rÔ   )r(   r�  r?   rÔ   r¯  s    rd   Útest_check_estimators_nan_infrÀ  ™  s9   € à
O€CÜ	” cÔ	*ñ IÜ Ð!3Ô5EÓ5GÔH÷I÷ Iñ Iúó   ”2²;c                  ó|   — d} t        t        | ¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w)Nz)Estimator changes __dict__ during predictr–  r¬  )r(   r�  r6   r…   r¯  s    rd   Útest_check_dict_unchangedrÃ     s4   € ð 6€CÜ	” cÔ	*ñ 4Ü˜V¤[£]Ô3÷4÷ 4ñ 4úrÁ  c                  ó¨   — 	 ddl m}  d}t        t        |¬«      5  t	        dt        «       «       d d d «       y # 1 sw Y   y xY w# t        $ r Y y w xY w)Nr   rú   zkEstimator NoSampleWeightPandasSeriesType raises error if 'sample_weight' parameter is of type pandas.Seriesr–  rô   )rü   rû   r(   r­   rN   rô   rO  )rû   r¥  s     rd   Ú'test_check_sample_weights_pandas_seriesrÅ  ¨  sZ   € ðÝ!ðAð 	ô ”J cÔ*ñ 	Ü.Ø0Ô2PÓ2Rô÷	÷ 	ñ 	ûô ò Ùðús*   ‚A ›9°A ¹A¾A ÁA Á	AÁAc                  ó¤   — d} t        t        | ¬«      5  t        dt        «       «       d d d «       t        dt	        «       «       y # 1 sw Y   ŒxY w)NzrEstimator ChangesWrongAttribute should not change or mutate  the parameter wrong_attribute from 0 to 1 during fit.r–  r™   r¬  )r(   r�  r@   r™   r    r¯  s    rd   Ú&test_check_estimators_overwrite_paramsrÇ  ¹  sO   € ð	@ð ô 
” cÔ	*ñ 
Ü)Ø#Ô%:Ó%<ô	
÷
ô & fÔ.HÓ.JÕK÷	
ð 
úó   ”AÁAc                  ó|   — d} t        t        | ¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w)Nz±Estimator adds public attribute\(s\) during the fit method. Estimators are only allowed to add private attributes either started with _ or ended with _ but wrong_attribute addedr–  r¬  )r(   r�  r7   r�   r¯  s    rd   Ú$test_check_dont_overwrite_parametersrÊ  Ç  s?   € ð	,ð ô 
” cÔ	*ñ FÜ'¨Ô0BÓ0DÔE÷F÷ Fñ FúrÁ  c                  óÂ   — t         j                  } d}dj                  || ¬«      }t        t        |¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w)Nr‚   zY{method} of {name} is not invariant when applied to a datasetwith different sample order.©ÚmethodÚnamer–  r  )r  rl   r:  r(   r�  rD   ©rÎ  rÍ  r¥  s      rd   Ú*test_check_methods_sample_order_invariancerÐ  Ó  s\   € ä"×+Ñ+€DØ€Fð	'ç�f�F €fÓ&ð ô 
” cÔ	*ñ 
Ü-Ø%Ô'>Ó'@ô	
÷
÷ 
ñ 
úó   ·AÁAc                  óÂ   — t         j                  } d}dj                  || ¬«      }t        t        |¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w)Nr‚   z={method} of {name} is not invariant when applied to a subset.rÌ  r–  r  )r  rl   r:  r(   r�  rE   rÏ  s      rd   Ú$test_check_methods_subset_invariancerÓ  á  sa   € ä×'Ñ'€DØ€FØJ×
RÑ
RØ˜Dð Só €Cô 
” cÔ	*ñ VÜ'Ð(=Ô?RÓ?TÔU÷V÷ Vñ VúrÑ  c                  ó$  — t         j                  } d| z  }t        t        |¬«      5  t	        | t        d«      «       d d d «       t
        r/t        t        |¬«      5  t        | t        d«      «       d d d «       d}t        t        |¬«      5  t	        dt        d«      «       d d d «       t
        r0t        t        |¬«      5  t        dt        d«      «       d d d «       y y # 1 sw Y   Œ¦xY w# 1 sw Y   Œ}xY w# 1 sw Y   ŒXxY w# 1 sw Y   y xY w)Nz;Estimator %s doesn't seem to fail gracefully on sparse datar–  rã   râ   ztEstimator LargeSparseNotSupportedClassifier doesn't seem to support \S{3}_64 matrix, and is not failing gracefully.*r4  )r×   rl   r(   r�  r<   rS   r;   r4  ©rÎ  r¥  s     rd   Ú test_check_estimator_sparse_datarÖ  ì  s  € ä×&Ñ&€DØ
GÈ$Ñ
N€CÜ	” cÔ	*ñ QÜ% dÔ,>¸Ó,OÔP÷Qõ Ü”N¨#Ô.ñ 	SÜ(¨Ô/AÀ.Ó/QÔR÷	Sð
	Dð ô 
” cÔ	*ñ 
Ü%Ø/Ü-¨oÓ>ô	
÷
õ Ü”N¨#Ô.ñ 	Ü(Ø3Ü1°.ÓAô÷	ð 	ð ÷%Qð Qú÷	Sð 	Sú÷
ð 
ú÷	ð 	ús/   §C"ÁC.ÂC:ÃDÃ"C+Ã.C7Ã:DÄDc                  ó¢   — t         j                  } | › d�}t        t        |¬«      5  t	        dt        «       «       d d d «       y # 1 sw Y   y xY w)Nzu failed when fitted on one label after sample_weight trimming. Error message is not explicit, it should have 'class'.r–  r$  )r$  rl   r(   r�  r3   rÕ  s     rd   Ú/test_check_classifiers_one_label_sample_weightsrØ  
  sS   € ä(×1Ñ1€Dàˆ&ð ð 	ð ô
 
” cÔ	*ñ 
Ü2Ø+Ô-JÓ-Lô	
÷
÷ 
ñ 
ús   §AÁAc                  óê   — t        t        «       d¬«      } t        | t        «      sJ ‚t	        | «      dkD  sJ ‚t        d„ | D «       «      sJ ‚t        d„ | D «       «      sJ ‚t        d„ | D «       «      sJ ‚y)z¡Check the contents of the results returned with on_fail!="raise".

    This results should contain details about the observed failures, expected
    or not.
    N)Úon_failr   c              3   ó|   K  — | ]4  }t        |t        «      xr t        |j                  «       «      h d £k(  –— Œ6 y­w)>   ÚstatusÚ	estimatorÚ	exceptionÚ
check_nameÚexpected_to_failÚexpected_to_fail_reasonN)rå   ÚdictÚsetÚkeys©Ú.0Úitems     rd   ú	<genexpr>z5test_check_estimator_not_fail_fast.<locals>.<genexpr>!  sC   è ø€ ò ð ô 	�4œÓò 		
Ü�—	‘	“Óò
ñ
ó		
ñùs   ‚:<c              3   ó,   K  — | ]  }|d    dk(  –— Œ y­w)rÜ  ÚfailedNrp   rå  s     rd   rè  z5test_check_estimator_not_fail_fast.<locals>.<genexpr>/  ó   è ø€ ÒD¨dˆt�H‰~ Õ)ÑDùó   ‚c              3   ó,   K  — | ]  }|d    dk(  –— Œ y­w)rÜ  ÚpassedNrp   rå  s     rd   rè  z5test_check_estimator_not_fail_fast.<locals>.<genexpr>0  rë  rì  )r8   r   rå   Úlistr-  Úallr"  )Úcheck_resultss    rd   Ú"test_check_estimator_not_fail_fastrò    s€   € ô $¤M£O¸TÔB€MÜ�m¤TÔ*Ð*Ð*Üˆ}Ó Ò!Ð!Ð!Üñ ð "ôô ð ð ô ÑD°mÔDÔDÐDÐDÜÑD°mÔDÔDÐDÑDrf   c                  óŽ  — d} t        t        | ¬«      5  t        t        «       «       d d d «       d} t        t        | ¬«      5  t        t        «       «       d d d «       t        D ]  }t        t        |¬«      «       Œ t        t        «       «       t        t        d¬«      «       t        t        «       «       t        t        «       «       t        t        «       «       d} t        t        | ¬«      5  t        t        «       «       d d d «       t        t        «       «       y # 1 sw Y   ŒüxY w# 1 sw Y   ŒÙxY w# 1 sw Y   Œ5xY w)Nzobject has no attribute 'fit'r–  rU  rC  g{®Gáz„?)ÚCrx  )r(   ÚAttributeErrorr8   r   r­   rS  rR   rA  r   r   r\  rl  rv  r}  )r¥  Úcsr_containers     rd   Útest_check_estimatorr÷  3  s  € ð *€CÜ	” cÔ	*ñ )Üœ›Ô(÷)ð )€CÜ	”
 #Ô	&ñ 4ÜÔ0Ó2Ô3÷4ô (ò KˆäÔ)¸=ÔIÕJðKô
 Ô&Ó(Ô)ÜÔ&¨Ô.Ô/ÜÔ'Ó)Ô*ô Ô*Ó,Ô-ÜÔ.Ó0Ô1ð -€CÜ	”
 #Ô	&ñ 6ÜÔ2Ó4Ô5÷6ô Ô/Ó1Õ2÷7)ð )ú÷
4ð 4ú÷$6ð 6ús#   ”D#ÁD/Ã3D;Ä#D,Ä/D8Ä;Ec                  óÜ   — t        j                  g d¢«      } t        t        «      5  t	        dd| «       d d d «       t        j                  g d¢«      } t	        dd| «       y # 1 sw Y   Œ.xY w)N)ç        r  g      ø?ç       @rž   r)  )rù  r  r  rú  )r~   rQ  r(   r�  rI   )Údecisions    rd   Útest_check_outlier_corruptionrü  \  sW   € ä�x‰xÒ,Ó-€HÜ	”Ó	ñ 1Ü   A xÔ0÷1ô �x‰xÒ,Ó-€HÜ˜Q  8Õ,÷	1ð 1ús   §A"Á"A+c                  ó.  —  G d„ dt         «      } ddddœddddœddt        dœddt        dœg}|D ]n  } | |d   |d   «      }|d	   €!t        |j                  j                  |«       Œ8t        |d	   «      5  t        |j                  j                  |«       ddd«       Œp t        d
«      t        d«      fD ]D  } | dd|«      }t        t        «      5  t        |j                  j                  |«       ddd«       ŒF y# 1 sw Y   ŒØxY w# 1 sw Y   Œ]xY w)zTTest that check_estimator_sparse_tag raises error when sparse tag is
    misaligned.c                   ó.   ‡ — e Zd Zdd„Zdd„Zˆ fd„Zˆ xZS )úBtest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfigc                 ó.   — || _         || _        || _        y rt   )Ú
tag_sparserá   Ú	fit_error)rv   r  rá   r  s       rd   rˆ   zKtest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfig.__init__k  s   € Ø(ˆDŒOØ!.ˆDÔØ&ˆD�Nrf   c                 óh   — | j                   r| j                   ‚t        | ||| j                  ¬«       | S )Nrà   )r  rY   rá   ru   s      rd   ry   zFtest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfig.fitp  s,   € Ø�~Š~Ø—n‘nÐ$Ü˜$  1°D×4FÑ4FÕGØˆKrf   c                 óZ   •— t         ‰| �  «       }| j                  |j                  _        |S rt   )r®   re  r  rr  rt  rh  s     €rd   re  zStest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfig.__sklearn_tags__v  s%   ø€ Ü‘7Ñ+Ó-ˆDØ%)§_¡_ˆD�O‰OÔ"ØˆKrf   rt   ©rl   rm   rn   rˆ   ry   re  rµ   r¶   s   @rd   ÚEstimatorWithSparseConfigrÿ  j  s   ø„ ó	'ó
	÷	ð 	rf   r  TN)r  rá   Ú
error_typeFr  rá   r  zunexpected errorzother error)r   r�  r=   r²   rl   r(   r¡  ÚKeyError)r  Ú
test_casesÚ	test_caserÝ  r  s        rd   Útest_check_estimator_sparse_tagr  f  s?  € ô¤Mô ð$ ¨dÀ$ÑGØ¨uÀDÑIØ¨tÄ>ÑRØ¨eÄ>ÑRð	€Jð  ò 	Tˆ	Ù-Ø�lÑ#Ø�oÑ&ó
ˆ	ð �\Ñ"Ð*Ü& y×':Ñ':×'CÑ'CÀYÕOä˜	 ,Ñ/Ó0ñ TÜ*¨9×+>Ñ+>×+GÑ+GÈÔS÷Tð Tð	Tô  Ð 2Ó3´X¸mÓ5LÐMò Pˆ	Ù-¨e°U¸IÓFˆ	Ü”NÓ#ñ 	PÜ& y×':Ñ':×'CÑ'CÀYÔO÷	Pð 	PñP÷Tð Tú÷	Pð 	Pús   Á6!C?Ã!DÃ?D	ÄD	c                  ót   — t        t        d«      5  t        t        «       «       d d d «       y # 1 sw Y   y xY w)Nz%the `transformer_tags` tag is not set)r(   ÚRuntimeErrorr8   r  rp   rf   rd   Ú)test_check_estimator_transformer_no_mixinr  •  s0   € ô 
”ÐEÓ	Fñ 6ÜÔ2Ó4Ô5÷6÷ 6ñ 6ús   ‘.®7c                  ó˜  — t        «       } t        t        t        t        t
        fD �]	  }t        t        ¬«      5   |«       }t        |«       t        j                  |«      }t        |t        |«      ¬«       d d d «       t        j                  «      k(  sJ ‚t        t        ¬«      5   |«       }t        |«       |j                  | j                  | j                  «       t        j                  |«      }t        |t        |«      ¬«       d d d «       |t        j                  |«      k(  r�Œ
J ‚ y # 1 sw Y   Œ½xY w# 1 sw Y   Œ3xY w)N)r»  ©Úexpected_failed_checks)r   r   r   r   r   r   r'   r   rQ   ÚjoblibÚhashr8   r"   ry   ÚdataÚtarget)ÚirisÚ	EstimatorÚestÚold_hashs       rd   Útest_check_estimator_clonesr  œ  s  € ô ‹;€Dô 	ÜÜÜÜðó ,ˆ	ô Ô&8Ô9ñ 	Ù“+ˆCÜ˜SÔ!Ü—{‘{ 3Ó'ˆHÜØÔ,GÈÓ,Lõ÷		ð œ6Ÿ;™; sÓ+Ò+Ð+Ð+ô Ô&8Ô9ñ 	Ù“+ˆCÜ˜SÔ!Ø�G‰G�D—I‘I˜tŸ{™{Ô+Ü—{‘{ 3Ó'ˆHÜØÔ,GÈÓ,Lõ÷	ð œ6Ÿ;™; sÓ+Ô+Ð+Ð+ñ5,÷	ð 	ú÷	ð 	ús   º>D4Â*A$E Ä4D=	Å E		c                  ó¤   — d} t        t        | ¬«      5  t        dt        «       «       d d d «       t        dt	        «       «       y # 1 sw Y   ŒxY w)Nz4Estimator should raise a NotFittedError when callingr–  rÝ  )r(   r�  rA   r×   rï   r¯  s    rd   Útest_check_estimators_unfittedr  ¿  sK   € ð A€CÜ	” cÔ	*ñ EÜ! +Ô/AÓ/CÔD÷Eô
 ˜kÔ+JÓ+LÕM÷Eð EúrÈ  c                  óè  —  G d„ dt         «      }  G d„ dt         «      } G d„ dt         «      }d}t        t        |¬«      5  t        d	 | «       «       d d d «       d
}t        t        |¬«      5  t        d	 |«       «       d d d «       t        d	 |«       «       t        d¬«      5  t        d	 |«       j                  d¬«      «       d d d «       y # 1 sw Y   Œ~xY w# 1 sw Y   Œ]xY w# 1 sw Y   y xY w)Nc                   ó   — e Zd Zd„ Zy)úNtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorPrivateSetc                 ó   — d | _         y rt   )Úyou_should_not_set_this_©rv   s    rd   rˆ   zWtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorPrivateSet.__init__Í  s
   € Ø,0ˆDÕ)rf   N©rl   rm   rn   rˆ   rp   rf   rd   Ú NonConformantEstimatorPrivateSetr  Ì  s   „ ó	1rf   r$  c                   ó   — e Zd Zdd„Zy)úNtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorNoParamSetNc                  ó   — y rt   rp   )rv   Úyou_should_set_this_s     rd   rˆ   zWtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorNoParamSet.__init__Ñ  s   € Ørf   rt   r#  rp   rf   rd   Ú NonConformantEstimatorNoParamSetr&  Ð  s   „ ô	rf   r)  c                   ó   — e Zd ZddiZdd„Zy)úOtest_check_no_attributes_set_in_init.<locals>.ConformantEstimatorClassAttributeÚfooTNc                 ó   — | S rt   rp   ru   s      rd   ry   zStest_check_no_attributes_set_in_init.<locals>.ConformantEstimatorClassAttribute.fitØ  ó   € ØˆKrf   rt   )rl   rm   rn   Ú9_ConformantEstimatorClassAttribute__metadata_request__fitry   rp   rf   rd   Ú!ConformantEstimatorClassAttributer+  Ô  s   „ à#(¨$ -Ðô	rf   r0  z‰Estimator estimator_name should not set any attribute apart from parameters during init. Found attributes \['you_should_not_set_this_'\].r–  Úestimator_namezPEstimator estimator_name should store all parameters as an attribute during initT)Úenable_metadata_routing)r,  )r   r(   r�  rG   rõ  r   Úset_fit_request)r$  r)  r0  r¥  s       rd   Ú$test_check_no_attributes_set_in_initr4  Ë  sô   € ô1¬=ô 1ô¬=ô ô¬Mô ð	=ð ô
 
” cÔ	*ñ 
Ü'ØÑ>Ó@ô	
÷
ð	ð ô 
” cÔ	*ñ 
Ü'ØÑ>Ó@ô	
÷
ô $ØÑ;Ó=ôô 
°Ô	5ñ 
Ü'ØÙ-Ó/×?Ñ?ÀDÐ?ÓIô	
÷
ð 
÷+
ð 
ú÷
ð 
ú÷
ð 
ús$   ÁCÁ.CÂ%"C(ÃCÃC%Ã(C1c                  óv   — t        d¬«      } t        | «       t        d¬«      } t        | t        | «      ¬«       y )NÚprecomputed)Úkernel)Úmetricr  )r   r8   r   r"   )r  s    rd   Útest_check_estimator_pairwiser9  ÿ  s2   € ô �]Ô
#€CÜ�CÔô  ]Ô
3€CÜ�CÔ0KÈCÓ0PÖQrf   c                  óx   — t        t        d¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w©Nr•  r–  r1  )r(   r�  r.   rJ  rp   rf   rd   Ú'test_check_classifier_data_not_an_arrayr<    s3   € Ü	”Ð&>Ô	?ñ 
Ü*ØÔ<Ó>ô	
÷
÷ 
ñ 
úó   ’0°9c                  óx   — t        t        d¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY wr;  )r(   r�  rL   rJ  rp   rf   rd   Ú&test_check_regressor_data_not_an_arrayr?    s3   € Ü	”Ð&>Ô	?ñ 
Ü)ØÔ<Ó>ô	
÷
÷ 
ñ 
úr=  c                  ó–  — d} t        t        | ¬«      5  t        dt        «       «       d d d «       t        dt	        «       «       t        «       }t        |j                  j                  |«       d|_        d} t        t        | ¬«      5  t        |j                  j                  |«       d d d «       y # 1 sw Y   Œ‹xY w# 1 sw Y   y xY w)Nz+Estimator does not have a feature_names_in_r–  r1  z;Docstring that does not document the estimator's attributeszNEstimator LogisticRegression does not document its feature_names_in_ attribute)	r(   r­   r4   rr   rƒ  r   r²   rl   ro   )Úerr_msgÚlrs     rd   Ú-test_check_dataframe_column_names_consistencyrC    s²   € Ø;€GÜ	”
 'Ô	*ñ XÜ0Ð1AÔCTÓCVÔW÷Xä,Ð-=Ô?SÓ?UÔVä	Ó	€BÜ,¨R¯\©\×-BÑ-BÀBÔGØN€B„JàXð ô 
”
 'Ô	*ñ LÜ0°·±×1FÑ1FÈÔK÷Lð L÷Xð Xú÷Lð Lús   ”B3Â	!B?Â3B<Â?Cc                   ó*   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zˆ xZS )Ú_BaseMultiLabelClassifierMockc                 ó   — || _         y rt   ©Úresponse_output)rv   rH  s     rd   rˆ   z&_BaseMultiLabelClassifierMock.__init__,  r›   rf   c                 ó   — | S rt   rp   ru   s      rd   ry   z!_BaseMultiLabelClassifierMock.fit/  rz   rf   c                 óF   •— t         ‰| �  «       }d|j                  _        |S rz  )r®   re  rf  Úmulti_labelrh  s     €rd   re  z._BaseMultiLabelClassifierMock.__sklearn_tags__2  s#   ø€ Ü‰wÑ'Ó)ˆØ+/ˆ×ÑÔ(Øˆrf   r  r¶   s   @rd   rE  rE  +  s   ø„ ò/ò÷ð rf   rE  c            	      ó²  — d\  } }}t        | d|dddd¬«      \  }}|| d  } G d„ d	t        «      } ||j                  «       ¬
«      }d}t        t        |¬«      5  t        |j                  j                  |«       d d d «        ||d d …d d…f   ¬
«      }d}t        t        |¬«      5  t        |j                  j                  |«       d d d «        ||j                  t        j                  «      ¬
«      }d}t        t        |¬«      5  t        |j                  j                  |«       d d d «       y # 1 sw Y   ŒºxY w# 1 sw Y   ŒxxY w# 1 sw Y   y xY w)N©éd   é   é   r)  r�  é2   Tr   ©Ú	n_samplesÚ
n_featuresÚ	n_classesÚn_labelsÚlengthÚallow_unlabeledÚrandom_statec                   ó   — e Zd Zd„ Zy)ú\test_check_classifiers_multilabel_output_format_predict.<locals>.MultiLabelClassifierPredictc                 ó   — | j                   S rt   rG  r�   s     rd   r‚   zdtest_check_classifiers_multilabel_output_format_predict.<locals>.MultiLabelClassifierPredict.predictF  ó   € Ø×'Ñ'Ð'rf   N)rl   rm   rn   r‚   rp   rf   rd   ÚMultiLabelClassifierPredictr[  E  ó   „ ó	(rf   r^  rG  zdMultiLabelClassifierPredict.predict is expected to output a NumPy array. Got <class 'list'> instead.r–  éÿÿÿÿzbMultiLabelClassifierPredict.predict outputs a NumPy array of shape \(25, 4\) instead of \(25, 5\).zTMultiLabelClassifierPredict.predict does not output the same dtype than the targets.)r   rE  Útolistr(   r�  r1   r²   rl   Úastyper~   Úfloat64)	rS  Ú	test_sizeÚ	n_outputsr’  rx   Úy_testr^  ÚclfrA  s	            rd   Ú7test_check_classifiers_multilabel_output_format_predictrh  8  sb  € Ø&0Ñ#€Iˆy˜)Ü)ØØØØØØØô�D€A€qð �	ˆzˆ{ˆ^€Fô(Ô&Cô (ñ
 &°f·m±m³oÔ
F€Cð	4ð ô 
” gÔ	.ñ XÜ:¸3¿=¹=×;QÑ;QÐSVÔW÷Xñ &°fºQÀÀÀ¸V±nÔ
E€Cð	1ð ô 
” gÔ	.ñ XÜ:¸3¿=¹=×;QÑ;QÐSVÔW÷Xñ &°f·m±mÄBÇJÁJÓ6OÔ
P€Cð	#ð ô 
” gÔ	.ñ XÜ:¸3¿=¹=×;QÑ;QÐSVÔW÷Xð X÷!Xð Xú÷Xð Xú÷Xð Xús$   Á!D5Â)!EÄ!EÄ5D>ÅE
ÅEc            	      óæ  — d\  } }}t        | d|dddd¬«      \  }}|| d  } G d„ d	t        «      }t        D ][  } | ||«      ¬
«      }d|j                  › d�}	t	        t
        |	¬«      5  t        |j                  j                  |«       d d d «       Œ]  ||j                  «       ¬
«      }d|› d|› d�}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «       t        |«      D �cg c]  }t        j                  |«      ‘Œ }
} ||
¬
«      }d}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «       t        |«      D �cg c]6  }t        j                  |j                  d   dft        j                  ¬«      ‘Œ8 }
} ||
¬
«      }d}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «       t        |«      D �cg c]6  }t        j                  |j                  d   dft        j                   ¬«      ‘Œ8 }
} ||
¬
«      }d}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «        ||d d …d d…f   ¬
«      }d}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «       t        j"                  |t        j                  ¬«      }
 ||
¬
«      }d}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «        ||dz  ¬
«      }d}	t	        t        |	¬«      5  t        |j                  j                  |«       d d d «       y # 1 sw Y   �ŒQxY w# 1 sw Y   �Œ¦xY wc c}w # 1 sw Y   �ŒHxY wc c}w # 1 sw Y   �ŒËxY wc c}w # 1 sw Y   �ŒNxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¯xY w# 1 sw Y   y xY w)NrM  r)  r�  rQ  Tr   rR  c                   ó   — e Zd Zd„ Zy)úgtest_check_classifiers_multilabel_output_format_predict_proba.<locals>.MultiLabelClassifierPredictProbac                 ó   — | j                   S rt   rG  r�   s     rd   Úpredict_probazutest_check_classifiers_multilabel_output_format_predict_proba.<locals>.MultiLabelClassifierPredictProba.predict_probaq  r]  rf   N)rl   rm   rn   rm  rp   rf   rd   Ú MultiLabelClassifierPredictProbark  p  r_  rf   rn  rG  zUnknown returned type .*zZ.* by MultiLabelClassifierPredictProba.predict_proba. A list or a Numpy array is expected.r–  z“When MultiLabelClassifierPredictProba.predict_proba returns a list, the list should be of length n_outputs and contain NumPy arrays. Got length of z instead of ra  z¾When MultiLabelClassifierPredictProba.predict_proba returns a list, this list should contain NumPy arrays of shape \(n_samples, 2\). Got NumPy arrays of shape \(25, 5\) instead of \(25, 2\).)r€   r<  zwWhen MultiLabelClassifierPredictProba.predict_proba returns a list, it should contain NumPy arrays with floating dtype.z¢When MultiLabelClassifierPredictProba.predict_proba returns a list, each NumPy array should contain probabilities for each class and thus each row should sum to 1r`  zžWhen MultiLabelClassifierPredictProba.predict_proba returns a NumPy array, the expected shape is \(n_samples, n_outputs\). Got \(25, 4\) instead of \(25, 5\).)r<  znWhen MultiLabelClassifierPredictProba.predict_proba returns a NumPy array, the expected data type is floating.rú  zÅWhen MultiLabelClassifierPredictProba.predict_proba returns a NumPy array, this array is expected to provide probabilities of the positive class and should therefore contain values between 0 and 1.)r   rE  rR   rl   r(   r­   r2   r²   ra  r�  Úranger~   Ú	ones_liker   r€   r9  rc  Ú
zeros_like)rS  rd  re  r’  rx   rf  rn  rö  rg  rA  rH  s              rd   Ú=test_check_classifiers_multilabel_output_format_predict_probarr  c  sá  € Ø&0Ñ#€Iˆy˜)Ü)ØØØØØØØô�D€A€qð �	ˆzˆ{ˆ^€Fô(Ô+Hô (ô (ò ˆá.¹}ÈVÓ?TÔUˆà& }×'=Ñ'=Ð&>ð ?"ð "ð 	ô
 ”J gÔ.ñ 	ÜDØ—‘×&Ñ&Øô÷	ð 	ðñ +¸6¿=¹=»?Ô
K€Cð	à�K˜|¨I¨;°að	9ð ô
 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ô 6;¸9Ó5EÖF°”r—|‘| FÕ+ÐF€OÐFÙ
*¸?Ô
K€Cð	Að ô
 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ô FKÈ9ÓEUöØ@AŒ�‰�v—|‘| A‘¨Ð*´"·(±(Ö;ð€Oð ñ +¸?Ô
K€Cð	>ð ô 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ô HMÈYÓGWöØBCŒ�‰�v—|‘| A‘¨Ð*´"·*±*Ö=ð€Oð ñ +¸?Ô
K€Cð	)ð ô
 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ñ +¸6Â!ÀSÀbÀSÀ&¹>Ô
J€Cð	"ð ô
 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ô —m‘m F´"·(±(Ô;€OÙ
*¸?Ô
K€Cð	6ð ô 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ñ +¸6ÀC¹<Ô
H€Cð	Oð ô
 
” gÔ	.ñ 
Ü@Ø�M‰M×"Ñ"Øô	
÷
ð 
÷y	ñ 	ú÷
ñ 
üò G÷
ñ 
üò÷
ñ 
üò÷
ñ 
ú÷
ñ 
ú÷
ð 
ú÷
ð 
úsr   Á*!M>Ã!NÃ<NÄ6!NÅ,;N*Ç!N/Ç;;N<É!OÊ"!OÌ!OÍ!O'Í>N	ÎNÎN'Î/N9ÏOÏOÏO$Ï'O0c            	      óx  — d\  } }}t        | d|dddd¬«      \  }}|| d  } G d„ d	t        «      } ||j                  «       ¬
«      }d}t        t        |¬«      5  t        |j                  j                  |«       d d d «        ||d d …d d…f   ¬
«      }d}t        t        |¬«      5  t        |j                  j                  |«       d d d «        ||¬
«      }d}t        t        |¬«      5  t        |j                  j                  |«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)NrM  r)  r�  rQ  Tr   rR  c                   ó   — e Zd Zd„ Zy)úotest_check_classifiers_multilabel_output_format_decision_function.<locals>.MultiLabelClassifierDecisionFunctionc                 ó   — | j                   S rt   rG  r�   s     rd   r  z�test_check_classifiers_multilabel_output_format_decision_function.<locals>.MultiLabelClassifierDecisionFunction.decision_functioní  r]  rf   N)rl   rm   rn   r  rp   rf   rd   Ú$MultiLabelClassifierDecisionFunctionru  ì  r_  rf   rw  rG  zwMultiLabelClassifierDecisionFunction.decision_function is expected to output a NumPy array. Got <class 'list'> instead.r–  r`  z¡MultiLabelClassifierDecisionFunction.decision_function is expected to provide a NumPy array of shape \(n_samples, n_outputs\). Got \(25, 4\) instead of \(25, 5\)z^MultiLabelClassifierDecisionFunction.decision_function is expected to output a floating dtype.)r   rE  ra  r(   r�  r0   r²   rl   )	rS  rd  re  r’  rx   rf  rw  rg  rA  s	            rd   ÚAtest_check_classifiers_multilabel_output_format_decision_functionrx  ß  sR  € Ø&0Ñ#€Iˆy˜)Ü)ØØØØØØØô�D€A€qð �	ˆzˆ{ˆ^€Fô(Ô/Lô (ñ
 /¸v¿}¹}»Ô
O€Cð	@ð ô 
” gÔ	.ñ 
ÜDØ�M‰M×"Ñ"Øô	
÷
ñ /¸vÂaÈÈ"ÈÀf¹~Ô
N€Cð	*ð ô
 
” gÔ	.ñ 
ÜDØ�M‰M×"Ñ"Øô	
÷
ñ /¸vÔ
F€Cð	'ð ô 
” gÔ	.ñ 
ÜDØ�M‰M×"Ñ"Øô	
÷
ð 
÷/
ð 
ú÷
ð 
ú÷
ð 
ús$   Á!DÂ)!D$Ã.!D0ÄD!Ä$D-Ä0D9c                  ó|  — t         j                  d   } t        | «      D �cg c]  }|j                  d«      rt	        | |«      ‘Œ! }}|D �cg c]  }t        j                  |«      ‘Œ }}t        j                  «       }|j                  |«       t        j                  «       }|j                  |«       yc c}w c c}w )z1Runs the tests in this file without using pytest.Ú__main__Útest_N)r]   r^   ÚdirÚ
startswithÚgetattrÚunittestÚFunctionTestCaseÚ	TestSuiteÚaddTestsÚTextTestRunnerÚrun)Úmain_modulerÎ  Útest_functionsÚfnr	  ÚsuiteÚrunners          rd   Úrun_tests_without_pytestrŠ    s§   € ä—+‘+˜jÑ)€Kô ˜Ó$öàØ�?‰?˜7Ô#ô 	�˜TÕ"ð€Nð ð
 ;IÖI°B”(×+Ñ+¨BÕ/ÐI€JÐIÜ×ÑÓ €EØ	‡N�N�:ÔÜ×$Ñ$Ó&€FØ
‡J�JˆuÕùòùò
 Js   ¡$B4ÁB9c                  ó|   — d} t        t        | ¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w)NzIClassifier estimator_name is not computing class_weight=balanced properlyr–  r1  )r(   r�  r-   r   r¯  s    rd   Ú2test_check_class_weight_balanced_linear_classifierrŒ  #  s7   € à
U€CÜ	” cÔ	*ñ 
Ü5ØÔ:Ó<ô	
÷
÷ 
ñ 
úrÁ  c                  óÒ   — t        j                  d¬«      5 } t        «       }d d d «        rJ ‚D ])  }|j                  j                  j                  d«      sŒ)J ‚ y # 1 sw Y   Œ<xY w)NTr¶  r’  )r¸  r¹  r   r²   rl   r}  )r·  Ú
estimatorsr  s      rd   Útest_all_estimators_all_publicr�  ,  sh   € ô 
×	 Ñ	 ¨Ô	-ð &°Ü#Ó%ˆ
÷&ñ Ðˆ:Øò :ˆØ—=‘=×)Ñ)×4Ñ4°SÕ9Ð9Ð9ñ:÷	&ð &ús   —AÁA&rz  c                  ó6  — t        t        t        «      «      } t        | «      }t	        | d|d¬«      }t        |«      dkD  sJ ‚|D �cg c]  }t        |d«      sŒ|‘Œ }}t        |«      dkD  sJ ‚|D ]!  }|j                  d   }d|j                  vrŒ!J ‚ y c c}w )NTÚxfail©Úlegacyr  r`   r   ÚmarksÚstrict)	Únextr!   r   r"   rP   r-  r‡  r”  r±   )r  rà  ÚchecksÚcÚmarked_checksÚparameter_setÚ
first_marks          rd   Ú+test_estimator_checks_generator_strict_nonerœ  >  s²   € ä
Ô#¤EÓ*Ó
+€CÜ2°3Ó7Ðô (ØØØ/Øô	€Fô ÐÓ  1Ò$Ð$Ð$Ø &Ö>˜1¬'°!°WÕ*=’QÐ>€MÐ>äˆ}Ó Ò!Ð!Ð!à&ò 1ˆØ"×(Ñ(¨Ñ+ˆ
Ø˜z×0Ñ0Ò0Ð0Ð0ñ1ùò	 ?s   ÁBÁBc                  óÜ  — t        t        t        «      «      } t        | «      }t	        | d|dd¬«      }t        |«      dkD  sJ ‚g }|D �cg c]  }t        |d«      sŒ|‘Œ }}t        |«      dkD  sJ ‚|D ]J  }|j                  \  }}|j                  d   }	|	j                  d   sŒ1|j                  t        |«      «       ŒL t        |j                  «       «      t        |«      k(  sJ ‚y c c}w )NTr‘  )r“  r  r`   Úxfail_strictr   r”  r•  )r–  r!   r   r"   rP   r-  r‡  Úvaluesr”  r±   Úappendr)   rã  rä  )
r  rà  r—  Ústrict_xfailed_checksr˜  r™  rš  r’  Úcheckr›  s
             rd   Ú2test_estimator_checks_generator_strict_xfail_testsr£  U  sÿ   € ô Ô#¤EÓ*Ó
+€CÜ2°3Ó7ÐÜ'ØØØ/ØØô€Fô ÐÓ  1Ò$Ð$Ð$ØÐð !'Ö>˜1¬'°!°WÕ*=’QÐ>€MÐ>äÐÓ  1Ò$Ð$Ð$à&ò =ˆØ ×'Ñ'‰ˆˆ5Ø"×(Ñ(¨Ñ+ˆ
Ø×Ñ˜XÓ&Ø!×(Ñ(¬°UÓ);Õ<ð	=ô Ð×$Ñ$Ó&Ó'¬3Ð/DÓ+EÒEÐEÑEùò ?s   Á
C)ÁC)c                  óR  — t        t        t        «      «      } t        | «      }t	        | d|d¬«      }t        |«      dkD  sJ ‚g }|D ]  \  }}	  ||«       Œ t        |j                  «       «      t        |«      k  sJ ‚y # t        $ r |j                  t        |«      «       Y Œ^w xY w)NTÚskipr’  r   )r–  r!   r   r"   rP   r-  r&   r   r)   rã  rä  )r  rà  r—  Úskipped_checksrÝ  r¢  s         rd   Ú.test_estimator_checks_generator_skipping_testsr§  u  s·   € ô Ô#¤EÓ*Ó
+€CÜ2°3Ó7ÐÜ'Ø�DÐ1AÈô€Fô ÐÓ  1Ò$Ð$Ð$Ø€NØ"ò 6Ñˆ	�5ð	6Ù�)Õð6ô Ð×$Ñ$Ó&Ó'¬3¨~Ó+>Ò>Ð>Ñ>øô	 ò 	6Ø×!Ñ!¤+¨eÓ"4Ö5ð	6ús   ÁB Â #B&Â%B&c                  ó  — t        «       } t        | «      }t        |«      dkD  sJ ‚t        j                  d¬«      5 }t        | |d¬«      }ddd«       D �cg c]  }|j                  t        k7  sŒ|‘Œ }}t        |D �cg c]  }|j                  t        k(  ‘Œ c}«      sJ ‚t        |«      t        |«      k(  sJ ‚D �cg c]  }|d   dk(  sŒ|‘Œ }}t        |«      t        |«      k(  sJ ‚y# 1 sw Y   Œ£xY wc c}w c c}w c c}w )	zÈTest that the right number of xfail warnings are raised when on_fail is "warn".

    It also checks the number of raised EstimatorCheckFailedWarning, and checks the
    output of check_estimator.
    r   Tr¶  Úwarn)r  rÚ  NrÜ  r‘  )
r   r"   r-  r¸  r¹  r8   r»  r   rð  r   )	r  r  r¼  ÚlogsÚwÚxfail_warnsr½  ÚlogÚxfaileds	            rd   Ú"test_xfail_count_with_no_fast_failr¯  Š  s  € ô ‹'€CÜ8¸Ó=ÐäÐ%Ó&¨Ò*Ð*Ð*Ü	×	 Ñ	 ¨Ô	-ð 
°ÜØØ#9Øô
ˆ÷
ð &ÖG˜¨¯©´Ó)F’1ÐG€KÐGÜÀ{ÖSÀ�—‘Ô ;Ó;ÒSÔTÐTÐTÜˆ{ÓœsÐ#9Ó:Ò:Ð:Ð:à"Ö?�s c¨(¡m°wÓ&>ŠsÐ?€GÐ?Üˆw‹<œ3Ð5Ó6Ò6Ð6Ñ6÷
ð 
üò HùÚSùò @s)   ¼C-ÁC9Á0C9Á?C>Â?DÃDÃ-C6c                  ó”  ‡— dddddœŠˆfd„} t        «       }t        |«      }t        |«      dkD  sJ ‚t        j                  d¬«      5  t        ||d| ¬«       ddd«       t        t        t        |d¬«      «      «      }‰d	   t        |«      k(  sJ ‚‰d
   dkD  sJ ‚‰d   dk(  sJ ‚‰d   |‰d	   z
  ‰d
   z
  k(  sJ ‚y# 1 sw Y   ŒfxY w)z:Test that the callback is called with the right arguments.r   ©r‘  Úskippedrî  rê  c                 ó,   •— |dv sJ ‚‰|xx   dz  cc<   y )Nr±  rž   rp   )rÝ  rß  rÞ  rÜ  rà  rá  Ú
call_counts         €rd   Úcallbackz/test_check_estimator_callback.<locals>.callback§  s$   ø€ ð ÐAÑAÐAÐAà�6Ó˜aÑÔrf   Tr¶  N)r  rÚ  rµ  ©r“  r‘  rî  rê  r²  )r   r"   r-  r¸  r¹  r8   rï  rP   )rµ  r  r  Úall_checks_countr´  s       @rd   Útest_check_estimator_callbackr¸  £  sü   ø€ à¨°aÀ1ÑE€Jô ô ‹'€CÜ8¸Ó=ÐäÐ%Ó&¨Ò*Ð*Ð*Ü	×	 Ñ	 ¨Ô	-ñ 
ÜØØ#9ØØõ		
÷
ô œ4Ô :¸3ÀtÔ LÓMÓNÐØ�gÑ¤#Ð&<Ó"=Ò=Ð=Ð=Ø�hÑ !Ò#Ð#Ð#Ø�hÑ 1Ò$Ð$Ð$Ø�iÑ Ø˜: gÑ.Ñ.°¸HÑ1EÑEòð ñ ÷
ð 
ús   Á	B>Â>Cc                  ó   — t         ‚rt   )r&   r%   r$   r#   r8   )Úminimal_estimatorsrÝ  s     rd   Ú(test_minimal_class_implementation_checksr»  Ê  s	   € ô €Nrf   c                  óà   —  G d„ dt         «      } t        t        d¬«      5  t        d | d¬«      «       d d d «       t        d | d¬«      «       t        d | d	¬«      «       y # 1 sw Y   Œ0xY w)
Nc                   ó8   — e Zd Zdd„Zd„ Z ed„ «      d„ «       Zy)ú1test_check_fit_check_is_fitted.<locals>.Estimatorc                 ó   — || _         y rt   ©Úbehavior)rv   rÁ  s     rd   rˆ   z:test_check_fit_check_is_fitted.<locals>.Estimator.__init__Ö  s	   € Ø$ˆD�Mrf   c                 ób   — | j                   dk(  r	d| _        | S | j                   dk(  rd| _        | S )NÚ	attributeTrÍ  )rÁ  Ú
is_fitted_Ú
_is_fitted)rv   rw   rx   r±   s       rd   ry   z5test_check_fit_check_is_fitted.<locals>.Estimator.fitÙ  s6   € Ø�}‰} Ò+Ø"&�”ð ˆKð —‘ (Ò*Ø"&�”ØˆKrf   c                 ó   — | j                   dv S )N>   rÍ  úalways-truerÀ  r"  s    rd   ú<lambda>z:test_check_fit_check_is_fitted.<locals>.Estimator.<lambda>à  s   €  4§=¡=Ð4MÐ#M€ rf   c                 ó:   — | j                   dk(  ryt        | d«      S )NrÇ  TrÅ  )rÁ  r‡  r"  s    rd   Ú__sklearn_is_fitted__zGtest_check_fit_check_is_fitted.<locals>.Estimator.__sklearn_is_fitted__à  s   € à�}‰} Ò-ØÜ˜4 Ó.Ð.rf   N)rÃ  )rl   rm   rn   rˆ   ry   rT   rÊ  rp   rf   rd   r  r¾  Õ  s'   „ ó	%ò	ñ 
ÑMÓ	Nñ	/ó 
Oñ	/rf   r  z'passes check_is_fitted before being fitr–  rÝ  rÇ  rÀ  rÍ  rÃ  )r   r(   Ú	ExceptionrB   )r  s    rd   Útest_check_fit_check_is_fittedrÌ  Ô  sc   € ô/”Mô /ô" 
”	Ð!JÔ	Kñ RÜ! +©yÀ-Ô/PÔQ÷Rô ˜k©9¸hÔ+GÔHÜ˜k©9¸kÔ+JÕK÷	Rð Rús   ¡A$Á$A-c                  ól  —  G d„ dt         «      } t        j                  d¬«      5 }t        d | «       «       d d d «       D �cg c]  }|j                  ‘Œ c}rJ ‚ G d„ dt         «      }d}t        t        |¬	«      5  t        d |«       «       d d d «       y # 1 sw Y   ŒbxY wc c}w # 1 sw Y   y xY w)
Nc                   ó   — e Zd Zd„ Zy)ú-test_check_requires_y_none.<locals>.Estimatorc                 ó"   — t        ||«      \  }}y rt   )rX   ru   s      rd   ry   z1test_check_requires_y_none.<locals>.Estimator.fitï  s   € Ü˜Q “?‰DˆA‰qrf   Nr£   rp   rf   rd   r  rÏ  î  s   „ ó	#rf   r  Tr¶  rÝ  c                   ó   — e Zd Zd„ Zy)ú;test_check_requires_y_none.<locals>.EstimatorWithWrongErrorc                 ó|   — 	 t        ||«      \  }}y # t        $ r }t        |«      dk(  sJ ‚t        d«      ‚d }~ww xY w)Nz;estimator requires y to be passed, but the target y is Nonez+This is the wrong message that raises error)rX   r­   Ústr)rv   rw   rx   Úves       rd   ry   z?test_check_requires_y_none.<locals>.EstimatorWithWrongError.fitú  sR   € ð	PÜ   A“‘�‘1øÜò Pô ˜2“wØQòð ð ô !Ð!NÓOÐOûðPús   ‚ ’	;›6¶;Nr£   rp   rf   rd   ÚEstimatorWithWrongErrorrÒ  ù  s   „ ó
	Prf   rÖ  zxYour estimator raised a ValueError, but with the incorrect or incomplete error message to be considered a graceful fail.r–  )r   r¸  r¹  rM   Úmessager(   r­   )r  r·  rÂ   rÖ  rA  s        rd   Útest_check_requires_y_nonerØ  í  s±   € ô#”Mô #ô 
×	 Ñ	 ¨Ô	-ð 8°Ü˜k©9«;Ô7÷8ð $*Ö*˜a�—	“	Ó*Ð*Ð*ôP¤-ô Pð	Eð ô 
”
 'Ô	*ñ FÜ˜kÑ+BÓ+DÔE÷Fð F÷18ð 8üò +÷(Fð Fús   ¦BÁB%Á>B*ÂB"Â*B3c                  ó  — t         t        t        fD ]k  } t        t	         | «       d¬«      «      }t
        |v sJ ‚t        |v sJ ‚ G d„ d| «      }t        t	         |«       d¬«      «      }t
        |vsJ ‚t        |vrŒkJ ‚ y )NTr¶  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú@test_non_deterministic_estimator_skip_tests.<locals>.MyEstimatorc                 ó2   •— t         ‰| �  «       }d|_        |S rz  )r®   re  Únon_deterministicrh  s     €rd   re  zQtest_non_deterministic_estimator_skip_tests.<locals>.MyEstimator.__sklearn_tags__  s   ø€ Ü‘wÑ/Ó1�Ø)-�Ô&Ø�rf   ©rl   rm   rn   re  rµ   r¶   s   @rd   ÚMyEstimatorrÛ    s   ø„ ÷ð rf   rß  )r%   r$   r#   rï  r+   rD   rE   )r  Ú	all_testsrß  s      rd   Ú+test_non_deterministic_estimator_skip_testsrá    sŒ   € ô )Ô*:Ô<MÐNò @ˆ	ÜÔ*©9«;¸tÔDÓEˆ	Ü4¸	ÑAÐAÐAÜ.°)Ñ;Ð;Ð;ô	˜)ô 	ô Ô*©;«=ÀÔFÓGˆ	Ü4¸IÑEÐEÐEÜ.°iÒ?Ð?Ð?ñ@rf   c            	      ó"  —  G d„ dt         t        «      }  | «       }t        |j                  j                  |«      �J ‚ G d„ d| «      } |«       }d}t        t        |¬«      5  t        |j                  j                  |«       ddd«       t        t        dd	d
¬«      g|j                  d<    |«       }t        |j                  j                  |«       t        t        ddd
¬«      t        t        ddd
¬«      t        t        ddd
¬«      t        t        dd	d¬«      g}d}|D ]S  }|g|j                  d<    |«       }t        t        |¬«      5  t        |j                  j                  |«       ddd«       ŒU y# 1 sw Y   ŒöxY w# 1 sw Y   ŒlxY w)zHCheck the test for the contamination parameter in the outlier detectors.c                   ó(   — e Zd ZdZdd„Zdd„Zdd„Zy)	úJtest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraintz.Outlier detector without parameter validation.c                 ó   — || _         y rt   )Úcontamination)rv   ræ  s     rd   rˆ   zStest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraint.__init__)  s
   € Ø!.ˆDÕrf   Nc                 ó   — | S rt   rp   )rv   rw   rx   rý   s       rd   ry   zNtest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraint.fit,  r.  rf   c                 óF   — t        j                  |j                  d   «      S r|   r}   ru   s      rd   r‚   zRtest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraint.predict/  s   € Ü—7‘7˜1Ÿ7™7 1™:Ó&Ð&rf   )gš™™™™™¹?rZ  rt   r2  rp   rf   rd   Ú OutlierDetectorWithoutConstrainträ  &  s   „ Ù<ó	/ó	ô	'rf   ré  Nc                   ó$   — e Zd Zd edh«      giZy)úGtest_check_outlier_contamination.<locals>.OutlierDetectorWithConstraintræ  ÚautoN)rl   rm   rn   r    Ú_parameter_constraintsrp   rf   rd   ÚOutlierDetectorWithConstraintrë  7  s   „ Ø"1±JÀ¸xÓ4HÐ3IÐ!JÑrf   rî  zDcontamination constraints should contain a Real Interval constraint.r–  r   g      à?Úright)Úclosedræ  rž   r`  r)  Úleftz<contamination constraint should be an interval in \(0, 0.5\])r
   r   rH   r²   rl   r(   r�  r   r   rí  r   )ré  Údetectorrî  rA  Úincorrect_intervalsÚintervals         rd   Ú test_check_outlier_contaminationrõ  !  s�  € ô

'¬<¼ô 
'ñ 0Ó1€HÜ& x×'9Ñ'9×'BÑ'BÀHÓMÐUÐUÐUôKÐ(Hô Kñ -Ó.€HØT€GÜ	” gÔ	.ñ KÜ# H×$6Ñ$6×$?Ñ$?ÀÔJ÷Kô
 	”�q˜# gÔ.ðMÐ!×8Ñ8¸ÑIñ -Ó.€HÜ × 2Ñ 2× ;Ñ ;¸XÔFô 	”˜1˜a¨Ô0Ü”�r˜1 WÔ-Ü”�q˜! GÔ,Ü”�q˜# fÔ-ð	Ðð N€GØ'ò OˆàðQ
Ð%×<Ñ<¸_ÑMñ 1Ó2ˆÜ”N¨'Ô2ñ 	OÜ'¨×(:Ñ(:×(CÑ(CÀXÔN÷	Oð 	OñO÷%Kð Kú÷.	Oð 	Oús   Á#!E9Å!FÅ9FÆF	c                  ó4   — t        d¬«      } t        d| «       y)zÐCheck that in case with some probabilities ties, we relax the
    ranking comparison with the decision function.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24025
    Úlog_loss)Úlossr   N)r   r5   )rÝ  s    rd   Útest_decision_proba_tie_rankingrù  W  s   € ô  :Ô.€IÜ$ _°iÕ@rf   c                  ó6  — t        «       } t        t        | d¬«      «      }t        t        | d¬«      «      }t        |«      t        |«      kD  sJ ‚d„ }|D �ch c]
  } ||«      ’Œ }}|D �ch c]
  } ||«      ’Œ }}|j	                  |«      sJ ‚y c c}w c c}w )NTr¶  Fc                 óf   — 	 | j                   S # t        $ r | j                  j                   cY S w xY wrt   )rl   rõ  Úfunc)r¢  s    rd   Úget_check_namez4test_yield_all_checks_legacy.<locals>.get_check_namej  s0   € ð	'Ø—>‘>Ð!øÜò 	'Ø—:‘:×&Ñ&Ò&ð	'ús   ‚ Ž0¯0)r#   rï  r+   r-  Úissubset)rÝ  Úlegacy_checksÚnon_legacy_checksrý  r¢  Únon_legacy_check_namesÚlegacy_check_namess          rd   Útest_yield_all_checks_legacyr  a  s¡   € ä!Ó#€IäÔ*¨9¸TÔBÓC€MÜÔ.¨yÀÔGÓHÐäˆ}Ó¤Ð$5Ó 6Ò6Ð6Ð6ò'ð BSÖS¸™n¨UÕ3ÐSÐÐSØ=JÖK°E™.¨Õ/ÐKÐÐKØ!×*Ñ*Ð+=Ô>Ð>Ñ>ùò TùÚKs   ÁBÁ,Bc                  ó˜   —  G d„ dt         «      }  | «       }d}t        t        |¬«      5  t        d|«       ddd«       y# 1 sw Y   yxY w)zICheck that the right error is raised when the estimator is not cloneable.c                   ó   — e Zd Zd„ Zy)ú:test_check_estimator_cloneable_error.<locals>.NotCloneablec                 ó   — t        d«      ‚)Nz This estimator is not cloneable.©ÚNotImplementedErrorr"  s    rd   Ú__sklearn_clone__zLtest_check_estimator_cloneable_error.<locals>.NotCloneable.__sklearn_clone__z  s   € Ü%Ð&HÓIÐIrf   N)rl   rm   rn   r
  rp   rf   rd   ÚNotCloneabler  y  s   „ ó	Jrf   r  zCloning of .* failed with errorr–  N)r   r(   r�  r9   )r  rÝ  r¥  s      rd   Ú$test_check_estimator_cloneable_errorr  v  sG   € ôJ”}ô Jñ “€IØ
+€CÜ	” cÔ	*ñ =Ü! .°)Ô<÷=÷ =ñ =úó   ªA Á A	c                  ó˜   —  G d„ dt         «      }  | «       }d}t        t        |¬«      5  t        d|«       ddd«       y# 1 sw Y   yxY w)zMCheck that the right error is raised when the estimator does not have a repr.c                   ó   — e Zd Zd„ Zy)ú*test_estimator_repr_error.<locals>.NotReprc                 ó   — t        d«      ‚)Nz$This estimator does not have a repr.r  r"  s    rd   Ú__repr__z3test_estimator_repr_error.<locals>.NotRepr.__repr__‡  s   € Ü%Ð&LÓMÐMrf   N)rl   rm   rn   r  rp   rf   rd   ÚNotReprr  †  s   „ ó	Nrf   r  zRepr of .* failed with errorr–  N)r   r(   r�  r:   )r  rÝ  r¥  s      rd   Útest_estimator_repr_errorr  ƒ  sG   € ôN”-ô Nñ “	€IØ
(€CÜ	” cÔ	*ñ 3Ü˜Y¨	Ô2÷3÷ 3ñ 3úr  c                  óB  —  G d„ d«      }  G d„ d«      } G d„ d«      }d}t        t        |¬«      5  t        d | «       «       d d d «       t        t        |¬«      5  t        d |«       «       d d d «       t        d |«       «       y # 1 sw Y   ŒFxY w# 1 sw Y   Œ'xY w)	Nc                   ó   — e Zd Zd„ Zy)ú8test_check_estimator_tags_renamed.<locals>.BadEstimator1c                  ó   — y rt   rp   r"  s    rd   Ú
_more_tagszCtest_check_estimator_tags_renamed.<locals>.BadEstimator1._more_tags’  ó   € Ørf   N)rl   rm   rn   r  rp   rf   rd   ÚBadEstimator1r  ‘  ó   „ ó	rf   r  c                   ó   — e Zd Zd„ Zy)ú8test_check_estimator_tags_renamed.<locals>.BadEstimator2c                  ó   — y rt   rp   r"  s    rd   Ú	_get_tagszBtest_check_estimator_tags_renamed.<locals>.BadEstimator2._get_tags–  r  rf   N)rl   rm   rn   r   rp   rf   rd   ÚBadEstimator2r  •  r  rf   r!  c                   ó   — e Zd Zd„ Zd„ Zy)ú8test_check_estimator_tags_renamed.<locals>.OkayEstimatorc                  ó   — y rt   rp   r"  s    rd   re  zItest_check_estimator_tags_renamed.<locals>.OkayEstimator.__sklearn_tags__š  r  rf   c                  ó   — y rt   rp   r"  s    rd   r  zCtest_check_estimator_tags_renamed.<locals>.OkayEstimator._more_tags�  r  rf   N)rl   rm   rn   re  r  rp   rf   rd   ÚOkayEstimatorr#  ™  s   „ ò	ó	rf   r&  z.has defined either `_more_tags` or `_get_tags`r–  )r(   r¡  r>   )r  r!  r&  r¥  s       rd   Ú!test_check_estimator_tags_renamedr'  �  s“   € ÷ñ ÷ñ ÷ñ ð ;€CÜ	”	 Ô	%ñ GÜ$ _±m³oÔF÷Gä	”	 Ô	%ñ GÜ$ _±m³oÔF÷Gô ! ±-³/ÕB÷Gð Gú÷Gð Gús   ²B	ÁBÂ	BÂBc                  ó”   —  G d„ dt         «      } d}t        t        |¬«      5  t        d | «       «       ddd«       y# 1 sw Y   yxY w)zeCheck that when the estimator has the wrong tags.classifier_tags.multi_class
    set, the test fails.c                   ó   — e Zd Zd„ Zy)úEtest_check_classifier_not_supporting_multiclass.<locals>.BadEstimatorc                 ó   — | S rt   rp   ru   s      rd   ry   zItest_check_classifier_not_supporting_multiclass.<locals>.BadEstimator.fit³  r.  rf   Nr£   rp   rf   rd   ÚBadEstimatorr*  °  s   „ ó	rf   r,  z=The estimator tag `tags.classifier_tags.multi_class` is Falser–  N)r   r(   r�  r/   ©r,  r¥  s     rd   Ú/test_check_classifier_not_supporting_multiclassr.  ¬  sE   € ô”}ô ð J€CÜ	” cÔ	*ñ SÜ2°>Á<Ã>ÔR÷S÷ Sñ Sús	   £>¾Ac                  óÌ   — dD ]C  } 	 t        j                  | «       t	        «       j                  | ¬«      }t        |ddddœ¬«       ŒE y # t        $ r t        d| › d�«      ‚w xY w)N)rü   ÚpolarszLibrary z is not installed)r  z_this check is expected to fail because pandas and polars are not compatible with the array api.)r,   Úcheck_array_api_mixed_inputsÚcheck_array_api_same_namespace)rÝ  r  )rš  Ú
__import__rO  r&   r   Ú
set_outputr8   )ÚlibrÝ  s     rd   Útest_estimator_with_set_outputr6  ¼  sƒ   € ð $ò 
ˆð	>Ü× Ñ  Ô%ô #Ó$×/Ñ/¸#Ð/Ó>ˆ	ÜØð>ð>ð>ñ$ö	
ñ
øô ò 	>Ü˜X c UÐ*;Ð<Ó=Ð=ð	>ús   ‡A
Á
A#c                  óD   — t        t        «       «      } t        | «      sJ ‚y)z0Check that checks_generator returns a generator.N)rP   r   r   )Úall_instance_gen_checkss    rd   Útest_estimator_checks_generatorr9  Ù  s    € ä8Ô9KÓ9MÓNÐÜÐ.Ô/Ð/Ñ/rf   c                  ó~   — t        t        d¬«      5  t        t        «       dd„ ¬«       ddd«       y# 1 sw Y   yxY w)zMCheck that check_estimator fails correctly with on_fail='raise' and callback.z9callback cannot be provided together with on_fail='raise'r–  Úraisec                   ó   — y rt   rp   rp   rf   rd   rÈ  zDtest_check_estimator_callback_with_fast_fail_error.<locals>.<lambda>ä  s   � rf   )rÚ  rµ  N)r(   r­   r8   r   rp   rf   rd   Ú2test_check_estimator_callback_with_fast_fail_errorr=  ß  s;   € ä	ÜÐUô
ñ Vô 	Ô*Ó,°gÉÕU÷V÷ Vñ Vús   ’3³<c                  óÄ   —  G d„ dt         t        «      } d}t        t        t	        j
                  |«      ¬«      5  t        d | «       «       ddd«       y# 1 sw Y   yxY w)zFTest that the check raises an error when the mixin order is incorrect.c                   ó   — e Zd Zdd„Zy)ú,test_check_mixin_order.<locals>.BadEstimatorNc                 ó   — | S rt   rp   ru   s      rd   ry   z0test_check_mixin_order.<locals>.BadEstimator.fitë  r.  rf   rt   r£   rp   rf   rd   r,  r@  ê  s   „ ô	rf   r,  z8TransformerMixin comes before/left side of BaseEstimatorr–  N)r   r   r(   r�  ÚreÚescaperF   r-  s     rd   Útest_check_mixin_orderrD  ç  sL   € ô”}Ô&6ô ð E€CÜ	”¤b§i¡i°£nÔ	5ñ :Ü˜.©,«.Ô9÷:÷ :ñ :ús   »AÁAc                  ó�   —  G d„ dt         «      } t        t        d¬«      5  t        d | «       «       d d d «       y # 1 sw Y   y xY w)Nc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )úHtest_check_positive_only_tag_during_fit.<locals>.RequiresPositiveXBadTagc                 óF   •— t         ‰| �  «       }d|j                  _        |S rd  )r®   re  rr  rs  rh  s     €rd   re  zYtest_check_positive_only_tag_during_fit.<locals>.RequiresPositiveXBadTag.__sklearn_tags__õ  s!   ø€ Ü‘7Ñ+Ó-ˆDØ,1ˆD�O‰OÔ)ØˆKrf   rÞ  r¶   s   @rd   ÚRequiresPositiveXBadTagrG  ô  s   ø„ ÷	ð 	rf   rI  z5This happens when passing negative input values as X.r–  )rl  r(   r�  rK   )rI  s    rd   Ú'test_check_positive_only_tag_during_fitrJ  ó  sG   € ôÔ"<ô ô 
ÜÐUô
ñ 
ô 	+Ø%Ñ'>Ó'@ô	
÷
÷ 
ñ 
ús	   ¡<¼A)Ñrš  rB  r]   r  r¸  Úinspectr   Únumbersr   r   r  Únumpyr~   Úscipy.sparsert  ræ   Úsklearnr   r   Úsklearn.baser   r	   r
   r   Úsklearn.clusterr   Úsklearn.datasetsr   r   Úsklearn.decompositionr   Úsklearn.exceptionsr   r   r   Úsklearn.linear_modelr   r   r   r   Úsklearn.mixturer   Úsklearn.neighborsr   r	  r   Úsklearn.svmr   r   r
  r   r   r   Úsklearn.utils._param_validationr   r    Ú-sklearn.utils._test_common.instance_generatorr!   r"   Úsklearn.utils._testingr#   r$   r%   r&   r'   r(   Úsklearn.utils.estimator_checksr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   Úsklearn.utils.fixesrR   rS   Úsklearn.utils.metaestimatorsrT   Úsklearn.utils.multiclassrU   Úsklearn.utils.validationrV   rW   rX   rY   re   ri   r­   rk   rr   r…   r�   r™   r    r¥   r¹   r¾   rÆ   rË   rÔ   r×   rï   rô   r   r  r  r  r$  r4  rA  rJ  rS  r\  rl  rv  r}  rƒ  r‰  rž  r¦  r­  r°  r´  r¾  rÀ  rÃ  rÅ  rÇ  rÊ  rÐ  rÓ  rÖ  rØ  rò  r÷  rü  r  r  r  r  r4  r9  r<  r?  rC  rE  rh  rr  rx  rŠ  rŒ  r�  rl   rœ  r£  r§  r¯  r¸  r»  rÌ  rØ  rá  rõ  rù  r  r  r  r'  r.  r6  r9  r=  rD  rJ  rp   rf   rd   ú<module>ra     s  ðó
 Û 	Û 
Û Û Ý ß "ã Û Ý ç .ß WÓ WÝ +÷õ &÷ñ ÷
ó õ ,Ý 1Ý 0ß "ß @Ñ @ß @÷÷÷ ÷*÷ *÷ *÷ *÷ *÷ *÷ *÷ *÷ *÷ *õ *÷V @Ý 5Ý 3÷ó òòô˜Jô ô#˜¨ô #ô#�-ô #ô˜ô ô˜Mô ô ô ô˜]ô ô"˜=ô ô	˜]ô 	ô¨ô ô"˜=ô ô&Ð(ô ô#Ð*ô #ô(	#Ð&7ô 	#ô# ]ô #ô(Ð#4ô ô, ô ô$˜-ô $ô ˜mô ô*"#Ð$5ô "#ôJ ¨ô  ôF(Ð(¨-ô (ô"4 ]ô 4ô,˜}ô ôÐ5ô ô"Ð!1ô ô 
Ð!1ô 
ôÐ"4ô ô	˜=ô 	ô'�]ô 'ò
ò0ò	Lò,òRð (ñ9ó (ð9òIò4òò"Lò	Fò
òVòò<
òEð6 ,ð (ñ!3ó (ó	 ,ð
!3òH-ò,Pò^6ð ,ñ,ó ,ð,òD	Nò.
ðh (ñ
Ró (ð
Rò
ò
òLô 
 O°]ô 
ò(XòVy
òx2
òjò
ð (ñ:ó (ð:ð ˆzÒñ Ôò1ò.Fð@ (ñ?ó (ð?ð( (ñ7ó (ð7ò0"òN#òLò2FòB@ò&3OòlAò?ò*
=ò
3òCò8Sð  (ñ
ó (ð
ò80òVò	:ó
rf   