§
    §éUg¶=  ã                   ód  — d dl Z d dl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 d dlmZmZmZmZmZmZmZmZ d dlmZ d„ Zd	„ Zej                             d
e¦  «        d„ ¦   «         Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Zd„ Z  G d„ de¦  «        Z!d„ Z"d„ Z#ej                             dddg¦  «        d„ ¦   «         Z$d„ Z%ej                             dddg¦  «        d„ ¦   «         Z& G d„ ded¬ ¦  «        Z'd!„ Z(d"„ Z) G d#„ d$¦  «        Z*d%„ Z+d&„ Z, G d'„ d(e¦  «        Z-d)„ Z. G d*„ d+e¦  «        Z/d,„ Z0 G d-„ d.e¦  «        Z1ej                             dddg¦  «        d/„ ¦   «         Z2ej                             d0 e3ej4        ¦  «        ¦  «        d1„ ¦   «         Z5d2„ Z6d3„ Z7dS )4é    N)Ú
namedtuple)Úassert_array_equal)Úconfig_contextÚ
get_config)ÚStandardScaler)ÚADAPTERS_MANAGERÚContainerAdapterProtocolÚ_get_adapter_from_containerÚ_get_output_configÚ_safe_set_outputÚ_SetOutputMixinÚ_wrap_data_with_containerÚcheck_library_installed)ÚCSR_CONTAINERSc                  ó�  ‡— t          j        d¦  «        } t          j        g d¢g d¢g¦  «        }t          j        g d¢t          ¬¦  «        Št          j        ddg¦  «        }|                      ddgdd	gg|¬
¦  «        }t          j        d         }|                     ||ˆfd„¬¦  «        }t          || j        ¦  «        sJ ‚t          |j        ‰¦  «         t          |j        |¦  «         t          j        ddgt          ¬¦  «        }|                      ddgdd	ggddg¬
¦  «        }|                     |||¬¦  «        }t          |j        |¦  «         t          |j        |j        ¦  «         |                     |¦  «        sJ ‚|                     |¦  «        rJ ‚t          j        ddgt          ¬¦  «        }|                     ||¦  «        }t          |j        |¦  «         |                      g d¢g d¢gg d¢¬¦  «        }	|                      dgdggdg¬¦  «        }
|                     |	|
g¦  «        }|                      g d¢g d¢gg d¢¬¦  «        }| j                             ||¦  «         |                      ddgdd	ggddg¬¦  «        }t          j        ddgt          ¬¦  «        }|                     ||¦  «        }t          |j        |¦  «         |                      ddgdd	gg|¬
¦  «        }|                     ||ddgd¬¦  «        }||usJ ‚t'          |j        ¦  «        ddgk    sJ ‚t'          |j        ¦  «        ddgk    sJ ‚|                      ddgdd	gg|¬
¦  «        }|                     ||ddgd ¬¦  «        }||u sJ ‚t'          |j        ¦  «        ddgk    sJ ‚t'          |j        ¦  «        ddgk    sJ ‚d!S )"z+Check pandas adapter has expected behavior.Úpandas©é   r   é   ©r   r   r   )Úf0Úf1Úf2©Údtyper   r   é   r   ©Úindexc                  ó   •— ‰ S ©N© ©Úcolumnss   €úb/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/utils/tests/test_set_output.pyú<lambda>z%test_pandas_adapter.<locals>.<lambda>    ó   ø€ ÈG€ ó    r"   r   r   é
   é   ÚaÚc©r   r   é   ©r   é   é   ©r*   ÚbÚer/   r-   ©r   r   r-   r/   ©r   r/   r0   r-   ©r*   r2   r3   r+   Úx__aÚy__ar2   F©r#   ÚinplaceTN)ÚpytestÚimportorskipÚnpÚasarrayÚobjectÚ	DataFramer   ÚadaptersÚcreate_containerÚ
