Ë
    ÷Q(hËã  ã                   óT  — 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  G d„ dex«      Zy G d„ dee«      Zz 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 d.„ d/ez«      Z„ G d0„ d1ez«      Z… G d2„ d3ez«      Z† G d4„ d5e«      Z‡ G d6„ d7ez«      Zˆ G d8„ d9e«      Z‰ G d:„ d;e«      ZŠ G d<„ d=e«      Z‹ G d>„ d?ez«      ZŒ G d@„ dAe«      Z� G dB„ dCee«      ZŽ G dD„ dEe«      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–dT„ Z—dU„ Z˜dV„ Z™dW„ ZšdX„ Z›dY„ ZœdZ„ Z�d[„ Zžd\„ ZŸd]„ Z d^„ Z¡d_„ Z¢d`„ Z£da„ Z¤db„ Z¥dc„ Z¦dd„ Z§de„ Z¨df„ Z©dg„ Zªdh„ Z«di„ Z¬dj„ Z­dk„ Z®dl„ Z¯dm„ Z°dn„ Z± G do„ dpee«      Z²dq„ Z³dr„ Z´ds„ Zµdt„ Z¶du„ Z·dv„ Z¸e¹dwk(  r e¶«        dx„ Zºdy„ Z»dz„ 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È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                   ó   — 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__© ó    úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_estimator_checks.pyr[   r[   l   s   „ òra   r[   c                   ó   — e Zd Zd„ Zd„ Zy)ÚBaseBadClassifierc                 ó   — | S ©Nr`   ©ÚselfÚXÚys      rb   ÚfitzBaseBadClassifier.fitu   ó   € Øˆra   c                 óF   — t        j                  |j                  d   «      S ©Nr   ©ÚnpÚonesÚshape©rh   ri   s     rb   ÚpredictzBaseBadClassifier.predictx   s   € Ü�w‰w�q—w‘w˜q‘zÓ"Ð"ra   N©r\   r]   r^   rk   rt   r`   ra   rb   rd   rd   t   s   „ òó#ra   rd   c                   ó"   — e Zd Zdd„Zdd„Zd„ Zy)ÚChangesDictc                 ó   — || _         y rf   )Úkey)rh   ry   s     rb   Ú__init__zChangesDict.__init__}   s	   € Øˆ�ra   Nc                 ó&   — t        | ||«      \  }}| S rf   ©rY   rg   s      rb   rk   zChangesDict.fit€   ó   € Ü˜T 1 aÓ(‰ˆˆ1Øˆra   c                 ój   — t        |«      }d| _        t        j                  |j                  d   «      S )Niè  r   )rV   ry   rp   rq   rr   rs   s     rb   rt   zChangesDict.predict„   s)   € Ü˜‹NˆØˆŒÜ�w‰w�q—w‘w˜q‘zÓ"Ð"ra   ©r   rf   ©r\   r]   r^   rz   rk   rt   r`   ra   rb   rw   rw   |   s   „ óóó#ra   rw   c                   ó   — e Zd Zdd„Zdd„Zy)ÚSetsWrongAttributec                 ó   — || _         y rf   )Úacceptable_key)rh   r„   s     rb   rz   zSetsWrongAttribute.__init__‹   s
   € Ø,ˆÕra   Nc                 ó4   — d| _         t        | ||«      \  }}| S rn   ©Úwrong_attributerY   rg   s      rb   rk   zSetsWrongAttribute.fitŽ   ó!   € Ø ˆÔÜ˜T 1 aÓ(‰ˆˆ1Øˆra   r   rf   ©r\   r]   r^   rz   rk   r`   ra   rb   r‚   r‚   Š   s   „ ó-ôra   r‚   c                   ó   — e Zd Zdd„Zdd„Zy)ÚChangesWrongAttributec                 ó   — || _         y rf   )r‡   )rh   r‡   s     rb   rz   zChangesWrongAttribute.__init__•   ó
   € Ø.ˆÕra   Nc                 ó4   — d| _         t        | ||«      \  }}| S ©Né   r†   rg   s      rb   rk   zChangesWrongAttribute.fit˜   rˆ   ra   r   rf   r‰   r`   ra   rb   r‹   r‹   ”   s   „ ó/ôra   r‹   c                   ó   — e Zd Zdd„Zy)ÚChangesUnderscoreAttributeNc                 ó4   — d| _         t        | ||«      \  }}| S r�   )Ú_good_attributerY   rg   s      rb   rk   zChangesUnderscoreAttribute.fitŸ   rˆ   ra   rf   ©r\   r]   r^   rk   r`   ra   rb   r’   r’   ž   s   „ ôra   r’   c                   ó.   ‡ — e Zd Zdd„Zˆ fd„Zdd„Zˆ xZS )ÚRaisesErrorInSetParamsc                 ó   — || _         y rf   ©Úp©rh   rš   s     rb   rz   zRaisesErrorInSetParams.__init__¦   ó	   € Øˆ�ra   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 0r`   )ÚpopÚ
