Ë
    8Ò^j?  ã                   ó  — 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j4                  j7                  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j4                  j7                  dddg«      d„ «       Z$d„ Z%ej4                  j7                  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j4                  j7                  dddg«      d/„ «       Z2ej4                  j7                  d0 e3ejh                  «      «      d1„ «       Z5d2„ Z6d3„ Z7y)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«      }| j                  ddgddgg|¬	«      }| j                  ddg|¬	«      }t        j                  d   }|j                  ||ˆfd
„¬«      }t        || j
                  «      sJ ‚t        |j                  ‰«       t        |j                  |«       |j                  ||ˆfd„¬«      }t        || j
                  «      sJ ‚t        |j                  ‰«       t        |j                  |«       t        j                  ddgt        ¬«      }| j                  ddgddggddg¬	«      }|j                  |||¬«      }	t        |	j                  |«       t        |	j                  |j                  «       |j                  |«      sJ ‚|j                  |«      rJ ‚t        j                  ddgt        ¬«      }|j!                  ||«      }	t        |	j                  |«       | j                  g d¢g d¢gg d¢¬«      }
| j                  dgdggdg¬«      }|j#                  |
|g«      }| j                  g d¢g d¢gg d¢¬«      }| j$                  j'                  ||«       | j                  ddgddggddg¬«      }t        j                  ddgt        ¬«      }|j!                  ||«      }	t        |	j                  |«       | j                  ddgddgg|¬	«      }|j                  ||ddgd¬«      }||usJ ‚t)        |j                  «      d dgk(  sJ ‚t)        |j                  «      ddgk(  sJ ‚| j                  ddgddgg|¬	«      }|j                  ||ddgd!¬«      }||u sJ ‚t)        |j                  «      ddgk(  sJ ‚t)        |j                  «      ddgk(  sJ ‚y")#z+Check pandas adapter has expected behavior.Úpandas©é   r   é   ©r   r   r   )Úf0Úf1Úf2©Údtyper   é   r   ©Úindexc                  ó   •— ‰ S ©N© ©Úcolumnss   €ún/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_set_output.pyú<lambda>z%test_pandas_adapter.<locals>.<lambda>!   ó   ø€ ÈG€ ó    r"   c                  ó   •— ‰ S r    r!   r"   s   €r$   r%   z%test_pandas_adapter.<locals>.<lambda>'   s   ø€ ÈW€ r'   r   r   é
   é   ÚaÚc©r   r   é   ©r   é   é   ©r+   ÚbÚer0   r.   ©r   r   r.   r0   ©r   r0   r1   r.   ©r+   r3   r4   r,   Úx__aÚy__ar3   F©r#   Úinplacer   TN)ÚpytestÚimportorskipÚnpÚasarrayÚobjectÚ	DataFrameÚSeriesr   ÚadaptersÚcreate_containerÚ