isinstancer   r#   r   Úis_supported_containerÚarrayÚrename_columnsÚhstackÚtestingÚassert_frame_equalÚlist)ÚpdÚX_npr   Ú	X_df_origÚadapterÚX_containerÚnew_columnsÚX_dfÚnew_dfÚX_df_1ÚX_df_2Ú	X_stackedÚexpected_dfÚX_outputr#   s                 @r$   Útest_pandas_adapterrX      s  ø€ å	Ô	˜XÑ	&Ô	&€BÝŒ:�y�y�y ) ) )Ð,Ñ-Ô-€DÝŒjÐ+Ð+Ð+µ6Ð:Ñ:Ô:€GÝŒJ˜˜1�vÑÔ€EØ—’˜q !˜f q¨! fÐ-°U�Ñ;Ô;€IåÔ'¨Ô1€GØ×*Ò*¨4°ÀOÀOÀOÀOÐ*ÑTÔT€KÝ�k 2¤<Ñ0Ô0Ð0Ð0Ð0Ý�{Ô*¨GÑ4Ô4Ð4Ý�{Ô(¨%Ñ0Ô0Ð0õ ”*˜d D˜\µÐ8Ñ8Ô8€KØ�<Š<˜!˜Q˜ ! Q Ð(°°R°ˆ<Ñ9Ô9€DØ×%Ò% d¨I¸{Ð%ÑKÔK€FÝ�v”~ {Ñ3Ô3Ð3Ý�v”| T¤ZÑ0Ô0Ð0à×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/Ø×-Ò-¨dÑ3Ô3Ð3Ð3Ð3õ ”(˜C ˜:­VÐ4Ñ4Ô4€KØ×#Ò# D¨+Ñ6Ô6€FÝ�v”~ {Ñ3Ô3Ð3ð �\Š\˜9˜9˜9 i i iÐ0¸/¸/¸/ˆ\ÑJÔJ€FØ�\Š\˜A˜3  ˜*¨s¨eˆ\Ñ4Ô4€FØ—’ ¨Ð/Ñ0Ô0€Ià—,’,Ø	ˆˆ�|�|�|Ð$Ð.BÐ.BÐ.Bð ñ ô €Kð „J×!Ò! )¨[Ñ9Ô9Ð9ð
 �<Š<˜!˜Q˜ ! Q Ð(°3¸°*ˆ<Ñ=Ô=€DÝ”(˜F FÐ+µ6Ð:Ñ:Ô:€KØ×#Ò# D¨+Ñ6Ô6€FÝ�v”~ {Ñ3Ô3Ð3ð �<Š<˜!˜Q˜ ! Q Ð(°ˆ<Ñ6Ô6€DØ×'Ò'¨¨d¸SÀ#¸JÐPUÐ'ÑVÔV€HØ˜4ÐÐÐÐÝ�”ÑÔ ! Q Ò'Ð'Ð'Ð'Ý�Ô Ñ!Ô! c¨3 ZÒ/Ð/Ð/Ð/ð �<Š<˜!˜Q˜ ! Q Ð(°ˆ<Ñ6Ô6€DØ×'Ò'¨¨d¸SÀ#¸JÐPTÐ'ÑUÔU€HØ�tÐÐÐÐÝ�”ÑÔ # s Ò+Ð+Ð+Ð+Ý�Ô Ñ!Ô! c¨3 ZÒ/Ð/Ð/Ð/Ð/Ð/r'   c                  ó¾  ‡— t          j        d¦  «        } t          j        g d¢g d¢g¦  «        }g d¢Š|                      |‰d¬¦  «        }t
          j        d         }|                     ||ˆfd„¬¦  «        }t          || j        ¦  «        sJ ‚t          |j
        ‰¦  «         t          j        g d	¢t          ¬
¦  «        }|                     |||¬¦  «        }t          |j
        |¦  «         |                     |¦  «        sJ ‚|                     |¦  «        rJ ‚t          j        g d¢t          ¬
¦  «        }|                     ||¦  «        }t          |j
        |¦  «         |                      g d¢g d¢gg d¢d¬¦  «        }|                      dgdggdgd¬¦  «        }|                     ||g¦  «        }	|                      g d¢g d¢gg d¢d¬¦  «        }