ValueErrorrš   ÚsuperÚ
set_params©rh   Úkwargsrš   Ú	__class__s      €rb   r¡   z!RaisesErrorInSetParams.set_params©   sD   ø€ Ø�&‰=Ø—
‘
˜3“ˆAØ�1ŠuÜ Ð!9Ó:Ð:ØˆDŒFÜ‰wÑ!Ñ+ FÑ+Ð+ra   c                 ó&   — t        | ||«      \  }}| S rf   r|   rg   s      rb   rk   zRaisesErrorInSetParams.fit±   r}   ra   r   rf   ©r\   r]   r^   rz   r¡   rk   Ú__classcell__©r¤   s   @rb   r—   r—   ¥   ó   ø„ óô,÷ra   r—   c                   ó(   — e Zd Z e«       fd„Zdd„Zy)ÚHasMutableParametersc                 ó   — || _         y rf   r™   r›   s     rb   rz   zHasMutableParameters.__init__·   rœ   ra   Nc                 ó&   — t        | ||«      \  }}| S rf   r|   rg   s      rb   rk   zHasMutableParameters.fitº   r}   ra   rf   )r\   r]   r^   Úobjectrz   rk   r`   ra   rb   r«   r«   ¶   s   „ Ù›ó ôra   r«   c                   óB   — e Zd Zd ej                  d«      efd„Zdd„Zy)ÚHasImmutableParametersé*   c                 ó.   — || _         || _        || _        y rf   )rš   ÚqÚr)rh   rš   r³   r´   s       rb   rz   zHasImmutableParameters.__init__Á   s   € ØˆŒØˆŒØˆ�ra   Nc                 ó&   — t        | ||«      \  }}| S rf   r|   rg   s      rb   rk   zHasImmutableParameters.fitÆ   r}   ra   rf   )r\   r]   r^   rp   Úint32r®   rz   rk   r`   ra   rb   r°   r°   ¿   s   „ à˜x˜rŸx™x¨›|¨vó ô
ra   r°   c                   ó.   ‡ — e Zd Zdd„Zˆ fd„Zdd„Zˆ xZS )Ú"ModifiesValueInsteadOfRaisingErrorc                 ó   — || _         y rf   r™   r›   s     rb   rz   z+ModifiesValueInsteadOfRaisingError.__init__Ì   rœ   ra   c                 óh   •— d|v r|j                  d«      }|dk  rd}|| _        t        ‰| �  di |¤ŽS )Nrš   r   r`   )rž   rš   r    r¡   r¢   s      €rb   r¡   z-ModifiesValueInsteadOfRaisingError.set_paramsÏ   s=   ø€ Ø�&‰=Ø—
‘
˜3“ˆAØ�1ŠuØ�ØˆDŒFÜ‰wÑ!Ñ+ FÑ+Ð+ra   c                 ó&   — t        | ||«      \  }}| S rf   r|   rg   s      rb   rk   z&ModifiesValueInsteadOfRaisingError.fit×   r}   ra   r   rf   r¦   r¨   s   @rb   r¸   r¸   Ë   r©   ra   r¸   c                   ó.   ‡ — e Zd Zdd„Zˆ fd„Zdd„Zˆ xZS )ÚModifiesAnotherValuec                 ó    — || _         || _        y rf   )ÚaÚb)rh   r¿   rÀ   s      rb   rz   zModifiesAnotherValue.__init__Ý   s   € ØˆŒØˆ�ra   c                 óŽ   •— d|v r2|j                  d«      }|| _        |€|j                  d«       d| _        t        ‰| �  di |¤ŽS )Nr¿   rÀ   Úmethod2r`   )rž   r¿   rÀ   r    r¡   )rh   r£   r¿   r¤   s      €rb   r¡   zModifiesAnotherValue.set_paramsá   sH   ø€ Ø�&‰=Ø—
‘
˜3“ˆAØˆDŒFØˆyØ—
‘
˜3”Ø"�”Ü‰wÑ!Ñ+ FÑ+Ð+ra   c                 ó&   — t        | ||«      \  }}| S rf   r|   rg   s      rb   rk   zModifiesAnotherValue.fitê   r}   ra   )r   Úmethod1rf   r¦   r¨   s   @rb   r½   r½   Ü   s   ø„ óô,÷ra   r½   c                   ó   — e Zd Zd„ Zy)ÚNoCheckinPredictc                 ó&   — t        | ||«      \  }}| S rf   r|   rg   s      rb   rk   zNoCheckinPredict.fitð   r}   ra   Nr•   r`   ra   rb   rÆ   rÆ   ï   s   „ óra   rÆ   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚNoSparseClassifierNc                 ó   — || _         y rf   ©Úraise_for_type©rh   rÌ   s     rb   rz   zNoSparseClassifier.__init__ö   ó
   € à,ˆÕra   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Ÿ   ©rh   ri   rj   Úcorrect_types       rb   rk   zNoSparseClassifier.fitú   sj   € Ü˜T 1 a¸¸u°~ÔF‰ˆˆ1Ø×Ñ .Ò0Ü% a¬¯©Ó4‰LØ× Ñ  OÒ3Ü% a¬¯©Ó5ˆLÙÜÐ0Ó1Ð1Øˆra   c                 ó\   — t        |«      }t        j                  |j                  d   «      S rn   ©rV   rp   rq   rr   rs   s     rb   rt   zNoSparseClassifier.predict  ó"   € Ü˜‹NˆÜ�w‰w�q—w‘w˜q‘zÓ"Ð"ra   rf   r€   r`   ra   rb   rÉ   rÉ   õ   s   „ ó-òó#ra   rÉ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚCorrectNotFittedErrorClassifierc                 ót   — t        | ||«      \  }}t        j                  |j                  d   «      | _        | S r�   )rY   rp   rq   rr   Úcoef_rg   s      rb   rk   z#CorrectNotFittedErrorClassifier.fit
  s1   € Ü˜T 1 aÓ(‰ˆˆ1Ü—W‘W˜QŸW™W Q™ZÓ(ˆŒ
Øˆra   c                 ór   — t        | «       t        |«      }t        j                  |j                  d   «      S rn   )rW   rV   rp   rq   rr   rs   s     rb   rt   z'CorrectNotFittedErrorClassifier.predict  s*   € Ü˜ÔÜ˜‹NˆÜ�w‰w�q—w‘w˜q‘zÓ"Ð"ra   Nru   r`   ra   rb   rá   rá   	  s   „ òó
#ra   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Ÿ   )rh   ri   rj   Úsample_weightrí   s        rb   rk   z"NoSampleWeightPandasSeriesType.fit  sD   € äØ�!�Q nÀ4ÐSWô
‰ˆˆ1õ 	"ä�m VÔ,ÜØPóð ð ˆra   c                 ó\   — t        |«      }t        j                  |j                  d   «      S rn   rÞ   rs   s     rb   rt   z&NoSampleWeightPandasSeriesType.predict$  rß   ra   rf   ru   r`   ra   rb   ræ   ræ     s   „ óó#ra   ræ   c                   ó   — e Zd Zdd„Zd„ Zy)ÚBadBalancedWeightsClassifierNc                 ó   — || _         y rf   )Úclass_weight)rh   rô   s     rb   rz   z%BadBalancedWeightsClassifier.__init__*  s
   € Ø(ˆÕra   c                 óÂ   — ddl m} ddlm}  |«       j	                  |«      }|j
                  } || j                  ||¬«      }| j                  dk(  r|dz  }|| _        | S )Nr   )ÚLabelEncoder)Úcompute_class_weight)Úclassesrj   Úbalancedç      ð?)Úsklearn.preprocessingrö   Úsklearn.utilsr÷   rk   Úclasses_rô   rã   )rh   ri   rj   rö   r÷   Úlabel_encoderrø   rô   s           rb   rk   z BadBalancedWeightsClassifier.fit-  sb   € Ý6Ý6á$›×*Ñ*¨1Ó-ˆØ×(Ñ(ˆÙ+¨D×,=Ñ,=ÀwÐRSÔTˆð ×Ñ 
Ò*Ø˜CÑˆLð "ˆŒ
Øˆra   rf   r‰   r`   ra   rb   rò   rò   )  s   „ ó)óra   rò   c                   ó   — e Zd Zdd„Zd„ Zy)ÚBadTransformerWithoutMixinNc                 ó   — t        | |«      }| S rf   r|   rg   s      rb   rk   zBadTransformerWithoutMixin.fit@  s   € Ü˜$ Ó"ˆØˆra   c                 ó8   — t        | «       t        | |d¬«      }|S )NF©Úreset)rW   rY   rs   s     rb   Ú	transformz$BadTransformerWithoutMixin.transformD  s   € Ü˜ÔÜ˜$ ¨Ô/ˆØˆra   rf   )r\   r]   r^   rk   r  r`   ra   rb   r   r   ?  s   „ óóra   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNotInvariantPredictc                 ó.   — t        | ||ddd¬«      \  }}| S ©Nrè   Tré   r|   rg   s      rb   rk   zNotInvariantPredict.fitK  s%   € äØ�!�Q nÀ4ÐSWô
‰ˆˆ1ð ˆra   c                 óÄ   — t        |«      }|j                  d   dkD  r"t        j                  |j                  d   «      S t        j                  |j                  d   «      S )Nr   r�   )rV   rr   rp   rq   Úzerosrs   s     rb   rt   zNotInvariantPredict.predictR  sH   € ä˜‹NˆØ�7‰7�1‰:˜Š>Ü—7‘7˜1Ÿ7™7 1™:Ó&Ð&Ü�x‰x˜Ÿ™ ™
Ó#Ð#ra   Nru   r`   ra   rb   r  r  J  s   „ òó$ra   r  c                   ó   — e Zd Zd„ Zd„ Zy)ÚNotInvariantSampleOrderc                 ó<   — t        | ||ddd¬«      \  }}|| _        | S r	  )rY   Ú_Xrg   s      rb   rk   zNotInvariantSampleOrder.fit[  s,   € ÜØ�!�Q nÀ4ÐSWô
‰ˆˆ1ð ˆŒØˆra   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   rp   Úarray_equivÚsortr  Úanyr  rr   rs   s     rb   rt   zNotInvariantSampleOrder.predictc  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ˆra   Nru   r`   ra   rb   r  r  Z  s   „ òó	ra   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 rf   )Úraise_when_single_class)rh   r  s     rb   rz   z&OneClassSampleErrorClassifier.__init__s  s
   € Ø'>ˆÕ$ra   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_rp   Úuniquerý   rr   r  rŸ   r×   ÚndarrayÚlenÚcount_nonzeroÚbincount)rh   ri   rj   rï   Ú
n_classes_s        rb   rk   z!OneClassSampleErrorClassifier.fitv  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àˆra   c                 óÎ   — t        | «       t        |«      }| j                  r"t        j                  |j
                  d   «      S t        j                  |j
                  d   «      S rn   )rW   rV   r  rp   r  rr   rq   rs   s     rb   rt   z%OneClassSampleErrorClassifier.predictŒ  sJ   € Ü˜ÔÜ˜‹NˆØ×!Ò!Ü—8‘8˜AŸG™G A™JÓ'Ð'Ü�w‰w�q—w‘w˜q‘zÓ"Ð"ra   )Frf   ©r\   r]   r^   r_   rz   rk   rt   r`   ra   rb   r  r  o  s   „ ñ#ó?óó,#ra   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 rf   rË   rÍ   s     rb   rz   z*LargeSparseNotSupportedClassifier.__init__˜  rÎ   ra   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Õ   r)  Úint64z(Estimator doesn't support 64-bit indices)rÑ   rÐ   )rY   rÌ   r×   rØ   rÙ   rÚ   ÚformatÚrowÚdtypeÚcolrŸ   ÚindicesÚindptrrÛ   s       rb   rk   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ð'ñ ð >ð >ó>ð ð
 ˆra   rf   )r\   r]   r^   r_   rz   rk   r`   ra   rb   r&  r&  ”  s   „ ñ/ó-óra   r&  c                   ó*   — e Zd Zdd„Zdd„Zdd„Zd„ Zy)ÚSparseTransformerNc                 ó   — || _         y rf   ©Úsparse_container)rh   r6  s     rb   rz   zSparseTransformer.__init__¸  s
   € Ø 0ˆÕra   c                 ó   — t        | |«       | S rf   r|   rg   s      rb   rk   zSparseTransformer.fit»  s   € Ü�d˜AÔØˆra   c                 óD   — | j                  ||«      j                  |«      S rf   )rk   r  rg   s      rb   Úfit_transformzSparseTransformer.fit_transform¿  s   € Ø�x‰x˜˜1‹~×'Ñ'¨Ó*Ð*ra   c                 óX   — t        | «       t        | |dd¬«      }| j                  |«      S )NTF)rÓ   r  )rW   rY   r6  rs   s     rb   r  zSparseTransformer.transformÂ  s+   € Ü˜ÔÜ˜$ °¸UÔCˆØ×$Ñ$ QÓ'Ð'ra   rf   )r\   r]   r^   rz   rk   r9  r  r`   ra   rb   r3  r3  ·  s   „ ó1óó+ó(ra   r3  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î   r>  r×   ÚilocÚvalue_rV   ÚImportError)rh   ri   rj   r>  s       rb   rk   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 rn   )rV   rp   Úarrayr@  rr   rs   s     rb   rt   z&EstimatorInconsistentForPandas.predictÙ  s-   € Ü˜‹NˆÜ�x‰x˜Ÿ™˜¨¯©°©
