§
    §éUgÆo  ã                   ó  — 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
 d dlZd dlmZmZ d dlmZ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 d d	lmZ d d
lmZ d dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+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¦  «        Z0 G d„ de/¦  «        Z1 G d„ de/e0¦  «        Z2 G d„ de2¦  «        Z3 G d„ d e¦  «        Z4 G d!„ d"e¦  «        Z5 G d#„ d$¦  «        Z6 G d%„ d&e¦  «        Z7d'„ Z8d(„ Z9d)„ Z:d*„ Z;d+„ Z<d,„ Z=d-„ Z>d.„ Z?d/„ Z@d0„ ZAd1„ ZBd2„ ZCd3„ ZDd4„ ZEd5„ ZFd6„ ZGejH         I                    d7 e!d8d ¬9¦  «         ejJ        d ¬:¦  «        f e"d8d ¬9¦  «         ejK        d ¬:¦  «        fg¦  «        d;„ ¦   «         ZLd<„ ZMd=„ ZNd>„ ZO G d?„ d@e!¦  «        ZPdAZQdB„ ZR G dC„ dDe!¦  «        ZSdE„ ZTdF„ ZU G dG„ dH¦  «        ZV G dI„ dJeVe¦  «        ZWdK„ ZXdL„ ZY G dM„ dNe¦  «        ZZ e+e[¬O¦  «        dP„ ¦   «         Z\dQ„ Z]dR„ Z^dS„ Z_dT„ Z`dU„ ZadV„ ZbdW„ ZcdX„ ZddY„ Ze G dZ„ d[¦  «        Zf G d\„ d]efe¦  «        ZgejH         I                    d^ e¦   «          eg¦   «         g¦  «        d_„ ¦   «         Zhd`„ ZiejH         I                    dag db¢¦  «        dc„ ¦   «         ZjejH         k                    dd¦  «        de„ ¦   «         ZlejH         k                    dd¦  «        df„ ¦   «         ZmdS )gé    N)Úassert_allclose)Úconfig_contextÚdatasets)ÚBaseEstimatorÚOutlierMixinÚTransformerMixinÚcloneÚis_classifier)ÚPCA)ÚInconsistentVersionWarning)ÚGridSearchCV)ÚPipeline)ÚStandardScaler)ÚSVC)ÚDecisionTreeClassifierÚDecisionTreeRegressor)ÚMockDataFrame)Ú_get_output_config)Ú_convert_containerÚassert_array_equalÚassert_no_warningsÚignore_warningsc                   ó   — e Zd Zdd„ZdS )ÚMyEstimatorr   Nc                 ó"   — || _         || _        d S ©N)Úl1Úempty)Úselfr   r   s      úV/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/test_base.pyÚ__init__zMyEstimator.__init__*   s   € ØˆŒØˆŒ
ˆ
ˆ
ó    )r   N©Ú__name__Ú
__module__Ú__qualname__r!   © r"   r    r   r   )   s(   € € € € € ðð ð ð ð ð r"   r   c                   ó   — e Zd Zdd„ZdS )ÚKNc                 ó"   — || _         || _        d S r   )ÚcÚd)r   r+   r,   s      r    r!   z
K.__init__0   ó   € ØˆŒØˆŒˆˆr"   ©NNr#   r'   r"   r    r)   r)   /   ó(   € € € € € ðð ð ð ð ð r"   r)   c                   ó   — e Zd Zdd„ZdS )ÚTNc                 ó"   — || _         || _        d S r   )ÚaÚb)r   r3   r4   s      r    r!   z
T.__init__6   r-   r"   r.   r#   r'   r"   r    r1   r1   5   r/   r"   r1   c                   ó   — e Zd Zd„ ZdS )ÚNaNTagc                 ó
   — ddiS )NÚ	allow_nanTr'   ©r   s    r    Ú