ddlm}  ||	|
¦  «         |                      ddgddggddgd¬¦  «        }|                     ||ddgd¬¦  «        }||usJ ‚t%          |j
        ¦  «        ddgk    sJ ‚t%          |j
        ¦  «        ddgk    sJ ‚|                      ddgddggddgd¬¦  «        }|                     ||ddgd¬¦  «        }||u sJ ‚t%          |j
        ¦  «        ddgk    sJ ‚t%          |j
        ¦  «        ddgk    sJ ‚d S )!z+Check Polars adapter has expected behavior.Úpolarsr   r   )r   r   Úf3Úrow)ÚschemaÚorientc                  ó   •— ‰ S r    r!   r"   s   €r$   r%   z%test_polars_adapter.<locals>.<lambda>^   r&   r'   r"   )r*   r2   r+   r   )r*   r+   Úgr,   r.   r1   r/   r-   r+   r4   r5   r6   r   )rI   r   r   r   r*   r2   ÚdFr9   TN)r;   r<   r=   rE   r@   r   rA   rB   rC   r   r#   r>   r?   rD   rF   rG   Úpolars.testingrI   rJ   )ÚplrL   rM   rN   rO   rP   rR   rS   rT   rU   rV   rI   rQ   rW   r#   s                 @r$   Útest_polars_adapterrd   V   s\  ø€ å	Ô	˜XÑ	&Ô	&€BÝŒ8�Y�Y�Y 	 	 	Ð*Ñ+Ô+€DØ Ð Ð €GØ—’˜T¨'¸%�Ñ@Ô@€IåÔ'¨Ô1€GØ×*Ò*¨4°ÀOÀOÀOÀOÐ*ÑTÔT€Kå�k 2¤<Ñ0Ô0Ð0Ð0Ð0Ý�{Ô*¨GÑ4Ô4Ð4õ ”*˜_˜_˜_µFÐ;Ñ;Ô;€KØ×%Ò% i°ÀKÐ%ÑPÔP€FÝ�v”~ {Ñ3Ô3Ð3à×)Ò)¨)Ñ4Ô4Ð4Ð4Ð4Ø×-Ò-¨dÑ3Ô3Ð3Ð3Ð3õ ”(˜?˜?˜?µ&Ð9Ñ9Ô9€KØ×#Ò# I¨{Ñ;Ô;€FÝ�v”~ {Ñ3Ô3Ð3ð �\Š\˜9˜9˜9 i i iÐ0¸¸¸ÐQVˆ\ÑWÔW€FØ�\Š\˜A˜3  ˜*¨c¨U¸5ˆ\ÑAÔA€FØ—’ ¨Ð/Ñ0Ô0€Ià—,’,Ø	ˆˆ�|�|�|Ð$Ð-AÐ-AÐ-AÈ%ð ñ ô €Kð 2Ð1Ð1Ð1Ð1Ð1àÐ�y +Ñ.Ô.Ð.ð �<Š<˜!˜Q˜ ! Q Ð(°#°s°ÀEˆ<ÑJÔJ€DØ×'Ò'¨¨d¸SÀ#¸JÐPUÐ'ÑVÔV€HØ˜4ÐÐÐÐÝ�”ÑÔ # s Ò+Ð+Ð+Ð+Ý�Ô Ñ!Ô! c¨3 ZÒ/Ð/Ð/Ð/ð �<Š<˜!˜Q˜ ! Q Ð(°#°s°ÀEˆ<ÑJÔJ€DØ×'Ò'¨¨d¸SÀ#¸JÐPTÐ'ÑUÔU€HØ�tÐÐÐÐÝ�”ÑÔ # s Ò+Ð+Ð+Ð+Ý�Ô Ñ!Ô! c¨3 ZÒ/Ð/Ð/Ð/Ð/Ð/r'   Úcsr_containerc           	      óH  — t          j        g d¢g d¢g¦  «        } | |¦  «        }d}t          d¬¦  «        5  t          j        t
          |¬¦  «        5  t          d||t          ¦   «         ¦  «         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 )	z*Check errors in _wrap_data_with_container.r   r   z.The transformer outputs a scipy sparse matrix.r   ©Útransform_output©ÚmatchÚ	transformN)r=   r>   r   r;   ÚraisesÚ
ValueErrorr   r   )re   ÚXÚX_csrrj   s       r$   Ú test__container_error_validationrp   Œ   sR  € õ 	Œ
�I�I�I˜y˜y˜yÐ)Ñ*Ô*€AØˆM˜!ÑÔ€EØ<€EÝ	¨Ð	2Ñ	2Ô	2ð Oð OÝŒ]�:¨UÐ3Ñ3Ô3ð 	Oð 	OÝ% k°5¸!½^Ñ=MÔ=MÑNÔNÐNð	Oð 	Oð 	Oñ 	Oô 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oøøøð 	Oð 	Oð 	Oð 	OðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð Oð Os5   ¸BÁA?Á3BÁ?B	ÂBÂB	ÂBÂBÂBc                   ó   — e Zd ZdS )Ú,EstimatorWithoutSetOutputAndWithoutTransformN©Ú__name__Ú
__module__Ú__qualname__r!   r'   r$   rr   rr   —   s   € € € € € Ø€Dr'   rr   c                   ó   — e Zd Zdd„ZdS )Ú!EstimatorNoSetOutputWithTransformNc                 ó   — |S r    r!   ©Úselfrn   Úys      r$   rk   z+EstimatorNoSetOutputWithTransform.transformœ   ó   € Øˆr'   r    ©rt   ru   rv   rk   r!   r'   r$   rx   rx   ›   ó(   € € € € € ðð ð ð ð ð r'   rx   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚEstimatorWithSetOutputNc                 ó*   — |j         d         | _        | S ©Nr   ©ÚshapeÚn_features_in_rz   s      r$   ÚfitzEstimatorWithSetOutput.fit¡   ó   € Øœg aœjˆÔØˆr'   c                 ó   — |S r    r!   rz   s      r$   rk   z EstimatorWithSetOutput.transform¥   r}   r'   c                 óp   — t          j        d„ t          | j        ¦  «        D ¦   «         t          ¬¦  «        S )Nc                 ó   — g | ]}d |› �‘ŒS ©rn   r!   ©Ú.0Úis     r$   ú
<listcomp>z@EstimatorWithSetOutput.get_feature_names_out.<locals>.<listcomp>©   ó   € ÐGÐGÐG q˜7˜q˜7˜7ÐGÐGÐGr'   r   ©r=   r>   Úranger†   r?   ©r{   Úinput_featuress     r$   Úget_feature_names_outz,EstimatorWithSetOutput.get_feature_names_out¨   ó1   € ÝŒzÐGÐG­E°$Ô2EÑ,FÔ,FÐGÑGÔGÍvÐVÑVÔVÐVr'   r    ©rt   ru   rv   r‡   rk   r–   r!   r'   r$   r�   r�       sV   € € € € € ðð ð ð ðð ð ð ðWð Wð Wð Wð Wð Wr'   r�   c                  ón  — t          ¦   «         } t          | d¬¦  «         t          ¦   «         } t          j        t
          d¬¦  «        5  t          | d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          ¦   «                              t          j	        g d¢g¦  «        ¦  «        } t          | d¬¦  «         t          d| ¦  «        }|d         dk    sJ ‚t          | d	¬¦  «         t          d| ¦  «        }|d         d	k    sJ ‚t          | d¬¦  «         t          d| ¦  «        }|d         d	k    sJ ‚dS )