Ñ2Ó3Ð3ra   Nru   r`   ra   rb   r<  r<  È  s   „ òó 4ra   r<  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    rk   r  rý   rŸ   )rh   ri   rj   Ú	coef_initÚintercept_initrï   r¤   s         €rb   rk   zUntaggedBinaryClassifier.fità  s9   ø€ Ü‰‰�A�q˜) ^°]ÔCÜˆt�}‰}Ó Ò!ÜÐ;Ó<Ð<Øˆra   c                 ót   •— t         ‰| �  ||||¬«       t        | j                  «      dkD  rt	        d«      ‚| S )N)ri   rj   rø   rï   r  rG  )r    Úpartial_fitr  rý   rŸ   )rh   ri   rj   rø   rï   r¤   s        €rb   rK  z$UntaggedBinaryClassifier.partial_fitæ  s;   ø€ Ü‰Ñ˜a 1¨gÀ]ÐÔSÜˆt�}‰}Ó Ò!ÜÐ;Ó<Ð<Øˆra   )NNN©NN)r\   r]   r^   rk   rK  r§   r¨   s   @rb   rE  rE  Þ  s   ø„ õ÷ñ ra   rE  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 )Nrj   T)Ú
input_nameÚraise_unknownÚbinaryzCOnly binary classification is supported. The type of the target is ú.)rU   rŸ   r    rk   )rh   ri   rj   Úy_typer¤   s       €rb   rk   zTaggedBinaryClassifier.fitî  sJ   ø€ Ü ¨cÀÔFˆØ�XÒÜðØ�X˜Qð óð ô ‰w‰{˜1˜aÓ Ð ra   c                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NF)r    Ú__sklearn_tags__Úclassifier_tagsÚmulti_class©rh   Útagsr¤   s     €rb   rW  z'TaggedBinaryClassifier.__sklearn_tags__ø  s#   ø€ Ü‰wÑ'Ó)ˆØ+0ˆ×ÑÔ(Øˆra   ©r\   r]   r^   rk   rW  r§   r¨   s   @rb   rN  rN  í  s   ø„ ô!÷ð ra   rN  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    rk   ©rh   ri   rj   r¤   s      €rb   rk   zRequiresPositiveXRegressor.fitÿ  sC   ø€ ä˜T 1 a°uÈ4ÔP‰ˆˆ1Ø�‰E�;‰;Œ=ÜÐCÓDÐDÜ‰w‰{˜1˜aÓ Ð ra   c                 óh   •— t         ‰| �  «       }d|j                  _        d|j                  _        |S )NTF)r    rW  Ú
input_tagsÚpositive_onlyÚsparserZ  s     €rb   rW  z+RequiresPositiveXRegressor.__sklearn_tags__  s-   ø€ Ü‰wÑ'Ó)ˆØ(,ˆ�‰Ô%à!&ˆ�‰ÔØˆra   r\  r¨   s   @rb   r^  r^  þ  s   ø„ ô!÷ð ra   r^  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 )NTr`  r   ú negative y values not supported!ra  rb  s      €rb   rk   zRequiresPositiveYRegressor.fit  sC   ø€ Ü˜T 1 a°tÈ$ÔO‰ˆˆ1Ø�‰F�<‰<Œ>ÜÐ?Ó@Ð@Ü‰w‰{˜1˜aÓ Ð ra   c                 óF   •— t         ‰| �  «       }d|j                  _        |S ©NT)r    rW  Útarget_tagsre  rZ  s     €rb   rW  z+RequiresPositiveYRegressor.__sklearn_tags__  s#   ø€ Ü‰wÑ'Ó)ˆØ)-ˆ×ÑÔ&Øˆra   r\  r¨   s   @rb   rh  rh    s   ø„ ô!÷ð ra   rh  c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚPoorScoreLogisticRegressionc                 ó(   •— t         ‰| �  |«      dz   S r�   )r    Údecision_function)rh   ri   r¤   s     €rb   rq  z-PoorScoreLogisticRegression.decision_function  s   ø€ Ü‰wÑ(¨Ó+¨aÑ/Ð/ra   c                 óF   •— t         ‰| �  «       }d|j                  _        |S rl  )r    rW  rX  Ú
poor_scorerZ  s     €rb   rW  z,PoorScoreLogisticRegression.__sklearn_tags__  s#   ø€ Ü‰wÑ'Ó)ˆØ*.ˆ×ÑÔ'Øˆra   )r\   r]   r^   rq  rW  r§   r¨   s   @rb   ro  ro    s   ø„ ô0÷ð ra   ro  c                   ó   — e Zd Zd„ Zd„ Zy)ÚPartialFitChecksNamec                 ó    — t        | ||«       | S rf   r|   rg   s      rb   rk   zPartialFitChecksName.fit&  s   € Ü�d˜A˜qÔ!Øˆra   c                 óL   — t        | d«       }t        | |||¬«       d| _        | S )NÚ_fittedr  T)ÚhasattrrY   rx  )rh   ri   rj   r  s       rb   rK  z PartialFitChecksName.partial_fit*  s+   € Ü˜D )Ó,Ð,ˆÜ�d˜A˜q¨Õ.ØˆŒØˆra   N)r\   r]   r^   rk   rK  r`   ra   rb   ru  ru  %  s   „ òóra   ru  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚBrokenArrayAPIz=Make different predictions when using Numpy and the Array APIc                 ó   — | S rf   r`   rg   s      rb   rk   zBrokenArrayAPI.fit4  rl   ra   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Úasarrayrp   rC  )rh   ri   ÚenabledÚxpÚ_s        rb   rt   zBrokenArrayAPI.predict7  sD   € Ü“,Ð3Ñ4ˆÜ×(Ñ(¨Ó+‰ˆˆAÙØ—:‘:šiÓ(Ð(ä—8‘8šIÓ&Ð&ra   N)r\   r]   r^   r_   rk   rt   r`   ra   rb   r{  r{  1  s   „ ÙGòó'ra   r{  c                  ó6  — 	 t        j                  d«       	 t        j                  d«       t	        t
        d¬«      5  t        dt        «       dd¬	«       d d d «       y # t        $ r t        d«      ‚w xY w# t        $ r t        d«      ‚w xY w# 1 sw Y   y xY w)