_more_tagszNaNTag._more_tags<   s   € Ø˜TÐ"Ð"r"   N©r$   r%   r&   r:   r'   r"   r    r6   r6   ;   s#   € € € € € ð#ð #ð #ð #ð #r"   r6   c                   ó   — e Zd Zd„ ZdS )ÚNoNaNTagc                 ó
   — ddiS ©Nr8   Fr'   r9   s    r    r:   zNoNaNTag._more_tagsA   ó   € Ø˜UÐ#Ð#r"   Nr;   r'   r"   r    r=   r=   @   ó#   € € € € € ð$ð $ð $ð $ð $r"   r=   c                   ó   — e Zd Zd„ ZdS )ÚOverrideTagc                 ó
   — ddiS r?   r'   r9   s    r    r:   zOverrideTag._more_tagsF   r@   r"   Nr;   r'   r"   r    rC   rC   E   rA   r"   rC   c                   ó   — e Zd Zd„ ZdS )ÚDiamondOverwriteTagc                 ó   — t          ¦   «         S r   )Údictr9   s    r    r:   zDiamondOverwriteTag._more_tagsK   s   € Ý‰vŒvˆr"   Nr;   r'   r"   r    rF   rF   J   s#   € € € € € ðð ð ð ð r"   rF   c                   ó   — e Zd ZdS )ÚInheritDiamondOverwriteTagN©r$   r%   r&   r'   r"   r    rJ   rJ   O   ó   € € € € € Ø€Dr"   rJ   c                   ó:   — e Zd ZdZ ej        dg¦  «        fd„ZdS )ÚModifyInitParamsz_Deprecated behavior.
    Equal parameters but with a type cast.
    Doesn't fulfill a is a
    r   c                 ó8   — |                      ¦   «         | _        d S r   )Úcopyr3   ©r   r3   s     r    r!   zModifyInitParams.__init__Y   s   € Ø—’‘”ˆŒˆˆr"   N)r$   r%   r&   Ú__doc__ÚnpÚarrayr!   r'   r"   r    rN   rN   S   sC   € € € € € ðð ð
 "˜œ 1 #™œð ð ð ð ð ð r"   rN   c                   ó   — e Zd ZdZdd„ZdS )ÚBuggyz9A buggy estimator that does not set its parameters right.Nc                 ó   — d| _         d S ©Né   ©r3   rQ   s     r    r!   zBuggy.__init__`   s   € ØˆŒˆˆr"   r   ©r$   r%   r&   rR   r!   r'   r"   r    rV   rV   ]   s.   € € € € € Ø?Ð?ðð ð ð ð ð r"   rV   c                   ó$   — e Zd Zd„ Zdd„Zdd„ZdS )ÚNoEstimatorc                 ó   — d S r   r'   r9   s    r    r!   zNoEstimator.__init__e   ó   € Øˆr"   Nc                 ó   — | S r   r'   ©r   ÚXÚys      r    ÚfitzNoEstimator.fith   s   € Øˆr"   c                 ó   — d S r   r'   ©r   rb   s     r    ÚpredictzNoEstimator.predictk   s   € Øˆtr"   r.   r   )r$   r%   r&   r!   rd   rg   r'   r"   r    r]   r]   d   sK   € € € € € ðð ð ðð ð ð ðð ð ð ð ð r"   r]   c                   ó   — e Zd ZdZd„ ZdS )ÚVargEstimatorz-scikit-learn estimators shouldn't have vargs.c                 ó   — d S r   r'   )r   Úvargss     r    r!   zVargEstimator.__init__r   r_   r"   Nr[   r'   r"   r    ri   ri   o   s)   € € € € € Ø7Ð7ðð ð ð ð r"   ri   c                  ó  — ddl m} m}  | |d¬¦  «        }t          |¦  «        }||usJ ‚|                     ¦   «         |                     ¦   «         k    sJ ‚ | |t          j        d¦  «        ¬¦  «        }t          |¦  «        }||usJ ‚d S )Nr   ©Ú	SelectFprÚ	f_classifçš™™™™™¹?©Úalpha)é
   é   )Úsklearn.feature_selectionrn   ro   r	   Ú
get_paramsrS   Úzeros©rn   ro   ÚselectorÚnew_selectors       r    Ú
test_cloner{   z   sµ   € ð ?Ð>Ð>Ð>Ð>Ð>Ð>Ð>àˆy˜¨#Ð.Ñ.Ô.€HÝ˜‘?”?€LØ˜<Ð'Ð'Ð'Ð'Ø×ÒÑ Ô  L×$;Ò$;Ñ$=Ô$=Ò=Ð=Ð=Ð=àˆy˜­"¬(°7Ñ*;Ô*;Ð<Ñ<Ô<€HÝ˜‘?”?€LØ˜<Ð'Ð'Ð'Ð'Ð'Ð'r"   c                  ó€   — ddl m} m}  | |d¬¦  «        }d|_        t	          |¦  «        }t          |d¦  «        rJ ‚d S )Nr   rm   rp   rq   ÚtestÚown_attribute)ru   rn   ro   r~   r	   Úhasattrrx   s       r    Útest_clone_2r€   Œ   s_   € ð ?Ð>Ð>Ð>Ð>Ð>Ð>Ð>àˆy˜¨#Ð.Ñ.Ô.€HØ#€HÔÝ˜‘?”?€LÝ�| _Ñ5Ô5Ð5Ð5Ð5Ð5Ð5r"   c                  ó†  — t          ¦   «         } d| _        t          j        t          ¦  «        5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         }t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         }t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         }t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrt   )
rV   r3   ÚpytestÚraisesÚRuntimeErrorr	   r]   Ú	TypeErrorri   rN   )ÚbuggyÚno_estimatorÚvarg_estÚests       r    Útest_clone_buggyrŠ   š   s  € å‰GŒG€EØ€E„GÝ	Œ•|Ñ	$Ô	$ð ð Ýˆe‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ‘=”=€LÝ	Œ•yÑ	!Ô	!ð ð ÝˆlÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ‰Œ€HÝ	Œ•|Ñ	$Ô	$ð ð Ýˆh‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ñ
Ô
€CÝ	Œ•|Ñ	$Ô	$ð ð Ýˆc‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sG   ¯AÁAÁAÁ=BÂBÂ BÃC'Ã'C+Ã.C+ÄD6Ä6D:Ä=D:c                  ón  — t          t          j        g ¦  «        ¬¦  «        } t          | ¦  «        }t	          | j        |j        ¦  «         t          t          j        t          j        dgg¦  «        ¦  «        ¬¦  «        } t          | ¦  «        }t	          | j        j        |j        j        ¦  «         d S )N©r   r   )	r   rS   rT   r	   r   r   ÚspÚ
csr_matrixÚdata©ÚclfÚclf2s     r    Útest_clone_empty_arrayr“   ®   sˆ   € å
�BœH R™LœLÐ
)Ñ
)Ô
)€CÝ�‰:Œ:€DÝ�s”y $¤*Ñ-Ô-Ð-å
�BœM­"¬(°Q°C°5©/¬/Ñ:Ô:Ð
;Ñ
;Ô
;€CÝ�‰:Œ:€DÝ�s”y”~ t¤z¤Ñ7Ô7Ð7Ð7Ð7r"   c                  óx   — t          t          j        ¬¦  «        } t          | ¦  «        }| j        |j        u sJ ‚d S ©NrŒ   )r   rS   Únanr	   r   r�   s     r    Útest_clone_nanr—   ¹   s:   € å
�BœFÐ
#Ñ
#Ô
#€CÝ�‰:Œ:€DàŒ9˜œ
Ð"Ð"Ð"Ð"Ð"Ð"r"   c                  óh   — dt          ¦   «         i} t          | ¦  «        }| d         |d         usJ ‚d S )Nr3   )r   r	   )ÚorigÚcloneds     r    Útest_clone_dictr›   Á   s:   € à•‘”Ð€DÝ�4‰[Œ[€FØ�Œ9˜F 3œKÐ'Ð'Ð'Ð'Ð'Ð'r"   c                  óz  ‡— ˆfd„t          t          ¦  «        D ¦   «         } | D ]–Š ‰t          j        d¦  «        ¦  «        }t	          |¬¦  «        }t          |¦  «        }|j        j        |j        j        u sJ ‚t          |j         	                    ¦   «         |j         	                    ¦   «         ¦  «         Œ—d S )Nc                 ó”   •— g | ]D}|                      d ¦  «        r-t          t          t          |¦  «        xŠ¦  «        t          u ¯B‰‘ŒES )Ú_matrix)ÚendswithÚtypeÚgetattrr�   )Ú.0ÚnameÚclss     €r    ú
<listcomp>z.test_clone_sparse_matrices.<locals>.<listcomp>É   s[   ø€ ð ð ð àØ�=Š=˜Ñ#Ô#ðõ )-µG½BÀÑ4EÔ4EÐ-E¨SÑ(FÔ(FÍ$Ð(NÐ(Nð 	à(NÐ(NÐ(Nr"   é   rŒ   )
Údirr�   rS   Úeyer   r	   r   Ú	__class__r   Útoarray)Úsparse_matrix_classesÚsparse_matrixr‘   Ú
clf_clonedr¤   s       @r    Útest_clone_sparse_matricesr®   È   sÍ   ø€ ðð ð ð å�‘G”Gðñ ô Ðð %ð Lð LˆØ˜�BœF 1™IœI™œˆÝ Ð.Ñ.Ô.ˆÝ˜3‘Z”Zˆ
ØŒyÔ" jÔ&6Ô&@Ð@Ð@Ð@Ð@Ý˜3œ9×,Ò,Ñ.Ô.°
Ô0@×0HÒ0HÑ0JÔ0JÑKÔKÐKÐKðLð Lr"   c                  ón   — t          t           ¬¦  «        } t          | ¦  «        }| j        |j        u sJ ‚d S r•   )r   r	   r   r�   s     r    Útest_clone_estimator_typesr°   ×   s:   € õ �KÐ
(Ñ
(Ô
(€CÝ�‰:Œ:€DàŒ9˜œ
Ð"Ð"Ð"Ð"Ð"Ð"r"   c                  óš   — d} t          j        t          | ¬¦  «        5  t          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz8You should provide an instance of scikit-learn estimator©Úmatch)r‚   rƒ   r…   r	   r   )Úmsgs    r    Ú%test_clone_class_rather_than_instancerµ   à   s‘   € ð E€CÝ	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ý�kÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   žA Á AÁAc                  ó&  — t          ¦   «         } t          | ¦  «         t          t          ¦   «         t          ¦   «         ¦  «        }t          |¦  «        dk    sJ ‚t          dgdz  ¬¦  «        }t	          t          |¦  «        ¦  «        dk    sJ ‚d S )NzT(a=K(), b=K())Úlong_paramsiè  rZ   iå  )r   Úreprr1   r)   Úlen)Úmy_estimatorr}   Úsome_ests      r    Ú	test_reprr¼   è   s‚   € å‘=”=€LÝˆÑÔÐÝ�Q‰SŒS•!‘#”#‰;Œ;€DÝ�‰:Œ:Ð*Ò*Ð*Ð*Ð*å�M�? TÑ)Ð*Ñ*Ô*€HÝ�t�H‰~Œ~ÑÔ #Ò%Ð%Ð%Ð%Ð%Ð%r"   c                  ó@   — t          ¦   «         } t          | ¦  «         d S r   )r   Ústr)rº   s    r    Útest_strr¿   ó   s   € å‘=”=€LÝˆÑÔÐÐÐr"   c                  ó�  — t          t          ¦   «         t          ¦  «        } d|                      d¬¦  «        v sJ ‚d|                      d¬¦  «        vsJ ‚|                      d¬¦  «         | j        j        dk    sJ ‚t          j        t          ¦  «        5  |                      d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚa__dT)ÚdeepFrt   )rÁ   )Úa__a)	r1   r)   rv   Ú
set_paramsr3   r,   r‚   rƒ   Ú
ValueError)r}   s    r    Útest_get_paramsrÆ   ù   sþ   € Ý�Q‰SŒS•!‰9Œ9€Dà�T—_’_¨$�_Ñ/Ô/Ð/Ð/Ð/Ð/Ø˜Ÿš¨e˜Ñ4Ô4Ð4Ð4Ð4Ð4à‡O‚O˜€OÑÔÐØŒ6Œ8�qŠ=ˆ=ˆ=ˆ=å	Œ•zÑ	"Ô	"ð  ð  Ø�Š˜QˆÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ÂB;Â;B?ÃB?c                  ó2  — t          ¦   «         } t          | ¦  «        sJ ‚t          t          | dddgi¦  «        ¦  «        sJ ‚t          t          d| fg¦  «        ¦  «        sJ ‚t          t          dt          | dddgi¦  «        fg¦  «        ¦  «        sJ ‚d S )NÚCrp   rY   ÚsvcÚsvc_cv)r   r
   r   r   )rÉ   s    r    Útest_is_classifierrË     s£   € Ý
‰%Œ%€CÝ˜ÑÔÐÐÐÝ� c¨C°#°q°¨?Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<Ý� E¨3 < .Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2Ý� H­l¸3ÀÀsÈAÀhÀÑ.PÔ.PÐ#QÐ"RÑSÔSÑTÔTÐTÐTÐTÐTÐTr"   c                  ó`  — t          dt          ¦   «         fg¦  «        } t          j        t          ¦  «        5  |                      d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÉ   T)Úsvc__stupid_param)Úsvm__stupid_param)r   r   r‚   rƒ   rÅ   rÄ   )r‘   s    r    Útest_set_paramsrÏ     s  € å
�U�C™EœE�NÐ#Ñ
$Ô
$€Cõ 
Œ•zÑ	"Ô	"ð /ð /Ø�Š¨ˆÑ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ 
Œ•zÑ	"Ô	"ð /ð /Ø�Š¨ˆÑ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s#   ¸AÁAÁ"AÁ?B#Â#B'Â*B'c                  óÔ   ‡—  G ˆfd„dt           ¦  «        } dddœŠt          d | ¦   «         fg¦  «        t           | ¦   «         i ¦  «        fD ]}|                     dd¬¦  «         Œd S )Nc                   ó"   •‡ — e Zd Zˆ ˆfd„Zˆ xZS )ú?test_set_params_passes_all_parameters.<locals>.TestDecisionTreec                 óJ   •—  t          ¦   «         j        di |¤Ž |‰k    sJ ‚| S )Nr'   )ÚsuperrÄ   )r   Úkwargsr©   Úexpected_kwargss     €€r    rÄ   zJtest_set_params_passes_all_parameters.<locals>.TestDecisionTree.set_params%  s6   ø€ Ø�E‰GŒGÔÐ(Ð( Ð(Ð(Ð(à˜_Ò,Ð,Ð,Ð,ØˆKr"   )r$   r%   r&   rÄ   Ú__classcell__)r©   rÖ   s   @€r    ÚTestDecisionTreerÒ   $  s>   øø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r"   rØ   r¦   rt   )Ú	max_depthÚmin_samples_leafÚ	estimator)Úestimator__max_depthÚestimator__min_samples_leaf)r   r   r   rÄ   )rØ   r‰   rÖ   s     @r    Ú%test_set_params_passes_all_parametersrÞ      sµ   ø€ ðð ð ð ð ð ð Õ1ñ ô ð ð %&¸1Ð=Ð=€Oå�;Ð 0Ð 0Ñ 2Ô 2Ð3Ð4Ñ5Ô5ÝÐ%Ð%Ñ'Ô'¨Ñ,Ô,ðð Nð Nˆð 	�Š¨AÈ1ˆÑMÔMÐMÐMð	Nð Nr"   c                  ó¨   — t          t          ¦   «         i ¦  «        } |                      t          ¦   «         d¬¦  «         | j        j        dk    sJ ‚d S )Ng      E@)rÛ   Úestimator__C)r   r   rÄ   r   rÛ   rÈ   )Úgscvs    r    Ú$test_set_params_updates_valid_paramsrâ   3  sP   € õ Õ.Ñ0Ô0°"Ñ5Ô5€DØ‡O‚O�c™eœe°$€OÑ7Ô7Ð7ØŒ>Ô˜tÒ#Ð#Ð#Ð#Ð#Ð#r"   ztree,datasetrt   )rÙ   Úrandom_state)rã   c                 óD  — t           j                             d¦  «        }|\  }}|                      ||¦  «         |                     ddt          |¦  «        ¬¦  «        }|                      ||¦  «        }|                      |||¬¦  «        }d}||k    s
J |¦   «         ‚d S )Nr   rY   rs   )Úsize)Úsample_weightz5Unweighted and weighted scores are unexpectedly equal)rS   ÚrandomÚRandomStaterd   Úrandintr¹   Úscore)	ÚtreeÚdatasetÚrngrb   rc   ræ   Úscore_unweightedÚscore_weightedr´   s	            r    Útest_score_sample_weightrð   ;  sŸ   € õ Œ)×
Ò
 Ñ