z)Check _safe_set_output works as expected.r   ©rk   zUnable to configure outputri   N©r   r   r   rk   ÚdenseÚdefault)rr   r   rx   r;   rl   rm   r�   r‡   r=   r>   r   )ÚestÚconfigs     r$   Útest__safe_set_outputr    ¬   s…  € õ 7Ñ
8Ô
8€CÝ�S HÐ-Ñ-Ô-Ð-õ ,Ñ
-Ô
-€CÝ	Œ•zÐ)EÐ	FÑ	FÔ	Fð 2ð 2Ý˜¨Ð1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ !Ñ
"Ô
"×
&Ò
&¥r¤z°9°9°9°+Ñ'>Ô'>Ñ
?Ô
?€CÝ�S HÐ-Ñ-Ô-Ð-Ý ¨SÑ1Ô1€FØ�'Œ?˜hÒ&Ð&Ð&Ð&å�S IÐ.Ñ.Ô.Ð.Ý ¨SÑ1Ô1€FØ�'Œ?˜iÒ'Ð'Ð'Ð'õ �S DÐ)Ñ)Ô)Ð)Ý ¨SÑ1Ô1€FØ�'Œ?˜iÒ'Ð'Ð'Ð'Ð'Ð's   Á	A'Á'A+Á.A+c                   ó   — e Zd Zdd„ZdS )Ú2EstimatorNoSetOutputWithTransformNoFeatureNamesOutNc                 ó   — |S r    r!   rz   s      r$   rk   z<EstimatorNoSetOutputWithTransformNoFeatureNamesOut.transformÈ   r}   r'   r    r~   r!   r'   r$   r¢   r¢   Ç   r   r'   r¢   c                  óF   — t          ¦   «         } t          | d¦  «        rJ ‚dS )zEEstimator without get_feature_names_out does not define `set_output`.Ú
set_outputN)r¢   Úhasattr)rž   s    r$   Útest_set_output_mixinr§   Ì   s)   € å
<Ñ
>Ô
>€CÝ�s˜LÑ)Ô)Ð)Ð)Ð)Ð)Ð)r'   c                  ó  — t          j        g d¢g d¢g¦  «        } t          ¦   «         }t          |d¬¦  «         d}t	          j        t          |¬¦  «        5  |                     | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z$Check transform with invalid config.r   r   Úbadrš   úoutput config must be inri   N)r=   r>   r�   r   r;   rl   rm   rk   ©rn   rž   Úmsgs      r$   Útest__safe_set_output_errorr­   Ò   sÌ   € å
Œ
�I�I�I˜y˜y˜yÐ)Ñ*Ô*€Aå
 Ñ
"Ô
"€CÝ�S EÐ*Ñ*Ô*Ð*à
$€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�aÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA:Á:A>ÂA>Údataframe_libr   rZ   c                 óÂ  — t          j        | ¦  «        }t          j        g d¢g d¢g¦  «        }t	          ¦   «                              |¦  «        }|                     d¬¦  «        }||u sJ ‚|                     |¦  «        }t          |t          j	        ¦  «        sJ ‚|                     | ¬¦  «         |                     |¦  «        }t          ||j
        ¦  «        sJ ‚dS )z%Check that the output is a dataframe.r   r   Nrš   )r;   r<   r=   r>   r�   r‡   r¥   rk   rC   Úndarrayr@   )r®   Úlibrn   rž   Úest2Ú
X_trans_npÚ
X_trans_pds          r$   Útest_set_output_methodrµ   Þ   s×   € õ Ô
˜mÑ
,Ô
,€Cå
Œ
�I�I�I˜y˜y˜yÐ)Ñ*Ô*€AÝ
 Ñ