isinstancer   r#   r   Úis_supported_containerÚarrayÚrename_columnsÚhstackÚtestingÚassert_frame_equalÚlist)ÚpdÚX_npr   Ú	X_df_origÚ
X_ser_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_adapterr[      sÔ  ø€ ä	×	Ñ	˜XÓ	&€BÜ�:‰:’y¢)Ð,Ó-€DÜ�j‰jÒ+´6Ô:€GÜ�J‰J˜˜1�vÓ€EØ—‘˜q !˜f q¨! fÐ-°U�Ó;€IØ—‘˜A˜q˜6¨�Ó/€Jä×'Ñ'¨Ñ1€GØ×*Ñ*¨4°ÃOÐ*ÓT€KÜ�k 2§<¡<Ô0Ð0Ð0Ü�{×*Ñ*¨GÔ4Ü�{×(Ñ(¨%Ô0ð ×*Ñ*¨4°Ã_Ð*ÓU€KÜ�k 2§<¡<Ô0Ð0Ð0Ü�{×*Ñ*¨GÔ4Ü�{×(Ñ(¨%Ô0ô —*‘*˜d D˜\´Ô8€KØ�<‰<˜!˜Q˜ ! Q Ð(°°R°ˆ<Ó9€DØ×%Ñ% d¨I¸{Ð%ÓK€FÜ�v—~‘~ {Ô3Ü�v—|‘| T§Z¡ZÔ0à×)Ñ)¨$Ô/Ð/Ð/Ø×-Ñ-¨dÔ3Ð3Ð3ô —(‘(˜C ˜:¬VÔ4€KØ×#Ñ# D¨+Ó6€FÜ�v—~‘~ {Ô3ð �\‰\š9¢iÐ0º/ˆ\ÓJ€FØ�\‰\˜A˜3  ˜*¨s¨eˆ\Ó4€FØ—‘ ¨Ð/Ó0€Ià—,‘,Ú	’|Ð$Ò.Bð ó €Kð ‡J�J×!Ñ! )¨[Ô9ð
 �<‰<˜!˜Q˜ ! Q Ð(°3¸°*ˆ<Ó=€DÜ—(‘(˜F FÐ+´6Ô:€KØ×#Ñ# D¨+Ó6€FÜ�v—~‘~ {Ô3ð �<‰<˜!˜Q˜ ! Q Ð(°ˆ<Ó6€DØ×'Ñ'¨¨d¸SÀ#¸JÐPUÐ'ÓV€HØ˜4ÑÐÐÜ�—‘Ó ! Q Ò'Ð'Ð'Ü�× Ñ Ó! c¨3 ZÒ/Ð/Ð/ð �<‰<˜!˜Q˜ ! Q Ð(°ˆ<Ó6€DØ×'Ñ'¨¨d¸SÀ#¸JÐPTÐ'ÓU€HØ�tÑÐÐÜ�—‘Ó # s Ò+Ð+Ð+Ü�× Ñ Ó! c¨3 ZÒ/Ð/Ñ/r'   c                  óT  ‡— t        j                  d«      } t        j                  g d¢g d¢g«      }g d¢Š| j	                  |‰d¬«      }t
        j                  d   }|j                  ||ˆfd„¬«      }t        || j                  «      sJ ‚t        |j                  ‰«       t        j                  g d	¢t        ¬
«      }|j                  |||¬«      }t        |j                  |«       |j                  |«      sJ ‚|j                  |«      rJ ‚t        j                  g d¢t        ¬
«      }|j                  ||«      }t        |j                  |«       | j	                  g d¢g d¢gg d¢d¬«      }| j	                  dgdggdgd¬«      }|j                  ||g«      }	| j	                  g d¢g d¢gg d¢d¬«      }
ddlm}  ||	|
«       | j	                  ddgddggddgd¬«      }|j                  ||ddgd¬«      }||usJ ‚t%        |j                  «      ddgk(  sJ ‚t%        |j                  «      ddgk(  sJ ‚| j	                  ddgddggddgd¬«      }|j                  ||ddgd¬«      }||u sJ ‚t%        |j                  «      ddgk(  sJ ‚t%        |j                  «      ddgk(  sJ ‚y )!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>e   r&   r'   r"   )r+   r3   r,   r   )r+   r,   Úgr-   r/   r2   r0   r.   r,   r5   r6   r7   r   )rK   r   r   r   r+   r3   ÚdFr:   TN)r<   r=   r>   rG   rA   r   rC   rD   rE   r   r#   r?   r@   rF   rH   rI   Úpolars.testingrK   rL   )ÚplrN   rO   rQ   rR   rS   rU   rV   rW   rX   rY   rK   rT   rZ   r#   s                 @r$   Útest_polars_adapterrg   ]   s­  ø€ ä	×	Ñ	˜XÓ	&€BÜ�8‰8’Y¢	Ð*Ó+€DÚ €GØ—‘˜T¨'¸%�Ó@€Iä×'Ñ'¨Ñ1€GØ×*Ñ*¨4°ÃOÐ*ÓT€Kä�k 2§<¡<Ô0Ð0Ð0Ü�{×*Ñ*¨GÔ4ô —*‘*š_´FÔ;€KØ×%Ñ% i°ÀKÐ%ÓP€FÜ�v—~‘~ {Ô3à×)Ñ)¨)Ô4Ð4Ð4Ø×-Ñ-¨dÔ3Ð3Ð3ô —(‘(š?´&Ô9€KØ×#Ñ# I¨{Ó;€FÜ�v—~‘~ {Ô3ð �\‰\š9¢iÐ0ºÐQVˆ\ÓW€FØ�\‰\˜A˜3  ˜*¨c¨U¸5ˆ\ÓA€FØ—‘ ¨Ð/Ó0€Ià—,‘,Ú	’|Ð$Ò-AÈ%ð ó €Kõ 2á�y +Ô.ð �<‰<˜!˜Q˜ ! Q Ð(°#°s°ÀEˆ<ÓJ€DØ×'Ñ'¨¨d¸SÀ#¸JÐPUÐ'ÓV€HØ˜4ÑÐÐÜ�—‘Ó # s Ò+Ð+Ð+Ü�× Ñ Ó! c¨3 ZÒ/Ð/Ð/ð �<‰<˜!˜Q˜ ! Q Ð(°#°s°ÀEˆ<ÓJ€DØ×'Ñ'¨¨d¸SÀ#¸JÐPTÐ'ÓU€HØ�tÑÐÐÜ�—‘Ó # s Ò+Ð+Ð+Ü�× Ñ Ó! c¨3 ZÒ/Ð/Ñ/r'   Úcsr_containerc           	      ó  — t        j                  g d¢g d¢g«      } | |«      }d}t        d¬«      5  t        j                  t
        |¬«      5  t        d||t        «       «       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w)	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   )rh   ÚXÚX_csrrm   s       r$   Ú test__container_error_validationrs   “   s…   € ô 	�
‰
’IšyÐ)Ó*€AÙ˜!Ó€EØ<€EÜ	¨Ô	2ñ OÜ�]‰]œ:¨UÔ3ñ 	OÜ% k°5¸!¼^Ó=MÔN÷	O÷Oð O÷	Oð 	Oú÷Oð Oús#   ²BÁA6Á%BÁ6A?	Á;BÂBc                   ó   — e Zd Zy)Ú,EstimatorWithoutSetOutputAndWithoutTransformN©Ú__name__Ú
__module__Ú__qualname__r!   r'   r$   ru   ru   ž   s   „ Ør'   ru   c                   ó   — e Zd Zdd„Zy)Ú!EstimatorNoSetOutputWithTransformNc                 ó   — |S r    r!   ©Úselfrq   Úys      r$   rn   z+EstimatorNoSetOutputWithTransform.transform£   ó   € Øˆr'   r    ©rw   rx   ry   rn   r!   r'   r$   r{   r{   ¢   ó   „ ôr'   r{   c                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚEstimatorWithSetOutputNc                 ó.   — |j                   d   | _        | S ©Nr   ©ÚshapeÚn_features_in_r}   s      r$   ÚfitzEstimatorWithSetOutput.fit¨   ó   € ØŸg™g a™jˆÔØˆr'   c                 ó   — |S r    r!   r}   s      r$   rn   z EstimatorWithSetOutput.transform¬   r€   r'   c                 óŠ   — t        j                  t        | j                  «      D �cg c]  }d|› �‘Œ	 c}t        ¬«      S c c}w ©Nrq   r   ©r>   r?   Úranger‰   r@   ©r~   Úinput_featuresÚis      r$   Úget_feature_names_outz,EstimatorWithSetOutput.get_feature_names_out¯   ó2   € Ü�z‰z¬E°$×2EÑ2EÓ,FÖG q˜Q˜q˜cš7ÒGÌvÔVÐVùÒGó   §A r    ©rw   rx   ry   rŠ   rn   r”   r!   r'   r$   r„   r„   §   s   „ óóôWr'   r„   c                  óð  — t        «       } t        | d¬«       t        «       } t        j                  t
        d¬«      5  t        | d¬«       ddd«       t        «       j                  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 ‚y# 1 sw Y   Œ¢xY w)
z)Check _safe_set_output works as expected.r   ©rn   zUnable to configure outputrl   N©r   r   r   rn   ÚdenseÚdefault)ru   r   r{   r<   ro   rp   r„   rŠ   r>   r?   r   )ÚestÚconfigs     r$   Útest__safe_set_outputrŸ   ³   sè   € ô 7Ó
8€CÜ�S HÕ-ô ,Ó
-€CÜ	�‰”zÐ)EÔ	Fñ 2Ü˜¨Õ1÷2ô !Ó
"×
&Ñ
&¤r§z¡z²9°+Ó'>Ó
?€CÜ�S HÕ-Ü ¨SÓ1€FØ�'‰?˜hÒ&Ð&Ð&ä�S IÕ.Ü ¨SÓ1€FØ�'‰?˜iÒ'Ð'Ð'ô �S DÕ)Ü ¨SÓ1€FØ�'‰?˜iÒ'Ð'Ñ'÷2ð 2ús   ½C,Ã,C5c                   ó   — e Zd Zdd„Zy)Ú2EstimatorNoSetOutputWithTransformNoFeatureNamesOutNc                 ó   — |S r    r!   r}   s      r$   rn   z<EstimatorNoSetOutputWithTransformNoFeatureNamesOut.transformÏ   r€   r'   r    r�   r!   r'   r$   r¡   r¡   Î   r‚   r'   r¡   c                  ó4   — t        «       } t        | d«      rJ ‚y)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  |j                  | «       ddd«       y# 1 sw Y   yxY w)z$Check transform with invalid config.r   r   Úbadr™   úoutput config must be inrl   N)r>   r?   r„   r   r<   ro   rp   rn   ©rq   r�   Úmsgs      r$   Útest__safe_set_output_errorr¬   Ù   s[   € ä
�
‰
’IšyÐ)Ó*€Aä
 Ó