NÚarray_api_compatz-array_api_compat is required to run this testÚ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{  r`   ra   rb   Útest_check_array_api_inputr‘  @  s§   € ðHÜ×ÑÐ 2Ô3ðHÜ×ÑÐ 2Ô3ô 
”Ð&>Ô	?ñ 
ÜØÜÓØ.Øõ		
÷
ð 
øô ò HÜÐFÓGÐGðHûô ò HÜÐFÓGÐGðHú÷
ð 
ús!   ‚A ˜A7 ¾BÁA4Á7BÂB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*   rp   rq   r(   Ú	TypeErrorÚsumÚmay_share_memory)Ú	not_arrayÚmsgs     rb   Ú test_not_an_array_array_functionr™  S  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 rf   r`   rg   s      rb   rk   zftest_check_fit_score_takes_y_works_on_deprecated_fit.<locals>.TestEstimatorWithDeprecatedFitMethod.fita  s   € àˆKra   N)r\   r]   r^   r   rk   r`   ra   rb   Ú$TestEstimatorWithDeprecatedFitMethodrœ  `  s   „ Ù	ÐSÓ	Tñ	ó 
Uñ	ra   rž  Útest)r   rC   )rž  s    rb   Ú4test_check_fit_score_takes_y_works_on_deprecated_fitr   \  s   € ô¬}ô ô
 ˜FÑ$HÓ$JÕKra   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    rb   Ú'test_check_estimator_with_class_removedr£  h  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    rb   Útest_mutable_default_paramsr§  o  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      rb   Ú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    rb   Ú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   rw   r¢  s    rb   Ú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æ   rA  )rí   r˜  s     rb   Ú'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    rb   Ú&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    rb   Ú$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)Nrt   zY{method} of {name} is not invariant when applied to a datasetwith different sample order.©ÚmethodÚnamer‰  r  )r  r\   r,  r(   r�  rD   ©rÁ  rÀ  r˜  s      rb   Ú*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)Nrt   z={method} of {name} is not invariant when applied to a subset.r¿  r‰  r  )r  r\   r,  r(   r�  rE   rÂ  s      rb   Ú$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.*r&  )rÉ   r\   r(   r�  r<   rS   r;   r&  ©rÁ  r˜  s     rb   Ú 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  r\   r(   r�  r3   rÈ  s     rb   Ú/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     rb   ú	<genexpr>z5test_check_estimator_not_fail_fast.<locals>.<genexpr>  sC   è ø€ ò ð ô 	�4œÓò 		
Ü�—	‘	“Óò
ñ
ó		
ñùs   ‚:<c              3   ó,   K  — | ]  }|d    dk(  –— Œ y­w)rÏ  ÚfailedNr`   rØ  s     rb   rÛ  z5test_check_estimator_not_fail_fast.<locals>.<genexpr>"  ó   è ø€ ÒD¨dˆt�H‰~ Õ)ÑDùó   ‚c              3   ó,   K  — | ]  }|d    dk(  –— Œ y­w)rÏ  ÚpassedNr`   rØ  s     rb   rÛ  z5test_check_estimator_not_fail_fast.<locals>.<genexpr>#  rÞ  rß  )r8   r   r×   Úlistr  Úallr  )Úcheck_resultss    rb   Ú"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ÑDra   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‰  rG  r5  g{®Gáz„?)ÚCrj  )r(   ÚAttributeErrorr8   r   rŸ   rE  rR   r3  r   r   rN  r^  rh  ro  )r˜  Úcsr_containers     rb   Útest_check_estimatorrê  &  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í  )rp   rC  r(   r�  rI   )Údecisions    rb   Útest_check_outlier_corruptionrï  J  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 rf   )Ú
tag_sparserÓ   Ú	fit_error)rh   rô  rÓ   rõ  s       rb   rz   zKtest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfig.__init__Y  s   € Ø(ˆDŒOØ!.ˆDÔØ&ˆD�Nra   c                 óh   — | j                   r| j                   ‚t        | ||| j                  ¬«       | S )NrÒ   )rõ  rY   rÓ   rg   s      rb   rk   zFtest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfig.fit^  s,   € Ø�~Š~Ø—n‘nÐ$Ü˜$  1°D×4FÑ4FÕGØˆKra   c                 óZ   •— t         ‰| �  «       }| j                  |j                  _        |S rf   )r    rW  rô  rd  rf  rZ  s     €rb   rW  zStest_check_estimator_sparse_tag.<locals>.EstimatorWithSparseConfig.__sklearn_tags__d  s%   ø€ Ü‘7Ñ+Ó-ˆDØ%)§_¡_ˆD�O‰OÔ"ØˆKra   rf   ©r\   r]   r^   rz   rk   rW  r§   r¨   s   @rb   ÚEstimatorWithSparseConfigrò  X  s   ø„ ó	'ó
	÷	ð 	ra   rù  TN)rô  rÓ   Ú