"Ô
"×
&Ò
& qÑ
)Ô
)€Cð �>Š> Dˆ>Ñ)Ô)€DØ�3ˆ;ˆ;ˆ;ˆ;Ø—’ Ñ"Ô"€JÝ�j¥"¤*Ñ-Ô-Ð-Ð-Ð-à‡N‚N˜]€NÑ+Ô+Ð+à—’˜qÑ!Ô!€Jå�j #¤-Ñ0Ô0Ð0Ð0Ð0Ð0Ð0r'   c                  ó>  — t          j        g d¢g d¢g¦  «        } t          ¦   «                              | ¦  «        }|                     d¬¦  «         d}t          j        t          |¬¦  «        5  |                     | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z-Check transform fails with invalid transform.r   r   r©   rš   rª   ri   N)	r=   r>   r�   r‡   r¥   r;   rl   rm   rk   r«   s      r$   Útest_set_output_method_errorr·   ó   sÝ   € õ 	Œ
�I�I�I˜y˜y˜yÐ)Ñ*Ô*€AÝ
 Ñ
"Ô
"×
&Ò
& qÑ
)Ô
)€CØ‡N‚N˜U€NÑ#Ô#Ð#à
$€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�aÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á/BÂBÂBrh   c                 ót  — t          ¦   «         d         }t          d¦  «        }|d         |k    sJ ‚t          | ¬¦  «        5  t          d¦  «        }|d         | k    sJ ‚t          ¦   «         }t          d|¦  «        }|d         | k    sJ ‚t	          ¦   «         }t          d|¦  «        }|d         | k    sJ ‚|                     d¬¦  «         t          d|¦  «        }|d         dk    sJ ‚	 ddd¦  «         n# 1 swxY w Y   |                     | ¬¦  «         t          d|¦  «        }|d         | k    sJ ‚dS )z+Check _get_output_config works as expected.rh   rk   rœ   rg   r�   rš   N)r   r   r   rx   r�   r¥   )rh   Úglobal_configrŸ   rž   s       r$   Útest__get_output_configrº   ÿ   sž  € õ
 ‘L”LÐ!3Ô4€MÝ Ñ,Ô,€FØ�'Œ?˜mÒ+Ð+Ð+Ð+å	Ð)9Ð	:Ñ	:Ô	:ð ,ð ,å# KÑ0Ô0ˆØ�gŒÐ"2Ò2Ð2Ð2Ð2å/Ñ1Ô1ˆÝ# K°Ñ5Ô5ˆØ�gŒÐ"2Ò2Ð2Ð2Ð2å$Ñ&Ô&ˆå# K°Ñ5Ô5ˆØ�gŒÐ"2Ò2Ð2Ð2Ð2ð 	�Š ˆÑ+Ô+Ð+Ý# K°Ñ5Ô5ˆØ�gŒ )Ò+Ð+Ð+Ð+Ð+ð#,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð& ‡N‚NÐ-€NÑ.Ô.Ð.Ý ¨SÑ1Ô1€FØ�'Œ?Ð.Ò.Ð.Ð.Ð.Ð.Ð.s   ÁB*C9Ã9C=Ä C=c                   ó   — e Zd Zdd„ZdS )Ú EstimatorWithSetOutputNoAutoWrapNc                 ó   — |S r    r!   rz   s      r$   rk   z*EstimatorWithSetOutputNoAutoWrap.transform!  r}   r'   r    r~   r!   r'   r$   r¼   r¼      r   r'   r¼   ©Úauto_wrap_output_keysc                  ó¬   — t          ¦   «         } t          | d¦  «        rJ ‚t          j        g d¢g d¢g¦  «        }||                      |¦  «        u sJ ‚dS )z4Check that auto_wrap_output_keys=None does not wrap.r¥   r   r   N)r¼   r¦   r=   r>   rk   )rž   rn   s     r$   Útest_get_output_auto_wrap_falserÁ   %  sb   € å