"€CÜ�S EÕ*à
$€CÜ	�‰”z¨Ô	-ñ Ø�‰�aÔ÷÷ ñ ús   ÁA+Á+A4Údataframe_libr   r]   c                 ó–  — t        j                  | «      }t        j                  g d¢g d¢g«      }t	        «       j                  |«      }|j                  d¬«      }||u sJ ‚|j                  |«      }t        |t        j                  «      sJ ‚|j                  | ¬«       |j                  |«      }t        ||j                  «      sJ ‚y)z%Check that the output is a dataframe.r   r   Nr™   )r<   r=   r>   r?   r„   rŠ   r¤   rn   rE   ÚndarrayrA   )r­   Úlibrq   r�   Úest2Ú
X_trans_npÚ
X_trans_pds          r$   Útest_set_output_methodr´   å   sª   € ô ×
Ñ
˜mÓ
,€Cä
�
‰
’IšyÐ)Ó*€AÜ
 Ó
"×
&Ñ
& qÓ
)€Cð �>‰> Dˆ>Ó)€DØ�3‰;Ðˆ;Ø—‘ Ó"€JÜ�j¤"§*¡*Ô-Ð-Ð-à‡N�N˜]€NÔ+à—‘˜qÓ!€Jä�j #§-¡-Ô0Ð0Ñ0r'   c                  ó  — t        j                  g d¢g d¢g«      } t        «       j                  | «      }|j	                  d¬«       d}t        j                  t        |¬«      5  |j                  | «       ddd«       y# 1 sw Y   yxY w)z-Check transform fails with invalid transform.r   r   r¨   r™   r©   rl   N)	r>   r?   r„   rŠ   r¤   r<   ro   rp   rn   rª   s      r$   Útest_set_output_method_errorr¶   ú   sl   € ô 	�
‰
’IšyÐ)Ó*€AÜ
 Ó