"Ô
"€Cà�D€A€qà‡H‚HˆQ��N„N€Nà—K’K  2­C°©F¬F�KÑ3Ô3€MØ—z’z ! QÑ'Ô'ÐØ—Z’Z  1°M�ZÑBÔB€NØ
A€CØ˜~Ò-Ð-Ð-¨sÑ-Ô-Ð-Ð-Ð-r"   c                  ó,  —  G d„ dt           t          ¦  «        } t          j        d¦  «        }t	          |¦  «        } | |d¬¦  «        }t          |¦  «        }|j        |j        k    j                             ¦   «         sJ ‚|j	        |j	        k    sJ ‚d S )Nc                   ó(   — e Zd ZdZdd„Zdd„Zd„ ZdS )	ú3test_clone_pandas_dataframe.<locals>.DummyEstimatora,  This is a dummy class for generating numerical features

        This feature extractor extracts numerical features from pandas data
        frame.

        Parameters
        ----------

        df: pandas data frame
            The pandas data frame parameter.

        Notes
        -----
        NrY   c                 ó"   — || _         || _        d S r   )ÚdfÚscalar_param)r   rõ   rö   s      r    r!   z<test_clone_pandas_dataframe.<locals>.DummyEstimator.__init__g  s   € ØˆDŒGØ ,ˆDÔÐÐr"   c                 ó   — d S r   r'   ra   s      r    rd   z7test_clone_pandas_dataframe.<locals>.DummyEstimator.fitk  ó   € ØˆDr"   c                 ó   — d S r   r'   rf   s     r    Ú	transformz=test_clone_pandas_dataframe.<locals>.DummyEstimator.transformn  rø   r"   rX   r   )r$   r%   r&   rR   r!   rd   rú   r'   r"   r    ÚDummyEstimatorró   W  sU   € € € € € ð	ð 	ð	-ð 	-ð 	-ð 	-ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	r"   rû   rs   rY   )rö   )
r   r   rS   Úaranger   r	   rõ   ÚvaluesÚallrö   )rû   r,   rõ   ÚeÚcloned_es        r    Útest_clone_pandas_dataframer  V  s¬   € ðð ð ð ð Õ)­=ñ ô ð õ6 	Œ	�"‰Œ€AÝ	�qÑ	Ô	€BØˆ�r¨Ð*Ñ*Ô*€AÝ�Q‰xŒx€Hð ŒD�H”KÒÔ'×+Ò+Ñ-Ô-Ð-Ð-Ð-ØŒ>˜XÔ2Ò2Ð2Ð2Ð2Ð2Ð2r"   c                  ó”  —  G d„ dt           ¦  «        } t          j        ddgddgddgg¦  «        }t          ¦   «                              |¦  «        }|j        } | |¦  «        }t          |j        |¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         t          j	        ddgddgd	dgg¦  «        }|                     |¦  «         t          |j        |¦  «         | 
                    |¦  «         t          |j        |¦  «         t          |¦  «        }||u sJ ‚t          |j        |¦  «         d