*Ñ
,Ô
,€CÝ�s˜LÑ)Ô)Ð)Ð)Ð)å
Œ
�I�I�I˜y˜y˜yÐ)Ñ*Ô*€AØ�—’˜aÑ Ô Ð Ð Ð Ð Ð Ð r'   c                  óœ   — d} t          j        t          | ¬¦  «        5   G d„ dt          d¬¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S )Nz6auto_wrap_output_keys must be None or a tuple of keys.ri   c                   ó   — e Zd ZdS )úLtest_auto_wrap_output_keys_errors_with_incorrect_input.<locals>.BadEstimatorNrs   r!   r'   r$   ÚBadEstimatorrÄ   2  s   € € € € € ØˆDr'   rÅ   Úbad_parameterr¾   )r;   rl   rm   r   )r¬   rÅ   s     r$   Ú6test_auto_wrap_output_keys_errors_with_incorrect_inputrÇ   .  s±   € Ø
B€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð ð	ð 	ð 	ð 	ð 	�?À/ð 	ñ 	ô 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   žAÁAÁAc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚAnotherMixinc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S )Nr!   )ÚsuperÚ__init_subclass__Úcustom_parameter)ÚclsrÍ   ÚkwargsÚ	__class__s      €r$   rÌ   zAnotherMixin.__init_subclass__7  s.   ø€ Ø!�‰ŒÔ!Ð+Ð+ FÐ+Ð+Ð+Ø/ˆÔÐÐr'   )rt   ru   rv   rÌ   Ú__classcell__)rÐ   s   @r$   rÉ   rÉ   6  s8   ø€ € € € € ð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0r'   rÉ   c                  óŽ   —  G d„ dt           t          d¬¦  «        }  | ¦   «         }|j        dk    sJ ‚t          |d¦  «        sJ ‚dS )z9Check that multiple init_subclasses passes parameters up.c                   ó   — e Zd Zdd„Zdd„ZdS )ú>test_set_output_mixin_custom_mixin.<locals>.BothMixinEstimatorNc                 ó   — |S r    r!   rz   s      r$   rk   zHtest_set_output_mixin_custom_mixin.<locals>.BothMixinEstimator.transform@  s   € ØˆHr'   c                 ó   — |S r    r!   r”   s     r$   r–   zTtest_set_output_mixin_custom_mixin.<locals>.BothMixinEstimator.get_feature_names_outC  s   € Ø!Ð!r'   r    )rt   ru   rv   rk   r–   r!   r'   r$   ÚBothMixinEstimatorrÔ   ?  s<   € € € € € ð	ð 	ð 	ð 	ð	"ð 	"ð 	"ð 	"ð 	"ð 	"r'   r×   é{   )rÍ   r¥   N)r   rÉ   rÍ   r¦   )r×   rž   s     r$   Ú"test_set_output_mixin_custom_mixinrÙ   <  su   € ð"ð "ð "ð "ð "�_­lÈSð "ñ "ô "ð "ð Ð
Ñ
Ô
€CØÔ 3Ò&Ð&Ð&Ð&Ý�3˜Ñ%Ô%Ð%Ð%Ð%Ð%Ð%r'   c                  óÈ   —  G d„ dt           ¦  «        }  G d„ d| ¦  «        } G d„ d| ¦  «        } G d„ d||¦  «        } |¦   «                              d	¦  «        dk    sJ ‚d	S )
zjCheck that multi-inheritance resolves to the correct class method.

    Non-regression test gh-25293.
    c                   ó   — e Zd Zd„ ZdS )ú!test_set_output_mro.<locals>.Basec                 ó   — dS )NÚBaser!   ©r{   rn   s     r$   rk   z+test_set_output_mro.<locals>.Base.transformR  s   € Ø�6r'   Nr~   r!   r'   r$   rÞ   rÜ   Q  s#   € € € € € ð	ð 	ð 	ð 	ð 	r'   rÞ   c                   ó   — e Zd ZdS )útest_set_output_mro.<locals>.ANrs   r!   r'   r$   ÚArá   U  ó   € € € € € Øˆr'   râ   c                   ó   — e Zd Zd„ ZdS )útest_set_output_mro.<locals>.Bc                 ó   — dS )NÚBr!   rß   s     r$   rk   z(test_set_output_mro.<locals>.B.transformY  s   € Ø�3r'   Nr~   r!   r'   r$   rç   rå   X  s#   € € € € € ð	ð 	ð 	ð 	ð 	r'   rç   c                   ó   — e Zd ZdS )útest_set_output_mro.<locals>.CNrs   r!   r'   r$   ÚCré   \  rã   r'   rê   N)r   rk   )rÞ   râ   rç   rê   s       r$   Útest_set_output_mrorë   K  s×   € ðð ð ð ð �ñ ô ð ðð ð ð ð ˆDñ ô ð ðð ð ð ð ˆDñ ô ð ðð ð ð ð ˆAˆqñ ô ð ð ˆ1‰3Œ3�=Š=˜ÑÔ #Ò%Ð%Ð%Ð%Ð%Ð%r'   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚEstimatorWithSetOutputIndexNc                 ó*   — |j         d         | _        | S rƒ   r„   rz   s      r$   r‡   zEstimatorWithSetOutputIndex.fitc  rˆ   r'   c                 ó    — dd l }|                     |                     ¦   «         d„ t          |j        d         ¦  «        D ¦   «         ¬¦  «        S )Nr   c                 ó   — g | ]}d |› �‘ŒS )Úsr!   r�   s     r$   r�   z9EstimatorWithSetOutputIndex.transform.<locals>.<listcomp>k  s   € Ð0TÐ0TÐ0T¸Q°°Q°°Ð0TÐ0TÐ0Tr'   r   )r   r@   Úto_numpyr“   r…   )r{   rn   r|   rK   s       r$   rk   z%EstimatorWithSetOutputIndex.transformg  sL   € ØÐÐÐð �|Š|˜AŸJšJ™LœLÐ0TÐ0TÅ%ÈÌÐPQÌ
ÑBSÔBSÐ0TÑ0TÔ0Tˆ|ÑUÔUÐUr'   c                 óp   — t          j        d„ t          | j        ¦  «        D ¦   «         t          ¬¦  «        S )Nc                 ó   — g | ]}d |› �‘ŒS rŒ   r!   r�   s     r$   r�   zEEstimatorWithSetOutputIndex.get_feature_names_out.<locals>.<listcomp>n  r‘   r'   r   r’   r”   s     r$   r–   z1EstimatorWithSetOutputIndex.get_feature_names_outm  r—   r'   r    r˜   r!   r'   r$   rí   rí   b  sZ   € € € € € ðð ð ð ðVð Vð Vð VðWð Wð Wð Wð Wð Wr'   rí   c                  ó2  — t          j        d¦  «        } |                      g d¢g d¢gddg¬¦  «        }t          ¦   «                              d¬¦  «        }|                     |¦  «         |                     |¦  «        }t          |j        dd	g¦  «         d
S )zZCheck that set_output does not override index.

    Non-regression test for gh-25730.
    r   r›   )r/   r-   r0   r   r   r   rš   Ús0Ús1N)	r;   r<   r@   rí   r¥   r‡   rk   r   r   )rK   rn   rž   ÚX_transs       r$   Ú!test_set_output_pandas_keep_indexrù   q  s’   € õ
 