"×
&Ñ
& qÓ
)€CØ‡N�N˜U€NÔ#à
$€CÜ	�‰”z¨Ô	-ñ Ø�‰�aÔ÷÷ ñ ús   Á$A?Á?Brk   c                 óÖ  — 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 ‚|j                  d¬«       t        d|«      }|d   dk(  sJ ‚	 ddd«       j                  | ¬«       t        d|«      }|d   | k(  sJ ‚y# 1 sw Y   Œ2xY w)z+Check _get_output_config works as expected.rk   rn   r›   rj   rœ   r™   N)r   r   r   r{   r„   r¤   )rk   Úglobal_configrž   r�   s       r$   Útest__get_output_configr¹     s  € ô
 “LÐ!3Ñ4€MÜ Ó,€FØ�'‰?˜mÒ+Ð+Ð+ä	Ð)9Ô	:ñ ,ä# KÓ0ˆØ�g‰Ð"2Ò2Ð2Ð2ä/Ó1ˆÜ# K°Ó5ˆØ�g‰Ð"2Ò2Ð2Ð2ä$Ó&ˆä# K°Ó5ˆØ�g‰Ð"2Ò2Ð2Ð2ð 	�‰ ˆÔ+Ü# K°Ó5ˆØ�g‰ )Ò+Ð+Ñ+÷#,ð& ‡N�NÐ-€NÔ.Ü ¨SÓ1€FØ�'‰?Ð.Ò.Ð.Ñ.÷+,ð ,ús   ¯A>CÃC(c                   ó   — e Zd Zdd„Zy)Ú EstimatorWithSetOutputNoAutoWrapNc                 ó   — |S r    r!   r}   s      r$   rn   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«      }|| j	                  |«      u sJ ‚y)z4Check that auto_wrap_output_keys=None does not wrap.r¤   r   r   N)r»   r¥   r>   r?   rn   )r�   rq   s     r$   Útest_get_output_auto_wrap_falserÀ   ,  sD   € ä