S )z:Checks that clone works with `__sklearn_clone__` protocol.c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ú,test_clone_protocol.<locals>.FrozenEstimatorc                 ó   — || _         d S r   )Úfitted_estimator)r   r  s     r    r!   z5test_clone_protocol.<locals>.FrozenEstimator.__init__€  s   € Ø$4ˆDÔ!Ð!Ð!r"   c                 ó,   — t          | j        |¦  «        S r   )r¡   r  )r   r£   s     r    Ú__getattr__z8test_clone_protocol.<locals>.FrozenEstimator.__getattr__ƒ  s   € Ý˜4Ô0°$Ñ7Ô7Ð7r"   c                 ó   — | S r   r'   r9   s    r    Ú__sklearn_clone__z>test_clone_protocol.<locals>.FrozenEstimator.__sklearn_clone__†  ó   € ØˆKr"   c                 ó   — | S r   r'   ©r   ÚargsrÕ   s      r    rd   z0test_clone_protocol.<locals>.FrozenEstimator.fit‰  r  r"   c                 ó&   —  | j         j        |i |¤ŽS r   )r  rú   r  s      r    Úfit_transformz:test_clone_protocol.<locals>.FrozenEstimator.fit_transformŒ  s   € Ø2�4Ô(Ô2°DÐC¸FÐCÐCÐCr"   N)r$   r%   r&   r!   r  r
  rd   r  r'   r"   r    ÚFrozenEstimatorr    sd   € € € € € ð	5ð 	5ð 	5ð	8ð 	8ð 	8ð	ð 	ð 	ð	ð 	ð 	ð	Dð 	Dð 	Dð 	Dð 	Dr"   r  éÿÿÿÿéþÿÿÿéýÿÿÿrt   é   é   rY   N)r   rS   rT   r   rd   Úcomponents_r   r   Úget_feature_names_outÚasarrayr  r	   )r  rb   ÚpcaÚ
componentsÚ
frozen_pcaÚX_newÚclone_frozen_pcas          r    Útest_clone_protocolr  |  sk  € ðDð Dð Dð Dð D�-ñ Dô Dð Dõ  	Œ�2�r�(˜R ˜H r¨2 hÐ/Ñ0Ô0€AÝ
‰%Œ%�)Š)�A‰,Œ,€CØ”€Jà � Ñ%Ô%€JÝ�JÔ*¨JÑ7Ô7Ð7õ �z×7Ò7Ñ9Ô9¸3×;TÒ;TÑ;VÔ;VÑWÔWÐWõ ŒJ˜˜Q˜ ! Q ¨!¨Q¨Ð0Ñ1Ô1€EØ‡N‚N�5ÑÔÐÝ�JÔ*¨JÑ7Ô7Ð7ð ×Ò˜UÑ#Ô#Ð#Ý�JÔ*¨JÑ7Ô7Ð7õ ˜ZÑ(Ô(ÐØ˜zÐ)Ð)Ð)Ð)ÝÐ$Ô0°*Ñ=Ô=Ð=Ð=Ð=r"   c                  ó|  — t          j        ¦   «         } t          ¦   «                              | j        | j        ¦  «        }t          j        |¦  «        }d|v sJ ‚t          t          j	        |¦  «        }| 
                    | j        | j        ¦  «        }| 
                    | j        | j        ¦  «        }||k    sJ ‚d S )Nó   _sklearn_version)r   Ú	load_irisr   rd   r�   ÚtargetÚpickleÚdumpsr   Úloadsrê   )Úirisrë   Útree_pickleÚtree_restoredÚscore_of_originalÚscore_of_restoreds         r    Ú?test_pickle_version_warning_is_not_raised_with_matching_versionr,  ¨  s¬   € ÝÔÑÔ€DÝ!Ñ#Ô#×'Ò'¨¬	°4´;Ñ?Ô?€DÝ”,˜tÑ$Ô$€KØ +Ð-Ð-Ð-Ð-Ý&¥v¤|°[ÑAÔA€Mð Ÿ
š
 4¤9¨d¬kÑ:Ô:ÐØ%×+Ò+¨D¬I°t´{ÑCÔCÐØÐ 1Ò1Ð1Ð1Ð1Ð1Ð1r"   c                   ó   — e Zd Zd„ ZdS )ÚTreeBadVersionc                 óR   — t          | j                             ¦   «         d¬¦  «        S )NÚ	something)Ú_sklearn_version)rH   Ú__dict__Úitemsr9   s    r    Ú__getstate__zTreeBadVersion.__getstate__¶  s#   € Ý�D”M×'Ò'Ñ)Ô)¸KÐHÑHÔHÐHr"   N©r$   r%   r&   r4  r'   r"   r    r.  r.  µ  s(   € € € € € ðIð Ið Ið Ið Ir"   r.  z´Trying to unpickle estimator {estimator} from version {old_version} when using version {current_version}. This might lead to breaking code or invalid results. Use at your own risk.c                  ó<  — t          j        ¦   «         } t          ¦   «                              | j        | j        ¦  «        }t          j        |¦  «        }t           	                    ddt          j        ¬¦  «        }t          j        t          |¬¦  «        5 }t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        d         j        }t%          |t&          ¦  «        sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        t          j        k    sJ ‚d S )Nr.  r0  ©rÛ   Úold_versionÚcurrent_versionr²   r   )r   r"  r.  rd   r�   r#  r$  r%  Úpickle_error_messageÚformatÚsklearnÚ__version__r‚   ÚwarnsÚUserWarningr&  ÚlistÚmessageÚ
isinstancer   Úestimator_nameÚoriginal_sklearn_versionÚcurrent_sklearn_version)r'  rë   Útree_pickle_otherrA  Úwarning_records        r    Ú<test_pickle_version_warning_is_issued_upon_different_versionrH  Ã  sN  € ÝÔÑÔ€DÝÑÔ×Ò ¤	¨4¬;Ñ7Ô7€DÝœ TÑ*Ô*ÐÝ"×)Ò)Ø"ØÝÔ+ð *ñ ô €Gõ
 
Œ•k¨Ð	1Ñ	1Ô	1ð (°^ÝŒÐ&Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð Ô! !Ô$Ô,€GÝ�gÕ9Ñ:Ô:Ð:Ð:Ð:ØÔ!Ð%5Ò5Ð5Ð5Ð5ØÔ+¨{Ò:Ð:Ð:Ð:ØÔ*­gÔ.AÒAÐAÐAÐAÐAÐAs   ÂB7Â7B;Â>B;c                   ó   — e Zd Zd„ ZdS )ÚTreeNoVersionc                 ó   — | j         S r   )r2  r9   s    r    r4  zTreeNoVersion.__getstate__×  s
   € ØŒ}Ðr"   Nr5  r'   r"   r    rJ  rJ  Ö  s#   € € € € € ðð ð ð ð r"   rJ  c                  ó–  — t          j        ¦   «         } t          ¦   «                              | j        | j        ¦  «        }t          j        |¦  «        }d|vsJ ‚t           	                    ddt          j        ¬¦  «        }t          j        t          |¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr!  rJ  zpre-0.18r7  r²   )r   r"  rJ  rd   r�   r#  r$  r%  r:  r;  r<  r=  r‚   r>  r?  r&  )r'  rë   Útree_pickle_noversionrA  s       r    ÚDtest_pickle_version_warning_is_issued_when_no_version_info_in_picklerN  Û  s  € ÝÔÑÔ€Då‰?Œ?×Ò˜tœy¨$¬+Ñ6Ô6€Då"œL¨Ñ.Ô.ÐØÐ&;Ð;Ð;Ð;Ð;Ý"×)Ò)Ø!ØÝÔ+ð *ñ ô €Gõ 
Œ•k¨Ð	1Ñ	1Ô	1ð ,ð ,ÝŒÐ*Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   ÂB>Â>CÃCc                  óL  — t          j        ¦   «         } t          ¦   «                              | j        | j        ¦  «        }t          j        |¦  «        }	 t          j        }dt          _        t          t          j
        |¦  «         |t          _        d S # |t          _        w xY w)NÚ