Ô	˜XÑ	&Ô	&€Bà
�Š�i�i�i   Ð+°A°q°6ˆÑ:Ô:€AÝ
%Ñ
'Ô
'×
2Ò
2¸XÐ
2Ñ
FÔ
F€CØ‡G‚GˆA�J„J€Jà�mŠm˜AÑÔ€GÝ�w”} t¨T lÑ3Ô3Ð3Ð3Ð3r'   c                   ó   — e Zd Zd„ Zdd„ZdS )ÚEstimatorReturnTuplec                 ó   — || _         d S r    ©ÚOutputTuple)r{   rþ   s     r$   Ú__init__zEstimatorReturnTuple.__init__�  s   € Ø&ˆÔÐÐr'   Nc                 ó4   — |                       |d|z  ¦  «        S )Nr   rý   rz   s      r$   rk   zEstimatorReturnTuple.transform„  s   € Ø×Ò  1 q¡5Ñ)Ô)Ð)r'   r    )rt   ru   rv   rÿ   rk   r!   r'   r$   rû   rû   €  s7   € € € € € ð'ð 'ð 'ð*ð *ð *ð *ð *ð *r'   rû   c                  ó  — t          dd¦  «        } t          j        g d¢g¦  «        }t          | ¬¦  «        }|                     |¦  «        }t          || ¦  «        sJ ‚t          |j        |¦  «         t          |j        d|z  ¦  «         dS )z+Check that namedtuples are kept by default.ÚOutputzX, Yr›   rý   r   N)	r   r=   r>   rû   rk   rC   r   rn   ÚY)r  rn   rž   rø   s       r$   Útest_set_output_named_tuple_outr  ˆ  s‹   € å˜ &Ñ)Ô)€FÝ
Œ
�I�I�I�;ÑÔ€AÝ
¨6Ð
2Ñ
2Ô
2€CØ�mŠm˜AÑÔ€Gå�g˜vÑ&Ô&Ð&Ð&Ð&Ý�w”y !Ñ$Ô$Ð$Ý�w”y ! a¡%Ñ(Ô(Ð(Ð(Ð(r'   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚEstimatorWithListInputNc                 óh   — t          |t          ¦  «        sJ ‚t          |d         ¦  «        | _        | S )Nr   )rC   rJ   Úlenr†   rz   s      r$   r‡   zEstimatorWithListInput.fit•  s/   € Ý˜!�TÑ"Ô"Ð"Ð"Ð"Ý! ! A¤$™iœiˆÔØˆr'   c                 ó   — |S r    r!   rz   s      r$   rk   z EstimatorWithListInput.transformš  r}   r'   c                 óp   — t          j        d„ t          | j        ¦  «        D ¦   «         t          ¬¦  «        S )Nc                 ó   — g | ]}d |› �‘ŒS rŒ   r!   r�   s     r$   r�   z@EstimatorWithListInput.get_feature_names_out.<locals>.<listcomp>ž  r‘   r'   r   r’   r”   s     r$   r–   z,EstimatorWithListInput.get_feature_names_out�  r—   r'   r    r˜   r!   r'   r$   r  r  ”  sV   € € € € € ðð ð ð ð
ð ð ð ðWð Wð Wð Wð Wð Wr'   r  c                 ó2  — t          j        | ¦  «        }g d¢g d¢g}t          ¦   «         }|                     | ¬¦  «         |                     |¦  «                             |¦  «        }t          ||j        ¦  «        sJ ‚t          |j	        g d¢¦  «         dS )zJCheck set_output for list input.

    Non-regression test for #27037.
    )r   r   r   r   )r/   r-   r0   é   rš   )ÚX0ÚX1ÚX2ÚX3N)
r;   r<   r  r¥   r‡   rk   rC   r@   r   r#   )r®   r±   rn   rž   ÚX_outs        r$   Útest_set_output_list_inputr  ¡  s™   € õ Ô
˜mÑ
,Ô
,€Cà	ˆˆ�|�|�|Ð$€AÝ
 Ñ