error_typeFrô  rÓ   rú  zunexpected errorzother error)r   r�  r=   r¤   r\   r(   r”  ÚKeyError)rù  Ú
test_casesÚ	test_caserÐ  rõ  s        rb   Útest_check_estimator_sparse_tagrþ  T  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   r`   ra   rb   Ú)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"   rk   ÚdataÚtarget)ÚirisÚ	EstimatorÚestÚold_hashs       rb   Ú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    rb   Ú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 rf   )Úyou_should_not_set_this_©rh   s    rb   rz   zWtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorPrivateSet.__init__º  s
   € Ø,0ˆDÕ)ra   N©r\   r]   r^   rz   r`   ra   rb   Ú NonConformantEstimatorPrivateSetr  ¹  s   „ ó	1ra   r  c                   ó   — e Zd Zdd„Zy)úNtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorNoParamSetNc                  ó   — y rf   r`   )rh   Úyou_should_set_this_s     rb   rz   zWtest_check_no_attributes_set_in_init.<locals>.NonConformantEstimatorNoParamSet.__init__¾  s   € Øra   rf   r  r`   ra   rb   Ú NonConformantEstimatorNoParamSetr  ½  s   „ ô	ra   r  c                   ó   — e Zd ZddiZy)úOtest_check_no_attributes_set_in_init.<locals>.ConformantEstimatorClassAttributeÚfooTN)r\   r]   r^   Ú9_ConformantEstimatorClassAttribute__metadata_request__fitr`   ra   rb   Ú!ConformantEstimatorClassAttributer  Á  s   „ à#(¨$ -Ñra   r!  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  r!  r˜  s       rb   Ú$test_check_no_attributes_set_in_initr%  ¸  sô   € ô1¬=ô 1ô¬=ô ô0¬Mô 0ð
	=ð ô
 
” 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    rb   Útest_check_estimator_pairwiser*  æ  s2   € ô
 �]Ô
#€CÜ�CÔô  ]Ô
3€CÜ�CÔ0KÈCÓ0PÖQra   c                  óx   — t        t        d¬«      5  t        dt        «       «       d d d «       y # 1 sw Y   y xY w©Nrˆ  r‰  r"  )r(   r�  r.   r<  r`   ra   rb   Ú'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   r<  r`   ra   rb   Ú&test_check_regressor_data_not_an_arrayr0  ú  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‰  r"  z;Docstring that does not document the estimator's attributeszNEstimator LogisticRegression does not document its feature_names_in_ attribute)	r(   rŸ   r4   rd   ru  r   r¤   r\   r_   )Úerr_msgÚlrs     rb   Ú-test_check_dataframe_column_names_consistencyr4    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 rf   ©Úresponse_output)rh   r9  s     rb   rz   z&_BaseMultiLabelClassifierMock.__init__  r�   ra   c                 ó   — | S rf   r`   rg   s      rb   rk   z!_BaseMultiLabelClassifierMock.fit  rl   ra   c                 óF   •— t         ‰| �  «       }d|j                  _        |S rl  )r    rW  rX  Úmulti_labelrZ  s     €rb   rW  z._BaseMultiLabelClassifierMock.__sklearn_tags__  s#   ø€ Ü‰wÑ'Ó)ˆØ+/ˆ×ÑÔ(Øˆra   rø  r¨   s   @rb   r6  r6    s   ø„ ò/ò÷ð ra   r6  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 rf   r8  rs   s     rb   rt   zdtest_check_classifiers_multilabel_output_format_predict.<locals>.MultiLabelClassifierPredict.predict,  ó   € Ø×'Ñ'Ð'ra   N)r\   r]   r^   rt   r`   ra   rb   ÚMultiLabelClassifierPredictrL  +  ó   „ ó	(ra   rO  r8  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   r6  Útolistr(   r�  r1   r¤   r\   Úastyperp   Úfloat64)	rD  Ú	test_sizeÚ	n_outputsr„  rj   Úy_testrO  Úclfr2  s	            rb   Ú7test_check_classifiers_multilabel_output_format_predictrY    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)Nr>  r  r  rB  Tr   rC  c                   ó   — e Zd Zd„ Zy)úgtest_check_classifiers_multilabel_output_format_predict_proba.<locals>.MultiLabelClassifierPredictProbac                 ó   — | j                   S rf   r8  rs   s     rb   Úpredict_probazutest_check_classifiers_multilabel_output_format_predict_proba.<locals>.MultiLabelClassifierPredictProba.predict_probaW  rN  ra   N)r\   r]   r^   r^  r`   ra   rb   Ú MultiLabelClassifierPredictProbar\  V  rP  ra   r_  r8  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 rS  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\).)rr   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 1rQ  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   r6  rR   r\   r(   rŸ   r2   r¤   rR  r�  Úrangerp   Ú	ones_likerq   rr   r+  rT  Ú
zeros_like)rD  rU  rV  r„  rj   rW  r_  ré  rX  r2  r9  s              rb   Ú=test_check_classifiers_multilabel_output_format_predict_probarc  I  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)Nr>  r  r  rB  Tr   rC  c                   ó   — e Zd Zd„ Zy)úotest_check_classifiers_multilabel_output_format_decision_function.<locals>.MultiLabelClassifierDecisionFunctionc                 ó   — | j                   S rf   r8  rs   s     rb   rq  z�test_check_classifiers_multilabel_output_format_decision_function.<locals>.MultiLabelClassifierDecisionFunction.decision_functionÓ  rN  ra   N)r\   r]   r^   rq  r`   ra   rb   Ú$MultiLabelClassifierDecisionFunctionrf  Ò  rP  ra   rh  r8  zwMultiLabelClassifierDecisionFunction.decision_function is expected to output a NumPy array. Got <class 'list'> instead.r‰  rQ  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   r6  rR  r(   r�  r0   r¤   r\   )	rD  rU  rV  r„  rj   rW  rh  rX  r2  s	            rb   ÚAtest_check_classifiers_multilabel_output_format_decision_functionri  Å  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)ÚsysÚmodulesÚdirÚ
startswithÚgetattrÚunittestÚFunctionTestCaseÚ	TestSuiteÚaddTestsÚTextTestRunnerÚrun)Úmain_modulerÁ  Útest_functionsÚfnrü  ÚsuiteÚrunners          rb   Ú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‰  r"  )r(   r�  r-   rò   r¢  s    rb   Ú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¤   r\   rp  )rª  Ú
estimatorsr  s      rb   Útest_all_estimators_all_publicr‚    sh   € ô 
×	 Ñ	 ¨Ô	-ð &°Ü#Ó%ˆ
÷&ñ Ðˆ:Øò :ˆØ—=‘=×)Ñ)×4Ñ4°SÕ9Ð9Ð9ñ:÷	&ð &ús   —AÁA&rk  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Úskip)Úlegacyr  Úmarkr   )Únextr!   r   r"   rP   r  r&   Úappendr)   rÖ  r×  )r  rÓ  ÚchecksÚskipped_checksrÐ  Úchecks         rb   Ú.test_estimator_checks_generator_skipping_testsrŒ  #  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Ï  Úxfail)
r   r"   r  r«  r¬  r8   r®  r   rã  r   )	r  r  r¯  ÚlogsÚwÚxfail_warnsr°  ÚlogÚxfaileds	            rb   Ú"test_xfail_count_with_no_fast_failr•  7  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�   r`   )rÐ  rÒ  rÑ  rÏ  rÓ  rÔ  Ú
call_counts         €rb   Úcallbackz/test_check_estimator_callback.<locals>.callbackS  s$   ø€ ð ÐAÑAÐAÐAà�6Ó˜aÑÔra   Tr©  N)r  rÍ  r›  ©r…  r�  rá  rÝ  r˜  )r   r"   r  r«  r¬  r8   râ  rP   )r›  r  r  r¯  r�  Úall_checks_countrš  s         @rb   Útest_check_estimator_callbackrž  O  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         ‚rf   )r&   r%   r$   r#   r8   )Úminimal_estimatorsrÐ  s     rb   Ú(test_minimal_class_implementation_checksr¡  v  s	   € ô €Nra   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 rf   ©Úbehavior)rh   r§  s     rb   rz   z:test_check_fit_check_is_fitted.<locals>.Estimator.__init__‚  s	   € Ø$ˆD�Mra   c                 ób   — | j                   dk(  r	d| _        | S | j                   dk(  rd| _        | S )NÚ	attributeTrÀ  )r§  Ú
is_fitted_Ú
_is_fitted)rh   ri   rj   r£   s       rb   rk   z5test_check_fit_check_is_fitted.<locals>.Estimator.fit…  s6   € Ø�}‰} Ò+Ø"&�”ð ˆKð —‘ (Ò*Ø"&�”ØˆKra   c                 ó   — | j                   dv S )N>   rÀ  úalways-truer¦  r  s    rb   ú<lambda>z:test_check_fit_check_is_fitted.<locals>.Estimator.<lambda>Œ  s   €  4§=¡=Ð4MÐ#M€ ra   c                 ó:   — | j                   dk(  ryt        | d«      S )Nr­  Tr«  )r§  ry  r  s    rb   Ú__sklearn_is_fitted__zGtest_check_fit_check_is_fitted.<locals>.Estimator.__sklearn_is_fitted__Œ  s   € à�}‰} Ò-ØÜ˜4 Ó.Ð.ra   N)r©  )r\   r]   r^   rz   rk   rT   r°  r`   ra   rb   r
  r¤  �  s'   „ ó	%ò	ñ 