*Ó
,€CÜ�s˜LÔ)Ð)Ð)ä
�
‰
’IšyÐ)Ó*€AØ�—‘˜aÓ Ñ Ð Ñ r'   c                  óŠ   — d} t        j                  t        | ¬«      5   G d„ dt        d¬«      }d d d «       y # 1 sw Y   y xY w)Nz6auto_wrap_output_keys must be None or a tuple of keys.rl   c                   ó   — e Zd Zy)úLtest_auto_wrap_output_keys_errors_with_incorrect_input.<locals>.BadEstimatorNrv   r!   r'   r$   ÚBadEstimatorrÃ   9  s   „ Ør'   rÄ   Úbad_parameterr½   )r<   ro   rp   r   )r«   rÄ   s     r$   Ú6test_auto_wrap_output_keys_errors_with_incorrect_inputrÆ   5  s8   € Ø
B€CÜ	�‰”z¨Ô	-ñ ô	œ?À/õ 	÷÷ ñ ús	   ž9¹Ac                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚAnotherMixinc                 ó2   •— t        ‰| �  di |¤Ž || _        y )Nr!   )ÚsuperÚ__init_subclass__Úcustom_parameter)ÚclsrÌ   ÚkwargsÚ	__class__s      €r$   rË   zAnotherMixin.__init_subclass__>  s   ø€ Ü‰Ñ!Ñ+ FÒ+Ø/ˆÕr'   )rw   rx   ry   rË   Ú__classcell__)rÏ   s   @r$   rÈ   rÈ   =  s   ø„ ÷0ð 0r'   rÈ   c                  ó|   —  G d„ dt         t        d¬«      }  | «       }|j                  dk(  sJ ‚t        |d«      sJ ‚y)z9Check that multiple init_subclasses passes parameters up.c                   ó   — e Zd Zdd„Zdd„Zy)ú>test_set_output_mixin_custom_mixin.<locals>.BothMixinEstimatorNc                 ó   — |S r    r!   r}   s      r$   rn   zHtest_set_output_mixin_custom_mixin.<locals>.BothMixinEstimator.transformG  s   € ØˆHr'   c                 ó   — |S r    r!   )r~   r’   s     r$   r”   zTtest_set_output_mixin_custom_mixin.<locals>.BothMixinEstimator.get_feature_names_outJ  s   € Ø!Ð!r'   r    )rw   rx   ry   rn   r”   r!   r'   r$   ÚBothMixinEstimatorrÓ   F  s   „ ó	ô	"r'   rÖ   é{   )rÌ   r¤   N)r   rÈ   rÌ   r¥   )rÖ   r�   s     r$   Ú"test_set_output_mixin_custom_mixinrØ   C  s@   € ô"œ_¬lÈSõ "ñ Ó
€CØ×Ñ 3Ò&Ð&Ð&Ü�3˜Ô%Ð%Ñ%r'   c                  óœ   —  G d„ dt         «      }  G d„ d| «      } G d„ d| «      } G d„ d||«      } |«       j                  d	«      dk(  sJ ‚y	)
zjCheck that multi-inheritance resolves to the correct class method.

    Non-regression test gh-25293.
    c                   ó   — e Zd Zd„ Zy)ú!test_set_output_mro.<locals>.Basec                  ó   — y)NÚBaser!   ©r~   rq   s     r$   rn   z+test_set_output_mro.<locals>.Base.transformY  s   € Ør'   Nr�   r!   r'   r$   rÝ   rÛ   X  s   „ ó	r'   rÝ   c                   ó   — e Zd Zy)útest_set_output_mro.<locals>.ANrv   r!   r'   r$   ÚArà   \  ó   „ Ør'   rá   c                   ó   — e Zd Zd„ Zy)útest_set_output_mro.<locals>.Bc                  ó   — y)NÚBr!   rÞ   s     r$   rn   z(test_set_output_mro.<locals>.B.transform`  s   € Ør'   Nr�   r!   r'   r$   ræ   rä   _  s   „ ó	r'   ræ   c                   ó   — e Zd Zy)útest_set_output_mro.<locals>.CNrv   r!   r'   r$   ÚCrè   c  râ   r'   ré   N)r   rn   )rÝ   rá   ræ   ré   s       r$   Útest_set_output_mrorê   R  sO   € ôŒô ôˆDô ôˆDô ôˆAˆqô ñ ‹3�=‰=˜Ó #Ò%Ð%Ñ%r'   c                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚEstimatorWithSetOutputIndexNc                 ó.   — |j                   d   | _        | S r†   r‡   r}   s      r$   rŠ   zEstimatorWithSetOutputIndex.fitj  r‹   r'   c                 ó¤   — dd l }|j                  |j                  «       t        |j                  d   «      D �cg c]  }d|› �‘Œ	 c}¬«      S c c}w )Nr   Úsr   )r   rA   Úto_numpyr�   rˆ   )r~   rq   r   rM   r“   s        r$   rn   z%EstimatorWithSetOutputIndex.transformn  sB   € Ûð �|‰|˜AŸJ™J›LÄ%ÈÏÉÐPQÉ