"Ô
"€CØ‡N‚N˜]€NÑ+Ô+Ð+à�GŠG�A‰JŒJ× Ò  Ñ#Ô#€EÝ�e˜Sœ]Ñ+Ô+Ð+Ð+Ð+Ý�u”}Ð&>Ð&>Ð&>Ñ?Ô?Ð?Ð?Ð?r'   Únamec                 óT   — t          t          j        |          t          ¦  «        sJ ‚dS )z*Check adapters have the correct interface.N)rC   r   rA   r	   )r  s    r$   Ú test_adapter_class_has_interfacer  ²  s*   € õ Õ&Ô/°Ô5Õ7OÑPÔPÐPÐPÐPÐPÐPr'   c                 óì   ‡— t           j        Šˆfd„}|                      t           d|¦  «         d}t          j        t
          |¬¦  «        5  t          d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zCheck import error changed.c                 óJ   •— | dk    rt          ¦   «         ‚ ‰| d ¬¦  «         d S )Nr   )Úpackage)ÚImportError)r  Úorig_import_modules    €r$   Úpatched_import_modulez;test_check_library_installed.<locals>.patched_import_module¼  s4   ø€ Ø�8ÒÐÝ‘-”-ÐØÐ˜4¨Ð.Ñ.Ô.Ð.Ð.Ð.r'   Úimport_modulez-Setting output container to 'pandas' requiresri   r   N)Ú	importlibr  Úsetattrr;   rl   r  r   )Úmonkeypatchr  r¬   r  s      @r$   Útest_check_library_installedr!  ¸  sÌ   ø€ å"Ô0Ðð/ð /ð /ð /ð /ð
 ×Ò�	 ?Ð4IÑJÔJÐJà
9€CÝ	Œ•{¨#Ð	.Ñ	.Ô	.ð *ð *Ý Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   ÁA)Á)A-Á0A-c                  óL  — t          j        d¦  «        } |                      g d¢g d¢dœ¦  «        }t          |¦  «        }|j        dk    sJ ‚d}t          j        t          |¬¦  «        5  t          |                     ¦   «         ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z4Check the behavior fo `_get_adapter_from_container`.r   r›   )r(   é   éd   )r*   r2   zAThe container does not have a registered adapter in scikit-learn.ri   N)r;   r<   r@   r
   Úcontainer_librl   rm   rò   )rK   rn   rN   Úerr_msgs       r$   Útest_get_adapter_from_containerr'  È  sè   € å	Ô	˜XÑ	&Ô	&€BØ
�Š˜9˜9˜9¨=¨=¨=Ð9Ð9Ñ:Ô:€AÝ)¨!Ñ,Ô,€GØÔ  HÒ,Ð,Ð,Ð,ØQ€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 2ð 2Ý# A§J¢J¡L¤LÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   Á*"BÂBÂ B)8r  Úcollectionsr   Únumpyr=   r;   Únumpy.testingr   Úsklearn._configr   r   Úsklearn.preprocessingr   Úsklearn.utils._set_outputr   r	   r
   r   r   r   r   r   Úsklearn.utils.fixesr   rX   rd   ÚmarkÚparametrizerp   rr   rx   r�   r    r¢   r§   r­   rµ   r·   rº   r¼   rÁ   rÇ   rÉ   rÙ   rë   rí   rù   rû   r  r  r  ÚsortedrA   r  r!  r'  r!   r'   r$   ú<module>r2     so  ðØ Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð /Ð .Ð .Ð .Ð .Ð .ð<0ð <0ð <0ð~30ð 30ð 30ðl „×Ò˜¨.Ñ9Ô9ðOð Oñ :Ô9ðOð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ðð ð ð ð ñ ô ð ð
	Wð 	Wð 	Wð 	Wð 	W˜_ñ 	Wô 	Wð 	Wð(ð (ð (ð6ð ð ð ð ¸ñ ô ð ð
*ð *ð *ð	ð 	ð 	ð „×Ò˜¨8°XÐ*>Ñ?Ô?ð1ð 1ñ @Ô?ð1ð(	ð 	ð 	ð „×ÒÐ+¨h¸Ð-AÑBÔBð/ð /ñ CÔBð/ð@ð ð ð ð  Èdð ñ ô ð ð
!ð !ð !ðð ð ð0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ð&ð &ð &ð&ð &ð &ð.Wð Wð Wð Wð W /ñ Wô Wð Wð4ð 4ð 4ð*ð *ð *ð *ð *˜?ñ *ô *ð *ð	)ð 	)ð 	)ð
Wð 
Wð 
Wð 
Wð 
W˜_ñ 
Wô 
Wð 
Wð „×Ò˜¨8°XÐ*>Ñ?Ô?ð@ð @ñ @Ô?ð@ð  „×Ò˜  Ð(8Ô(AÑ!BÔ!BÑCÔCðQð Qñ DÔCðQð
*ð *ð *ð 2ð 2ð 2ð 2ð 2r'   