ÑMÓ	Nñ	/ó 
Oñ	/ra   r
  z'passes check_is_fitted before being fitr‰  rÐ  r­  r¦  rÀ  r©  )r   r(   Ú	ExceptionrB   )r
  s    rb   Ú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                  óÜ   —  G d„ dt         «      } t        j                  d¬«      5 }t        d | «       «       d d d «       D �cg c]  }|j                  ‘Œ c}rJ ‚y # 1 sw Y   Œ&xY wc c}w )Nc                   ó   — e Zd Zd„ Zy)ú-test_check_requires_y_none.<locals>.Estimatorc                 ó"   — t        ||«      \  }}y rf   )rX   rg   s      rb   rk   z1test_check_requires_y_none.<locals>.Estimator.fit›  s   € Ü˜Q “?‰DˆA‰qra   Nr•   r`   ra   rb   r
  rµ  š  s   „ ó	#ra   r
  Tr©  rÐ  )r   r«  r¬  rM   Úmessage)r
  rª  r´   s      rb   Útest_check_requires_y_noner¸  ™  sb   € ô#”Mô #ô 
×	 Ñ	 ¨Ô	-ð 8°Ü˜k©9«;Ô7÷8ð $*Ö*˜a�—	“	Ó*Ð*Ð*Ð*÷	8ð 8üò +s   ¦AÁA)ÁA&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 rl  )r    rW  Únon_deterministicrZ  s     €rb   rW  zQtest_non_deterministic_estimator_skip_tests.<locals>.MyEstimator.__sklearn_tags__®  s   ø€ Ü‘wÑ/Ó1�Ø)-�Ô&Ø�ra   ©r\   r]   r^   rW  r§   r¨   s   @rb   ÚMyEstimatorr»  ­  s   ø„ ÷ð ra   r¿  )r%   r$   r#   râ  r+   rD   rE   )r
  Ú	all_testsr¿  s      rb   Ú+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Ò?Ð?Ð?ñ@ra   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 rf   )Úcontamination)rh   rÆ  s     rb   rz   zStest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraint.__init__À  s
   € Ø!.ˆDÕra   Nc                 ó   — | S rf   r`   )rh   ri   rj   rï   s       rb   rk   zNtest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraint.fitÃ  ó   € ØˆKra   c                 óF   — t        j                  |j                  d   «      S rn   ro   rg   s      rb   rt   zRtest_check_outlier_contamination.<locals>.OutlierDetectorWithoutConstraint.predictÆ  s   € Ü—7‘7˜1Ÿ7™7 1™:Ó&Ð&ra   )gš™™™™™¹?rL  rf   r$  r`   ra   rb   Ú OutlierDetectorWithoutConstraintrÄ  ½  s   „ Ù<ó	/ó	ô	'ra   rÊ  Nc                   ó$   — e Zd Zd edh«      giZy)úGtest_check_outlier_contamination.<locals>.OutlierDetectorWithConstraintrÆ  ÚautoN)r\   r]   r^   r    Ú_parameter_constraintsr`   ra   rb   ÚOutlierDetectorWithConstraintrÌ  Î  s   „ Ø"1±JÀ¸xÓ4HÐ3IÐ!JÑra   rÏ  zDcontamination constraints should contain a Real Interval constraint.r‰  r   g      à?Úright)ÚclosedrÆ  r�   rQ  r  Úleftz<contamination constraint should be an interval in \(0, 0.5\])r
   r   rH   r¤   r\   r(   r�  r   r   rÎ  r   )rÊ  ÚdetectorrÏ  r2  Úincorrect_intervalsÚintervals         rb   Ú 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    rb   Útest_decision_proba_tie_rankingrÚ  î  s   € ô  :Ô.€IÜ$ _°iÕ@ra   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rf   )r\   rè  Úfunc)r‹  s    rb   Úget_check_namez4test_yield_all_checks_legacy.<locals>.get_check_name  s0   € ð	'Ø—>‘>Ð!øÜò 	'Ø—:‘:×&Ñ&Ò&ð	'ús   ‚ Ž0¯0)r#   râ  r+   r  Úissubset)rÐ  Úlegacy_checksÚnon_legacy_checksrÞ  r‹  Únon_legacy_check_namesÚlegacy_check_namess          rb   Útest_yield_all_checks_legacyrä  ø  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    rb   Ú__sklearn_clone__zLtest_check_estimator_cloneable_error.<locals>.NotCloneable.__sklearn_clone__  s   € Ü%Ð&HÓIÐIra   N)r\   r]   r^   rë  r`   ra   rb   ÚNotCloneablerç    s   „ ó	Jra   rì  zCloning of .* failed with errorr‰  N)r   r(   r�  r9   )rì  rÐ  r˜  s      rb   Ú$test_check_estimator_cloneable_errorrí    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    rb   Ú__repr__z3test_estimator_repr_error.<locals>.NotRepr.__repr__  s   € Ü%Ð&LÓMÐMra   N)r\   r]   r^   ró  r`   ra   rb   ÚNotReprrñ    s   „ ó	Nra   rô  zRepr of .* failed with errorr‰  N)r   r(   r�  r:   )rô  rÐ  r˜  s      rb   Ú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 rf   r`   r  s    rb   Ú