ÓBSÖ0T¸Q°1°Q°C²Ò0Tˆ|ÓUÐUùÒ0Ts   ¹A
c                 óŠ   — t        j                  t        | j                  «      D �cg c]  }d|› �‘Œ	 c}t        ¬«      S c c}w rŽ   r�   r‘   s      r$   r”   z1EstimatorWithSetOutputIndex.get_feature_names_outt  r•   r–   r    r—   r!   r'   r$   rì   rì   i  s   „ óóVôWr'   rì   c                  ó  — t        j                  d«      } | j                  g d¢g d¢gddg¬«      }t        «       j	                  d¬«      }|j                  |«       |j                  |«      }t        |j                  dd	g«       y
)zZCheck that set_output does not override index.

    Non-regression test for gh-25730.
    r   rš   )r0   r.   r1   r   r   r   r™   Ús0Ús1N)	r<   r=   rA   rì   r¤   rŠ   rn   r   r   )rM   rq   r�   ÚX_transs       r$   Ú!test_set_output_pandas_keep_indexrö   x  sp   € ô
 
×	Ñ	˜XÓ	&€Bà
�‰’i¢Ð+°A°q°6ˆÓ:€AÜ
%Ó
'×
2Ñ
2¸XÐ
2Ó
F€CØ‡G�GˆA„Jà�m‰m˜AÓ€GÜ�w—}‘} t¨T lÕ3r'   c                   ó   — e Zd Zd„ Zdd„Zy)ÚEstimatorReturnTuplec                 ó   — || _         y r    ©ÚOutputTuple)r~   rû   s     r$   Ú__init__zEstimatorReturnTuple.__init__ˆ  s
   € Ø&ˆÕr'   Nc                 ó,   — | j                  |d|z  «      S )Nr   rú   r}   s      r$   rn   zEstimatorReturnTuple.transform‹  s   € Ø×Ñ  1 q¡5Ó)Ð)r'   r    )rw   rx   ry   rü   rn   r!   r'   r$   rø   rø   ‡  s   „ ò'ô*r'   rø   c                  ó   — t        dd«      } t        j                  g d¢g«      }t        | ¬«      }|j	                  |«      }t        || «      sJ ‚t        |j                  |«       t        |j                  d|z  «       y)z+Check that namedtuples are kept by default.ÚOutputzX, Yrš   rú   r   N)	r   r>   r?   rø   rn   rE   r   rq   ÚY)rÿ   rq   r�   rõ   s       r$   Útest_set_output_named_tuple_outr  �  sf   € ä˜ &Ó)€FÜ
