Ë
    ÷Q(h¶=  ã                   ó  — 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|¬
«      }t        j                  d   }|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   é   r   ©Úindexc                  ó   •— ‰ S ©N© ©Úcolumnss   €úa/var/www/skyplay_api_hub/venv/lib/python3.12/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      sq  ø€ ä	×	Ñ	˜XÓ	&€BÜ�:‰:’y¢)Ð,Ó-€DÜ�j‰jÒ+´6Ô:€GÜ�J‰J˜˜1�vÓ€EØ—‘˜q !˜f q¨! fÐ-°U�Ó;€Iä×'Ñ'¨Ñ1€GØ×*Ñ*¨4°ÃOÐ*ÓT€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>^   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‰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   )re   ÚXÚX_csrrj   s       r$   Ú test__container_error_validationrp   Œ   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$   rr   rr   —   s   „ Ør'   rr   c                   ó   — e Zd Zdd„Zy)Ú!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y)ÚEstimatorWithSetOutputNc                 ó.   — |j                   d   | _        | S ©Nr   ©ÚshapeÚn_features_in_rz   s      r$   ÚfitzEstimatorWithSetOutput.fit¡   ó   € ØŸg™g a™jˆÔØˆr'   c                 ó   — |S r    r!   rz   s      r$   rk   z EstimatorWithSetOutput.transform¥   r}   r'   c                 óŠ   — t        j                  t        | j                  «      D �cg c]  }d|› �‘Œ	 c}t        ¬«      S c c}w ©Nrn   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    ©rt   ru   rv   r‡   rk   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   ©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€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!   rz   s      r$   rk   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 inri   N)r=   r>   r�   r   r;   rl   rm   rk   ©rn   rš   Úmsgs      r$   Útest__safe_set_output_errorr©   Ò   s[   € ä
�
‰
’IšyÐ)Ó*€Aä
 Ó
"€CÜ�S EÕ*à
$€CÜ	�‰”z¨Ô	-ñ Ø�‰�aÔ÷÷ ñ ús   ÁA+Á+A4Údataframe_libr   rZ   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¡   rk   rC   Úndarrayr@   )rª   Úlibrn   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¦   ri   N)	r=   r>   r�   r‡   r¡   r;   rl   rm   rk   r§   s      r$   Útest_set_output_method_errorr³   ó   sl   € ô 	�
‰
’IšyÐ)Ó*€AÜ
 Ó
"×
&Ñ
& qÓ
)€CØ‡N�N˜U€NÔ#à
$€CÜ	�‰”z¨Ô	-ñ Ø�‰�aÔ÷÷ ñ ús   Á$A?Á?Brh   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.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Ð!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!   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«      }|| j	                  |«      u sJ ‚y)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½   %  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.ri   c                   ó   — e Zd Zy)úLtest_auto_wrap_output_keys_errors_with_incorrect_input.<locals>.BadEstimatorNrs   r!   r'   r$   ÚBadEstimatorrÀ   2  s   „ Ør'   rÁ   Úbad_parameterrº   )r;   rl   rm   r   )r¨   rÁ   s     r$   Ú6test_auto_wrap_output_keys_errors_with_incorrect_inputrÃ   .  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__7  s   ø€ Ü‰Ñ!Ñ+ FÒ+Ø/ˆÕr'   )rt   ru   rv   rÈ   Ú__classcell__)rÌ   s   @r$   rÅ   rÅ   6  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!   rz   s      r$   rk   zHtest_set_output_mixin_custom_mixin.<locals>.BothMixinEstimator.transform@  s   € ØˆHr'   c                 ó   — |S r    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Õ   <  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{   rn   s     r$   rk   z+test_set_output_mro.<locals>.Base.transformR  s   € Ør'   Nr~   r!   r'   r$   rÚ   rØ   Q  s   „ ó	r'   rÚ   c                   ó   — e Zd Zy)útest_set_output_mro.<locals>.ANrs   r!   r'   r$   ÚArÝ   U  ó   „ Ør'   rÞ   c                   ó   — e Zd Zd„ Zy)útest_set_output_mro.<locals>.Bc                  ó   — y)NÚBr!   rÛ   s     r$   rk   z(test_set_output_mro.<locals>.B.transformY  s   € Ør'   Nr~   r!   r'   r$   rã   rá   X  s   „ ó	r'   rã   c                   ó   — e Zd Zy)ú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  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„   rz   s      r$   r‡   zEstimatorWithSetOutputIndex.fitc  rˆ   r'   c                 ó¤   — dd l }|j                  |j                  «       t        |j                  d   «      D �cg c]  }d|› �‘Œ	 c}¬«      S c c}w )Nr   Úsr   )r   r@   Úto_numpyr�   r…   )r{   rn   r|   rK   r�   s        r$   rk   z%EstimatorWithSetOutputIndex.transformg  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_outm  r’   r“   r    r”   r!   r'   r$   ré   ré   b  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—   )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  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÷   rz   s      r$   rk   zEstimatorReturnTuple.transform„  s   € Ø×Ñ  1 q¡5Ó)Ð)r'   r    )rt   ru   rv   rù   rk   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õ   rk   rC   r   rn   ÚY)rü   rn   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   )rC   rJ   Úlenr†   rz   s      r$   r‡   zEstimatorWithListInput.fit•  s'   € Ü˜!œTÔ"Ð"Ð"Ü! ! A¡$›iˆÔØˆr'   c                 ó   — |S r    r!   rz   s      r$   rk   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   )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  ¡  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)rC   r   rA   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' requiresri   r   N)Ú	importlibr  Úsetattrr;   rl   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*   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   È  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   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>r+     sÄ  ðÛ Ý "ã Û Ý ,ç 6Ý 0÷	÷ 	ó 	õ /ò<0ò~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'   