notsklearn)r   r"  rJ  rd   r�   r#  r$  r%  r%   r   r&  )r'  rë   rM  Úmodule_backups       r    ÚCtest_pickle_version_no_warning_is_issued_with_non_sklearn_estimatorrR  ì  s‡   € ÝÔÑÔ€DÝ‰?Œ?×Ò˜tœy¨$¬+Ñ6Ô6€DÝ"œL¨Ñ.Ô.Ðð1Ý%Ô0ˆØ#/�Ô Ý�6œ<Ð)>Ñ?Ô?Ð?à#0�Ô Ð Ð ø =�Ô Ð0Ð0Ð0Ð0s   Á2B ÂB#c                   ó   — e Zd Zd„ Zd„ ZdS )ÚDontPickleAttributeMixinc                 óB   — | j                              ¦   «         }d |d<   |S ©NÚ_attribute_not_pickled©r2  rP   ©r   r�   s     r    r4  z%DontPickleAttributeMixin.__getstate__ù  ó%   € ØŒ}×!Ò!Ñ#Ô#ˆØ)-ˆÐ%Ñ&Øˆr"   c                 óD   — d|d<   | j                              |¦  «         d S )NTÚ	_restored)r2  Úupdate)r   Ústates     r    Ú__setstate__z%DontPickleAttributeMixin.__setstate__þ  s(   € Ø!ˆˆkÑØŒ×Ò˜UÑ#Ô#Ð#Ð#Ð#r"   N)r$   r%   r&   r4  r_  r'   r"   r    rT  rT  ø  s2   € € € € € ðð ð ð
$ð $ð $ð $ð $r"   rT  c                   ó   — e Zd Zdd„ZdS )ÚMultiInheritanceEstimatorr¦   c                 ó"   — || _         d | _        d S r   ©Úattribute_pickledrW  ©r   rd  s     r    r!   z"MultiInheritanceEstimator.__init__  ó   € Ø!2ˆÔØ&*ˆÔ#Ð#Ð#r"   N©r¦   r#   r'   r"   r    ra  ra    s(   € € € € € ð+ð +ð +ð +ð +ð +r"   ra  c                  ó¾   — t          ¦   «         } d| _        t          j        | ¦  «        }t          j        |¦  «        }|j        dk    sJ ‚|j        �J ‚|j        sJ ‚d S ©Nú$this attribute should not be pickledr¦   )ra  rW  r$  r%  r&  rd  r\  ©rÛ   Ú
serializedÚestimator_restoreds      r    Ú3test_pickling_when_getstate_is_overwritten_by_mixinrn  	  sl   € Ý)Ñ+Ô+€IØ'M€IÔ$å”˜iÑ(Ô(€JÝœ jÑ1Ô1ÐØÔ/°1Ò4Ð4Ð4Ð4ØÔ4Ð<Ð<Ð<ØÔ'Ð'Ð'Ð'Ð'Ð'r"   c                  ó€  — 	 t          ¦   «         } d}|| _        t          | ¦  «        j        }dt          | ¦  «        _        |                      ¦   «         }|d ddœk    sJ ‚d|d<   |                      |¦  «         | j        dk    sJ ‚| j        sJ ‚	 |t          | ¦  «        _        d S # |t          | ¦  «        _        w xY w)Nrj  rP  r¦   )rW  rd  r  rd  )ra  rW  r    r%   r4  r_  rd  r\  )rÛ   ÚtextÚold_modrl  s       r    ÚFtest_pickling_when_getstate_is_overwritten_by_mixin_outside_of_sklearnrr    sÙ   € ð-Ý-Ñ/Ô/ˆ	Ø5ˆØ+/ˆ	Ô(Ý�y‘/”/Ô,ˆØ%1�ˆY‰ŒÔ"à×+Ò+Ñ-Ô-ˆ
Ø¸ÐSTÐUÐUÒUÐUÐUÐUà*+ˆ
Ð&Ñ'Ø×Ò˜zÑ*Ô*Ð*ØÔ*¨aÒ/Ð/Ð/Ð/ØÔ"Ð"Ð"Ð"Ð"à%,�ˆY‰ŒÔ"Ð"Ð"ø W�ˆY‰ŒÔ"Ð,Ð,Ð,Ð,s   ‚BB' Â'B=c                   ó   — e Zd Zdd„Zd„ ZdS )ÚSingleInheritanceEstimatorr¦   c                 ó"   — || _         d | _        d S r   rc  re  s     r    r!   z#SingleInheritanceEstimator.__init__(  rf  r"   c                 óB   — | j                              ¦   «         }d |d<   |S rV  rX  rY  s     r    r4  z'SingleInheritanceEstimator.__getstate__,  rZ  r"   Nrg  )r$   r%   r&   r!   r4  r'   r"   r    rt  rt  '  s7   € € € € € ð+ð +ð +ð +ðð ð ð ð r"   rt  )Úcategoryc                  ó¬   — t          ¦   «         } d| _        t          j        | ¦  «        }t          j        |¦  «        }|j        dk    sJ ‚|j        �J ‚d S ri  )rt  rW  r$  r%  r&  rd  rk  s      r    ÚCtest_pickling_works_when_getstate_is_overwritten_in_the_child_classry  2  s]   € å*Ñ,Ô,€IØ'M€IÔ$å”˜iÑ(Ô(€JÝœ jÑ1Ô1ÐØÔ/°1Ò4Ð4Ð4Ð4ØÔ4Ð<Ð<Ð<Ð<Ð<r"   c                  óª  — t          ¦   «         } t          ¦   «         }|                      ¦   «         d         sJ ‚|                     ¦   «         d         rJ ‚t          ¦   «         }|                     ¦   «         d         rJ ‚t	          ¦   «         }|                     ¦   «         d         sJ ‚t          ¦   «         }|                     ¦   «         d         sJ ‚d S )Nr8   )r6   r=   Ú	_get_tagsrC   rF   rJ   )Únan_tag_estÚno_nan_tag_estÚredefine_tags_estÚdiamond_tag_estÚinherit_diamond_tag_ests        r    Útest_tag_inheritancer�  =  sÎ   € õ ‘(”(€KÝ‘Z”Z€NØ× Ò Ñ"Ô" ;Ô/Ð/Ð/Ð/Ø×'Ò'Ñ)Ô)¨+Ô6Ð6Ð6Ð6å#™œÐØ ×*Ò*Ñ,Ô,¨[Ô9Ð9Ð9Ð9å)Ñ+Ô+€OØ×$Ò$Ñ&Ô& {Ô3Ð3Ð3Ð3å8Ñ:Ô:ÐØ"×,Ò,Ñ.Ô.¨{Ô;Ð;Ð;Ð;Ð;Ð;r"   c                  óÔ   —  G d„ dt           ¦  «        }  | ¦   «         }d}t          j        t          |¬¦  «        5  |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd Zdd„Zdd„ZdS )ú<test_raises_on_get_params_non_attribute.<locals>.MyEstimatorr¦   c                 ó   — d S r   r'   )r   Úparams     r    r!   zEtest_raises_on_get_params_non_attribute.<locals>.MyEstimator.__init__Q  rø   r"   Nc                 ó   — | S r   r'   ra   s      r    rd   z@test_raises_on_get_params_non_attribute.<locals>.MyEstimator.fitT  r  r"   rg  r   )r$   r%   r&   r!   rd   r'   r"   r    r   r„  P  s<   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	r"   r   z-'MyEstimator' object has no attribute 'param'r²   )r   r‚   rƒ   ÚAttributeErrorrv   )r   r‰   r´   s      r    Ú'test_raises_on_get_params_non_attributer‰  O  sÇ   € ðð ð ð ð •mñ ô ð ð ˆ+‰-Œ-€CØ
9€Cå	Œ•~¨SÐ	1Ñ	1Ô	1ð ð Ø�ŠÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   »AÁA!Á$A!c                  óö   — t          ¦   «         } |                      ¦   «         }d|v sJ ‚d|v sJ ‚t          d¬¦  «        5  |                      ¦   «         }d|v sJ ‚d|vsJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz
text/plainz	text/htmlrp  ©Údisplay)r   Ú_repr_mimebundle_r   )rë   Úoutputs     r    Útest_repr_mimebundle_r�  ^  së   € å!Ñ#Ô#€DØ×#Ò#Ñ%Ô%€FØ˜6Ð!Ð!Ð!Ð!Ø˜&Ð Ð Ð Ð å	 Ð	'Ñ	'Ô	'ð )ð )Ø×'Ò'Ñ)Ô)ˆØ˜vÐ%Ð%Ð%Ð%Ø &Ð(Ð(Ð(Ð(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ¿!A.Á.A2Á5A2c                  ó:  — t          ¦   «         } |                      ¦   «         }d|v sJ ‚t          d¬¦  «        5  d}t          j        t
          |¬¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz<style>rp  r‹  z _repr_html_ is only defined whenr²   )r   Ú_repr_html_r   r‚   rƒ   rˆ  )rë   rŽ  r´   s      r    Útest_repr_html_wrapsr’  k  s$  € å!Ñ#Ô#€Dà×ÒÑÔ€FØ˜ÐÐÐÐå	 Ð	'Ñ	'Ô	'ð (ð (Ø0ˆÝŒ]�>°Ð5Ñ5Ô5ð 	(ð 	(Ø×%Ò%Ñ'Ô'ˆFð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s5   ¹BÁA8Á,BÁ8A<	Á<BÁ?A<	Â BÂBÂBc                  ó  — t          ¦   «         } g d¢g d¢g}|                      |d¬¦  «         | j        dk    sJ ‚d}t          j        t
          |¬¦  «        5  |                      dd	¬¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z>Check that `_check_n_features` validates data when reset=False)rY   rt   r  )r  r¦   é   T©Úresetr  zHX does not contain any features, but MyEstimator is expecting 3 featuresr²   ú	invalid XFN)r   Ú_check_n_featuresÚn_features_in_r‚   rƒ   rÅ   )r‰   ÚX_trainr´   s      r    Útest_n_features_in_validationr›  x  sá   € å