�
‰
’I�;Ó€AÜ
¨6Ô
2€CØ�m‰m˜AÓ€Gä�g˜vÔ&Ð&Ð&Ü�w—y‘y !Ô$Ü�w—y‘y ! a¡%Õ(r'   c                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚEstimatorWithListInputNc                 óP   — t        |t        «      sJ ‚t        |d   «      | _        | S )Nr   )rE   rL   Úlenr‰   r}   s      r$   rŠ   zEstimatorWithListInput.fitœ  s'   € Ü˜!œTÔ"Ð"Ð"Ü! ! A¡$›iˆÔØˆr'   c                 ó   — |S r    r!   r}   s      r$   rn   z EstimatorWithListInput.transform¡  r€   r'   c                 óŠ   — t        j                  t        | j                  «      D �cg c]  }d|› �‘Œ	 c}t        ¬«      S c c}w rŽ   r�   r‘   s      r$   r”   z,EstimatorWithListInput.get_feature_names_out¤  r•   r–   r    r—   r!   r'   r$   r  r  ›  s   „ óó
ôWr'   r  c                 ó  — t        j                  | «      }g d¢g d¢g}t        «       }|j                  | ¬«       |j	                  |«      j                  |«      }t        ||j                  «      sJ ‚t        |j                  g d¢«       y)zJCheck set_output for list input.

    Non-regression test for #27037.
    )r   r   r   r   )r0   r.   r1   é   r™   )ÚX0ÚX1ÚX2ÚX3N)
r<   r=   r  r¤   rŠ   rn   rE   rA   r   r#   )r­   r°   rq   r�   ÚX_outs        r$   Útest_set_output_list_inputr  ¨  so   € ô ×
Ñ
˜mÓ
,€Câ	’|Ð$€AÜ
 Ó