_more_tagszCtest_check_estimator_tags_renamed.<locals>.BadEstimator1._more_tags)  ó   € Øra   N)r\   r]   r^   rú  r`   ra   rb   ÚBadEstimator1rø  (  ó   „ ó	ra   rü  c                   ó   — e Zd Zd„ Zy)ú8test_check_estimator_tags_renamed.<locals>.BadEstimator2c                  ó   — y rf   r`   r  s    rb   Ú	_get_tagszBtest_check_estimator_tags_renamed.<locals>.BadEstimator2._get_tags-  rû  ra   N)r\   r]   r^   r  r`   ra   rb   ÚBadEstimator2rÿ  ,  rý  ra   r  c                   ó   — e Zd Zd„ Zd„ Zy)ú8test_check_estimator_tags_renamed.<locals>.OkayEstimatorc                  ó   — y rf   r`   r  s    rb   rW  zItest_check_estimator_tags_renamed.<locals>.OkayEstimator.__sklearn_tags__1  rû  ra   c                  ó   — y rf   r`   r  s    rb   rú  zCtest_check_estimator_tags_renamed.<locals>.OkayEstimator._more_tags4  rû  ra   N)r\   r]   r^   rW  rú  r`   ra   rb   ÚOkayEstimatorr  0  s   „ ò	ó	ra   r  z.has defined either `_more_tags` or `_get_tags`r‰  )r(   r”  r>   )rü  r  r  r˜  s       rb   Ú!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 rf   r`   rg   s      rb   rk   zItest_check_classifier_not_supporting_multiclass.<locals>.BadEstimator.fitJ  rÈ  ra   Nr•   r`   ra   rb   ÚBadEstimatorr  G  s   „ ó	ra   r  z=The estimator tag `tags.classifier_tags.multi_class` is Falser‰  N)r   r(   r�  r/   ©r  r˜  s     rb   Ú/test_check_classifier_not_supporting_multiclassr  C  sE   € ô”}ô ð J€CÜ	” cÔ	*ñ SÜ2°>Á<Ã>ÔR÷S÷ Sñ Sús	   £>¾Ac                  óÀ   — dD ]=  } 	 t        j                  | «       t	        «       j                  | ¬«      }t        |«       Œ? y # t        $ r t        d| › d�«      ‚w xY w)N)rî   ÚpolarszLibrary z is not installed)r  )r�  Ú
__import__rA  r&   r   Ú
set_outputr8   )ÚlibrÐ  s     rb   Útest_estimator_with_set_outputr  S  sj   € à#ò #ˆð	>Ü× Ñ  Ô%ô #Ó$×/Ñ/¸#Ð/Ó>ˆ	Ü˜	Õ"ñ#øô ò 	>Ü˜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    rb   Útest_estimator_checks_generatorr  _  s    € ä8Ô9KÓ9MÓNÐÜÐ.Ô/Ð/Ñ/ra   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 rf   r`   r`   ra   rb   r®  zDtest_check_estimator_callback_with_fast_fail_error.<locals>.<lambda>j  s   � ra   )rÍ  r›  N)r(   rŸ   r8   r   r`   ra   rb   Ú2test_check_estimator_callback_with_fast_fail_errorr  e  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 rf   r`   rg   s      rb   rk   z0test_check_mixin_order.<locals>.BadEstimator.fitq  rÈ  ra   rf   r•   r`   ra   rb   r  r  p  s   „ ô	ra   r  z8TransformerMixin comes before/left side of BaseEstimatorr‰  N)r   r   r(   r�  ÚreÚescaperF   r  s     rb   Útest_check_mixin_orderr#  m  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 rV  )r    rW  rd  re  rZ  s     €rb   rW  zYtest_check_positive_only_tag_during_fit.<locals>.RequiresPositiveXBadTag.__sklearn_tags__{  s!   ø€ Ü‘7Ñ+Ó-ˆDØ,1ˆD�O‰OÔ)ØˆKra   r¾  r¨   s   @rb   ÚRequiresPositiveXBadTagr&  z  s   ø„ ÷	ð 	ra   r(  z5This happens when passing negative input values as X.r‰  )r^  r(   r�  rK   )r(  s    rb   Ú'test_check_positive_only_tag_during_fitr)  y  sG   € ôÔ"<ô ô 
ÜÐUô
ñ 
ô 	+Ø%Ñ'>Ó'@ô	
÷
÷ 
ñ 
ús	   ¡<¼A)Ír�  r!  rm  rr  r«  Úinspectr   Únumbersr   r   r  Únumpyrp   Úscipy.sparserf  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   rŸ   r[   rd   rw   r‚   r‹   r’   r—   r«   r°   r¸   r½   rÆ   rÉ   rá   ræ   rò   r   r  r  r  r&  r3  r<  rE  rN  r^  rh  ro  ru  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*  r-  r0  r4  r6  rY  rc  ri  r}  r  r‚  r\   rŒ  r•  rž  r¡  r²  r¸  rÁ  rÖ  rÚ  rä  rí  rõ  r  r  r  r  r  r#  r)  r`   ra   rb   ú<module>r@     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òIò4òò"Lò	Fò
òVòò<
òEò6!3òH-ò,Pò^6ò,òD	Nò+
ò\
Rò
ò
òLô 
 O°]ô 
ò(XòVy
òx2
òjò
ò:ð ˆzÒñ Ôò?ò(7ò0"òN#òLò2	+ò@ò&3OòlAò?ò*
=ò
3òCò8Sò 	#ò0òVò	:ó
ra   