‰-Œ-€CØˆyˆy˜)˜)˜)Ð$€GØ×Ò˜'¨ÐÑ.Ô.Ð.àÔ Ò"Ð"Ð"Ð"à
T€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 8ð 8Ø×Ò˜k°ÐÑ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s   ÁA=Á=BÂBc                  ó¢   — t          ¦   «         } |                      dd¬¦  «         t          | d¦  «        rJ ‚|                      dd¬¦  «         dS )z]Check that `_check_n_features` does not validate data when
    n_features_in_ is not defined.r—  Tr•  r™  FN)r   r˜  r   )r‰   s    r    Ú test_n_features_in_no_validationr�  …  s^   € õ ‰-Œ-€CØ×Ò˜+¨TÐÑ2Ô2Ð2å�sÐ,Ñ-Ô-Ð-Ð-Ð-ð ×Ò˜+¨UÐÑ3Ô3Ð3Ð3Ð3r"   c                  ó:  — t          j        d¦  «        } t          j        ¦   «         }|j        }|                      ||j        ¬¦  «        } G d„ dt          t          ¦  «        } |¦   «          	                    |¦  «        }t          |j        |j        ¦  «         | 	                    |¦  «         t          |d¦  «        rJ ‚| 	                    |¦  «         d}|                      ||j        ddd…         ¬¦  «        }t          j        t          |¬	¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   d
}t          j        t$          |¬	¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   d} |¦   «          	                    |¦  «        }t          j        t$          |¬	¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   |                      |¦  «        } |¦   «         }t'          j        ¦   «         5  t'          j        dt$          ¦  «         | 	                    |¦  «         ddd¦  «         n# 1 swxY w Y   ||g}	|	D ]\}
t'          j        ¦   «         5  t'          j        dt$          ¦  «         |                     |
¦  «         ddd¦  «         n# 1 swxY w Y   Œ]|                      |g d¢¬¦  «        } |¦   «         }t-          j        d¦  «        }t          j        t0          |¬	¦  «        5  | 	                    |¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t0          |¬	¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z;Check that feature_name_in are recorded by `_validate_data`Úpandas©Úcolumnsc                   ó   — e Zd Zdd„Zd„ ZdS )ú.test_feature_names_in.<locals>.NoOpTransformerNc                 ó0   — |                       |¦  «         | S r   ©Ú_validate_datara   s      r    rd   z2test_feature_names_in.<locals>.NoOpTransformer.fit™  ó   € Ø×Ò Ñ"Ô"Ð"ØˆKr"   c                 ó4   — |                       |d¬¦  «         |S ©NFr•  r¥  rf   s     r    rú   z8test_feature_names_in.<locals>.NoOpTransformer.transform�  s    € Ø×Ò ¨ÐÑ/Ô/Ð/ØˆHr"   r   ©r$   r%   r&   rd   rú   r'   r"   r    ÚNoOpTransformerr£  ˜  s7   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	r"   r«  Úfeature_names_in_z5The feature names should match those that were passedNr  r²   zVX does not have valid feature names, but NoOpTransformer was fitted with feature nameszIX has feature names, but NoOpTransformer was fitted without feature namesÚerror)r3   r4   rY   rt   a™  Feature names are only supported if all input features have string names, but your input has ['int', 'str'] as feature name / column name types. If you want feature names to be stored and validated, you must convert them all to strings, by using X.columns = X.columns.astype(str) for example. Otherwise you can remove feature / column names from your input data, or convert them all to a non-string data type.)r‚   Úimportorskipr   r"  r�   Ú	DataFrameÚfeature_namesr   r   rd   r   r¬  r¡  r   rƒ   rÅ   rú   r>  r?  ÚwarningsÚcatch_warningsÚsimplefilterÚreÚescaper…   )Úpdr'  ÚX_nprõ   r«  Útransr´   Údf_badÚdf_int_namesÚXsrb   Údf_mixeds               r    Útest_feature_names_inr½  ‘  s:  € å	Ô	˜XÑ	&Ô	&€BÝÔÑÔ€DØŒ9€DØ	�Š�d DÔ$6ˆÑ	7Ô	7€Bðð ð ð ð Õ*­Mñ ô ð ð ˆOÑÔ×!Ò! "Ñ%Ô%€EÝ�uÔ.°´
Ñ;Ô;Ð;ð 
‡I‚Iˆd�O„O€OÝ�uÐ1Ñ2Ô2Ð2Ð2Ð2à	‡I‚Iˆb�M„M€MØ
A€CØ�\Š\˜$¨Ô(:¸4¸4¸R¸4Ô(@ˆ\ÑAÔA€FÝ	Œ•z¨Ð	-Ñ	-Ô	-ð  ð  Ø�Š˜ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð
	$ð õ 
Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø�Š˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð V€CØˆOÑÔ×!Ò! $Ñ'Ô'€EÝ	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø�Š˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð —<’< Ñ%Ô%€LØˆOÑÔ€EÝ	Ô	 Ñ	"Ô	"ð  ð  ÝÔ˜g¥{Ñ3Ô3Ð3Ø�	Š	�,ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð �Ð	€BØð ð ˆÝÔ$Ñ&Ô&ð 	ð 	ÝÔ! '­;Ñ7Ô7Ð7Ø�OŠO˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øð
 �|Š|˜DÐ*:Ð*:Ð*:ˆ|Ñ;Ô;€HØˆOÑÔ€EÝ
Œ)ð	?ñô €Cõ 
Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø�	Š	�(ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•y¨Ð	,Ñ	,Ô	,ð "ð "Ø�Š˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s~   ÄD;Ä;D?ÅD?Å#FÆF	ÆF	Ç
G,Ç,G0Ç3G0È)0I%É%I)É,I)Ê0KËK	ËK	Ì%MÍMÍMÍ-NÎNÎNc                  óè  — t          j        d¦  «        } t          j        ¦   «         }|                      |j        |j        ¬¦  «        }|                      |j        ¦  «        } G d„ dt          t          ¦  «        } |¦   «         }|                     |d¬¦  «        }t          |t          j        ¦  «        sJ ‚t          ||                     ¦   «         ¦  «         |                     |d¬¦  «        }||u sJ ‚|                     |d¬¦  «        }t          |t          j        ¦  «        sJ ‚t          ||                     ¦   «         ¦  «         |                     |d¬¦  «        }	|	|u sJ ‚|                     ||d¬¦  «        \  }}t          |t          j        ¦  «        sJ ‚t          ||                     ¦   «         ¦  «         t          |t          j        ¦  «        sJ ‚t          ||                     ¦   «         ¦  «         |                     ||d¬¦  «        \  }}	||u sJ ‚|	|u sJ ‚d	}
t          j        t$          |
¬
¦  «        5  |                     ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z/Check cast_to_ndarray option of _validate_data.rŸ  r   c                   ó   — e Zd ZdS )ú;test_validate_data_cast_to_ndarray.<locals>.NoOpTransformerNrK   r'   r"   r    r«  rÀ  ç  ó   € € € € € Øˆr"   r«  T)Úcast_to_ndarrayF)rc   rÂ  z*Validation should be done on X, y or both.r²   N)r‚   r®  r   r"  r¯  r�   r°  ÚSeriesr#  r   r   r¦  rB  rS   Úndarrayr   Úto_numpyrƒ   rÅ   )r¶  r'  rõ   rc   r«  Úno_opÚX_np_outÚX_df_outÚy_np_outÚy_series_outr´   s              r    Ú"test_validate_data_cast_to_ndarrayrË  ß  sµ  € õ 
Ô	˜XÑ	&Ô	&€BÝÔÑÔ€DØ	�Š�d”i¨Ô);ˆÑ	<Ô	<€BØ
�	Š	�$”+ÑÔ€Aðð ð ð ð Õ*­Mñ ô ð ð ˆOÑÔ€EØ×#Ò# B¸Ð#Ñ=Ô=€HÝ�h¥¤
Ñ+Ô+Ð+Ð+Ð+Ý�H˜bŸkšk™mœmÑ,Ô,Ð,à×#Ò# B¸Ð#Ñ>Ô>€HØ�rˆ>ˆ>ˆ>ˆ>à×#Ò# a¸Ð#Ñ>Ô>€HÝ�h¥¤
Ñ+Ô+Ð+Ð+Ð+Ý�H˜aŸjšj™lœlÑ+Ô+Ð+à×'Ò'¨!¸UÐ'ÑCÔC€LØ˜1ÐÐÐÐà×-Ò-¨b°!ÀTÐ-ÑJÔJÑ€HˆhÝ�h¥¤
Ñ+Ô+Ð+Ð+Ð+Ý�H˜bŸkšk™mœmÑ,Ô,Ð,Ý�h¥¤
Ñ+Ô+Ð+Ð+Ð+Ý�H˜aŸjšj™lœlÑ+Ô+Ð+à"×1Ò1°"°aÈÐ1ÑOÔOÑ€HˆlØ�rˆ>ˆ>ˆ>ˆ>Ø˜1ÐÐÐÐà
6€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø×ÒÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÉI'É'I+É.I+c                  ó¸   — t          ¦   «                              d¬¦  «        } t          d| ¦  «        }t          | ¦  «        }t          d|¦  «        }||k    sJ ‚dS )z-Check that clone keeps the set_output config.rŸ  )rú   rú   N)r   Ú
set_outputr   r	   )ÚssÚconfigÚss_cloneÚconfig_clones       r    Útest_clone_keeps_output_configrÒ    s`   € õ 
Ñ	Ô	×	$Ò	$¨xÐ	$Ñ	8Ô	8€BÝ ¨RÑ0Ô0€Få�R‰yŒy€HÝ% k°8Ñ<Ô<€LØ�\Ò!Ð!Ð!Ð!Ð!Ð!r"   c                   ó   — e Zd ZdS )Ú_EmptyNrK   r'   r"   r    rÔ  rÔ    rL   r"   rÔ  c                   ó   — e Zd ZdS )ÚEmptyEstimatorNrK   r'   r"   r    rÖ  rÖ    rL   r"   rÖ  rÛ   c                 ó¾   — |                       ¦   «         }dt          j        i}||k    sJ ‚t          j        t          j        t          ¦   «         ¦  «        ¦  «         dS )zàCheck that ``__getstate__`` returns an empty ``dict`` with an empty
    instance.

    Python 3.11+ changed behaviour by returning ``None`` instead of raising an
    ``AttributeError``. Non-regression test for gh-25188.
    r1  N)r4  r<  r=  r$  r&  r%  r   )rÛ   r^  Úexpecteds      r    Ú"test_estimator_empty_instance_dictrÙ    sY   € ð ×"Ò"Ñ$Ô$€EØ"¥GÔ$7Ð8€HØ�HÒÐÐÐõ „L•”�m™oœoÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r"   c                  óŠ  —  G d„ d¦  «        }  G d„ dt           | ¦  «        }d}t          j        t          |¬¦  «        5   |¦   «                              ¦   «          ddd¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          j         |¦   «         ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z:Using a `BaseEstimator` with `__slots__` is not supported.c                   ó   — e Zd ZdZdS )úDtest_estimator_getstate_using_slots_error_message.<locals>.WithSlots)ÚxN)r$   r%   r&   Ú	__slots__r'   r"   r    Ú	WithSlotsrÜ  .  s   € € € € € Øˆ	ˆ	ˆ	r"   rß  c                   ó   — e Zd ZdS )úDtest_estimator_getstate_using_slots_error_message.<locals>.EstimatorNrK   r'   r"   r    Ú	Estimatorrá  1  rÁ  r"   râ  zRYou cannot use `__slots__` in objects inheriting from `sklearn.base.BaseEstimator`r²   N)r   r‚   rƒ   r…   r4  r$  r%  )rß  râ  r´   s      r    Ú1test_estimator_getstate_using_slots_error_messagerã  +  su  € ðð ð ð ð ñ ô ð ðð ð ð ð •M 9ñ ô ð ð	'ð õ
 
Œ•y¨Ð	,Ñ	,Ô	,ð #ð #Øˆ	‰Œ× Ò Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ 
Œ•y¨Ð	,Ñ	,Ô	,ð "ð "ÝŒ�Y�Y‘[”[Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s#   ¿A(Á(A,Á/A,ÂB8Â8B<Â?B<zconstructor_name, minversion))Ú	dataframez1.5.0)Úpyarrowz12.0.0)Úpolarsz0.20.23c                 óò  — g d¢g d¢g}g d¢}t          || ||¬¦  «        } G d„ dt          t          ¦  «        } |¦   «         }|                     |¦  «         t	          |j        |¦  «         |                     |¦  «        }| dk    rt          ||¦  «         g d¢}t          || |¬	¦  «        }	t          j	        t          d
¬¦  «        5  |                     |	¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z:Uses the dataframe exchange protocol to get feature names.)rY   r  rt   )r  r  r”  )Úcol_0Úcol_1Úcol_2)Úcolumns_nameÚ
minversionc                   ó   — e Zd Zdd„Zd„ ZdS )ú0test_dataframe_protocol.<locals>.NoOpTransformerNc                 ó0   — |                       |¦  «         | S r   r¥  ra   s      r    rd   z4test_dataframe_protocol.<locals>.NoOpTransformer.fitQ  r§  r"   c                 ó0   — |                       |d¬¦  «        S r©  r¥  rf   s     r    rú   z:test_dataframe_protocol.<locals>.NoOpTransformer.transformU  s   € Ø×&Ò& q°Ð&Ñ6Ô6Ð6r"   r   rª  r'   r"   r    r«  rî  P  s7   € € € € € ð	ð 	ð 	ð 	ð	7ð 	7ð 	7ð 	7ð 	7r"   r«  rå  )r3   r4   r+   )rë  zThe feature names should matchr²   N)r   r   r   rd   r   r¬  rú   r   r‚   rƒ   rÅ   )
Úconstructor_namerì  r�   r¡  rõ   r«  rÆ  ÚX_outÚ	bad_namesr¹  s
             r    Útest_dataframe_protocolrô  @  su  € ð ˆIˆI�y�y�yÐ!€DØ)Ð)Ð)€GÝ	ØÐ¨WÀð
ñ 
ô 
€Bð7ð 7ð 7ð 7ð 7Õ*­Mñ 7ô 7ð 7ð ˆOÑÔ€EØ	‡I‚Iˆb�M„M€MÝ�uÔ.°Ñ8Ô8Ð8Ø�OŠO˜BÑÔ€Eà˜9Ò$Ð$õ 	˜˜EÑ"Ô"Ð"à��€IÝ Ð&6ÀYÐOÑOÔO€FÝ	Œ•zÐ)IÐ	JÑ	JÔ	Jð  ð  Ø�Š˜ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   Ã	C,Ã,C0Ã3C0Úenable_slep006c                  óþ  —  G d„ dt           t          ¦  «        } t          j        t          d¬¦  «        5   | ¦   «                              d¬¦  «                             dggdgd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        d¬	¦  «        5 } | ¦   «                              d¬¦  «                             dggdg¦  «         t          |¦  «        d
k    sJ ‚	 ddd¦  «         dS # 1 swxY w Y   dS )zkTest that having a transformer with metadata for transform raises a
    warning when calling fit_transform.c                   ó   — e Zd Zdd„Zdd„ZdS )úTtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformerNc                 ó   — | S r   r'   ©r   rb   rc   Úprops       r    rd   zXtest_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.fitn  r  r"   c                 ó   — |S r   r'   ©r   rb   rû  s      r    rú   z^test_transformer_fit_transform_with_metadata_in_transform.<locals>.CustomTransformer.transformq  ó   € ØˆHr"   r.   r   rª  r'   r"   r    ÚCustomTransformerrø  m  ó<   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	r"   rÿ  z*`transform` method which consumes metadatar²   T©rû  rY   N©Úrecordr   )
r   r   r‚   r>  r?  Úset_transform_requestr  r±  r²  r¹   )rÿ  r  s     r    Ú9test_transformer_fit_transform_with_metadata_in_transformr  h  sª  € ð
ð ð ð ð �MÕ+;ñ ô ð õ 
Œ•kÐ)UÐ	VÑ	VÔ	Vð 
ð 
ØÐÑÔ×1Ò1°tÐ1Ñ<Ô<×JÒJØˆSˆE�A�3˜Qð 	Kñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð  °ØÐÑÔ×1Ò1°tÐ1Ñ<Ô<×JÒJÈQÈCÈ5ÐSTÐRUÑVÔVÐVÝ�6‰{Œ{˜aÒÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  ó$   µ8A9Á9A=Â A=ÂAC2Ã2C6Ã9C6c                  óþ  —  G d„ dt           t          ¦  «        } t          j        t          d¬¦  «        5   | ¦   «                              d¬¦  «                             dggdgd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        d¬	¦  «        5 } | ¦   «                              d¬¦  «                             dggdg¦  «         t          |¦  «        d
k    sJ ‚	 ddd¦  «         dS # 1 swxY w Y   dS )ziTest that having an OutlierMixin with metadata for predict raises a
    warning when calling fit_predict.c                   ó   — e Zd Zdd„Zdd„ZdS )úVtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetectorNc                 ó   — | S r   r'   rú  s       r    rd   zZtest_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.fitˆ  r  r"   c                 ó   — |S r   r'   rý  s      r    rg   z^test_outlier_mixin_fit_predict_with_metadata_in_predict.<locals>.CustomOutlierDetector.predict‹  rþ  r"   r.   r   )r$   r%   r&   rd   rg   r'   r"   r    ÚCustomOutlierDetectorr	  ‡  r   r"   r  z(`predict` method which consumes metadatar²   Tr  rY   Nr  r   )
r   r   r‚   r>  r?  Úset_predict_requestÚfit_predictr±  r²  r¹   )r  r  s     r    Ú7test_outlier_mixin_fit_predict_with_metadata_in_predictr  ‚  s©  € ð
ð ð ð ð ¥­|ñ ô ð õ 
Œ•kÐ)SÐ	TÑ	TÔ	Tð 
ð 
ØÐÑÔ×3Ò3¸Ð3Ñ>Ô>×JÒJØˆSˆE�A�3˜Qð 	Kñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð  °ØÐÑÔ×3Ò3¸Ð3Ñ>Ô>×JÒJÈQÈCÈ5ÐSTÐRUÑVÔVÐVÝ�6‰{Œ{˜aÒÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  r  )nr$  r´  r±  ÚnumpyrS   r‚   Úscipy.sparseÚsparser�   Únumpy.testingr   r<  r   r   Úsklearn.baser   r   r   r	   r
   Úsklearn.decompositionr   Úsklearn.exceptionsr   Úsklearn.model_selectionr   Úsklearn.pipeliner   Úsklearn.preprocessingr   Úsklearn.svmr   Úsklearn.treer   r   Úsklearn.utils._mockingr   Úsklearn.utils._set_outputr   Úsklearn.utils._testingr   r   r   r   r   r)   r1   r6   r=   rC   rF   rJ   rN   rV   r]   ri   r{   r€   rŠ   r“   r—   r›   r®   r°   rµ   r¼   r¿   rÆ   rË   rÏ   rÞ   râ   ÚmarkÚparametrizeÚmake_classificationÚmake_regressionrð   r  r  r,  r.  r:  rH  rJ  rN  rR  rT  ra  rn  rr  rt  r?  ry  r�  r‰  r�  r’  r›  r�  r½  rË  rÒ  rÔ  rÖ  rÙ  rã  rô  Úusefixturesr  r  r'   r"   r    ú<module>r$     s‘  ðð €€€Ø 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø %Ð %Ð %Ð %Ð %Ð %Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð �-ñ ô ð ðð ð ð ð ˆñ ô ð ðð ð ð ð ˆñ ô ð ð#ð #ð #ð #ð #ˆ]ñ #ô #ð #ð
$ð $ð $ð $ð $ˆ}ñ $ô $ð $ð
$ð $ð $ð $ð $�&ñ $ô $ð $ð
ð ð ð ð ˜& (ñ ô ð ð
	ð 	ð 	ð 	ð 	Ð!4ñ 	ô 	ð 	ðð ð ð ð �}ñ ô ð ðð ð ð ð ˆMñ ô ð ðð ð ð ð ñ ô ð ðð ð ð ð �Mñ ô ð ð(ð (ð (ð$6ð 6ð 6ðð ð ð(8ð 8ð 8ð#ð #ð #ð(ð (ð (ðLð Lð Lð#ð #ð #ðð ð ð&ð &ð &ðð ð ð
 ð 
 ð 
 ðUð Uð Uð
/ð 
/ð 
/ð$Nð Nð Nð&$ð $ð $ð „×ÒØð #Ð"¨Q¸QÐ?Ñ?Ô?Ø(ˆHÔ(°aÐ8Ñ8Ô8ð	
ð
 "Ð!¨A¸AÐ>Ñ>Ô>Ø$ˆHÔ$°!Ð4Ñ4Ô4ð	
ð	ñô ð3ð 3ñô ð3ð#3ð #3ð #3ðL)>ð )>ð )>ðX
2ð 
2ð 
2ðIð Ið Ið Ið IÐ+ñ Iô Ið Iðð ðBð Bð Bð&ð ð ð ð Ð*ñ ô ð ð
,ð ,ð ,ð"	1ð 	1ð 	1ð$ð $ð $ð $ð $ñ $ô $ð $ð+ð +ð +ð +ð +Ð 8¸-ñ +ô +ð +ð(ð (ð (ð-ð -ð -ð&ð ð ð ð  ñ ô ð ð €˜;Ð(Ñ(Ô(ð=ð =ñ )Ô(ð=ð<ð <ð <ð$ð ð ð
)ð 
)ð 
)ð
(ð 
(ð 
(ð
8ð 
8ð 
8ð	4ð 	4ð 	4ðK"ð K"ð K"ð\&ð &ð &ðR"ð "ð "ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�V˜]ñ 	ô 	ð 	ð „×Ò˜ } }¡¤¸¸Ñ8HÔ8HÐ&IÑJÔJð0ð 0ñ KÔJð0ð"ð "ð "ð* „×ÒØ"ðð ð ñô ð ð  ñô ð ð@ „×ÒÐ)Ñ*Ô*ð ð  ñ +Ô*ð ð2 „×ÒÐ)Ñ*Ô*ð ð  ñ +Ô*ð ð  ð  r"   