"€CØ‡N�N˜]€NÔ+à�G‰G�A‹J× Ñ  Ó#€EÜ�e˜SŸ]™]Ô+Ð+Ð+Ü�u—}‘}Ò&>Õ?r'   Únamec                 óJ   — t        t        j                  |    t        «      sJ ‚y)z*Check adapters have the correct interface.N)rE   r   rC   r	   )r  s    r$   Ú test_adapter_class_has_interfacer  ¹  s!   € ô Ô&×/Ñ/°Ñ5Ô7OÔPÐPÑPr'   c                 óØ   ‡— t         j                  Šˆfd„}| j                  t         d|«       d}t        j                  t
        |¬«      5  t        d«       ddd«       y# 1 sw Y   yxY w)zCheck import error changed.c                 ó8   •— | dk(  r
t        «       ‚ ‰| d ¬«       y )Nr   )Úpackage)ÚImportError)r  Úorig_import_modules    €r$   Úpatched_import_modulez;test_check_library_installed.<locals>.patched_import_moduleÃ  s   ø€ Ø�8ÒÜ“-ÐÙ˜4¨Ö.r'   Úimport_modulez-Setting output container to 'pandas' requiresrl   r   N)Ú	importlibr  Úsetattrr<   ro   r  r   )Úmonkeypatchr  r«   r  s      @r$   Útest_check_library_installedr  ¿  sY   ø€ ä"×0Ñ0Ðô/ð
 ×Ñœ	 ?Ð4IÔJà
9€CÜ	�‰”{¨#Ô	.ñ *Ü Ô)÷*÷ *ñ *ús   ÁA Á A)c                  ó,  — t        j                  d«      } | j                  g d¢g d¢dœ«      }t        |«      }|j                  dk(  sJ ‚d}t        j
                  t        |¬«      5  t        |j                  «       «       ddd«       y# 1 sw Y   yxY w)z4Check the behavior fo `_get_adapter_from_container`.r   rš   )r)   é   éd   )r+   r3   zAThe container does not have a registered adapter in scikit-learn.rl   N)r<   r=   rA   r
   Úcontainer_libro   rp   rð   )rM   rq   rQ   Úerr_msgs       r$   Útest_get_adapter_from_containerr#  Ï  sy   € ä	×	Ñ	˜XÓ	&€BØ
�‰š9ª=Ñ9Ó:€AÜ)¨!Ó,€GØ× Ñ  HÒ,Ð,Ð,ØQ€GÜ	�‰”z¨Ô	1ñ 2Ü# A§J¡J£LÔ1÷2÷ 2ñ 2ús   Á'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   r[   rg   ÚmarkÚparametrizers   ru   r{   r„   rŸ   r¡   r¦   r¬   r´   r¶   r¹   r»   rÀ   rÆ   rÈ   rØ   rê   rì   rö   rø   r  r  r  ÚsortedrC   r  r  r#  r!   r'   r$   ú<module>r.     sÅ  ðÛ Ý "ã Û Ý ,ç 6Ý 0÷	÷ 	ó 	õ /òC0òL30ðl ‡�×Ñ˜¨.Ó9ñOó :ðO÷	ñ 	÷ñ ô
	W˜_ô 	Wò(ô6¸ô ò
*ò	ð ‡�×Ñ˜¨8°XÐ*>Ó?ñ1ó @ð1ò(	ð ‡�×ÑÐ+¨h¸Ð-AÓBñ/ó Cð/ô@ Èdõ ò
!ò÷0ñ 0ò&ò&ô.W /ô Wò4ô*˜?ô *ò	)ô
W˜_ô 
Wð ‡�×Ñ˜¨8°XÐ*>Ó?ñ@ó @ð@ð  ‡�×Ñ˜¡Ð(8×(AÑ(AÓ!BÓCñQó DðQò
*ó 2r'   