Ë
    8Ò^jú€ ã                   óŒ   — d Z ddlZ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mZ ddlmZmZ ddl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mZmZmZ ddl m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.  G d„ dee«      Z/ G d„ de«      Z0 G d„ de«      Z1 G d„ de«      Z2 G d„ de«      Z3ejh                  jk                  dde/dgfd e/«       dgfgdfd e/«       dgfde/dgfgdfdddgfde/dgfgdfde/dgfdddgfgdfg«      d „ «       Z6d!„ Z7d"„ Z8ejh                  jk                  d#d$d%g«      d&„ «       Z9ejh                  jk                  d$d'd(gd$d)g¬*«      ejh                  jk                  d+g  ejt                  d(d(g«      d(d(ggg d,¢¬*«      ejh                  jk                  d-d(d'g«      d.„ «       «       «       Z;d/„ Z<d0„ Z=ejh                  jk                  d1e,«      d2„ «       Z>d3„ Z?ejh                  jk                  d1e,«      ejh                  jk                  d#g d4¢«      d5„ «       «       Z@d6„ ZAd7„ ZBd8„ ZCd9„ ZDd:„ ZEejh                  jk                  d;ddg«      d<„ «       ZFd=„ ZGd>„ ZHd?„ ZId@„ ZJdA„ ZKdB„ ZLdC„ ZMdD„ ZNdE„ ZOdF„ ZPdG„ ZQejh                  jk                  dHdgg dI¢dJgfdgdgdJgfdK„ dL„ dJgfdMgdNgdOgfg dP¢g dI¢g dQ¢fg«      dR„ «       ZRejh                  jk                  dSdgdgf ejt                  dg«      dgf eSdd«      dgf ejt                  d'd(g«      d(d'gfg«      dT„ «       ZTejh                  jk                  dSdgdgf eSdd«      dgf ejt                  d'd(g«      d(d'gfdUgdVgfdWdVgf ejt                  dUg«      dVgf ejt                  dUgeU¬X«      dVgf eSddU«      dVgf eSdUdU«      dVgfg	«      dY„ «       ZVejh                  jk                  dSdgddJgf ejt                  dg«      ddJgf eSdd«      ddJgf ejt                  g dP¢«      g dZ¢fg«      d[„ «       ZWd\„ ZXd]„ ZYejh                  jk                  d1e,«      d^„ «       ZZejh                  jk                  d1e,«      d_„ «       Z[d`„ Z\da„ Z]ejh                  jk                  dbdcg ed e/«       dgfd e/«       dgfg e0«       ¬d«      def ed e/«       dgfd e/«       dgfgd¬d«      def ed e/«       dgfdddgfgd¬d«      dff ed e/«       dgfdddgfgd¬d«      def ed e/«       dgfgd¬d«      dff ed e/«       dgfd e/«       dgfgd¬d«      dgf ed e/«       dgfgd¬d«      dhfg«      ejh                  jk                  didjdkg«      dl„ «       «       Z^dm„ Z_dn„ Z`do„ Zadp„ Zbejh                  jk                  dqejÆ                  ge,¢«      dr„ «       Zdds„ Zeejh                  jk                  dtdudvgdejÌ                  dfdudvgddeUdwgfdudvgdegehgdfdxgdeUdwgdfdvgdehgdfdvgdehdfdvgdyejÌ                  gdfdugdeggdfdugdzejÌ                  gdfdvdxgd{ddfdxgd|deggfg d}ehdfg d~¢dejÌ                  eUdwgdfg«      d„ «       Zid€„ Zjd�„ Zkd‚„ Zlejh                  jk                  dƒg  ejt                  g eg¬X«      d„„ gg d…¢¬*«      d†„ «       Zmejh                  jk                  d‡dgdˆ„ d‰gdŠ„ d(d'gd‹„ g«      dŒ„ «       Znejh                  jk                  d‡dgd�„ d(d'gdŽ„ g«      d�„ «       Zoejh                  jk                  d;d e«       g«      d�„ «       Zpd‘„ Zqejh                  jk                  d;d e«       g«      d’„ «       Zrejh                  jk                  d;d e«       g«      d“„ «       Zsd”„ Ztd•„ Zud–„ Zvejh                  jk                  d—g d˜¢«      ejh                  jk                  d; e/«       ddg«      d™„ «       «       Zwdš„ Zxd›„ Zy G dœ„ d�e/«      Zzejh                  jk                  dždŸ ez«       d d¡gfd¢dd gfgdg d£¢fdŸ ez«       d d¡gfd¢dd gfgdg d¤¢fdŸ ez«       d¥gfd¢dd gfgdg d¦¢fdŸ ezd§d¨g«      g d©¢fgdg dª¢fdŸ ezd«d¥g«      d gfd¢dd¥gfgdg d¬¢fdŸ ez e{dJ«      D � cg c]  } d­| › �‘Œ	 c} «      d¥gfd¢ ez e{dJ«      D � cg c]  } d­| › �‘Œ	 c} «      d¥gfgdg d®¢fdŸdd gfgdg fdŸ ez«        eSdd¯«      fgdd°d±gfdŸ ez«       d¥gfd¢d eSd¯d²«      fgdg d¦¢fdŸ ez«       d d¡gfd¢d eSd¯d²«      fgdg d£¢fdŸ ez«        eSd¥d¡«      fgdd°d±gfdŸ ez«       d¥gfd¢d eSd¡d «      fgdd°d³gfdŸ ez«       d d¡gfd¢d eSd¡d «      fgdg d´¢fg«      dµ„ «       Z|d¶e}d·e}fd¸„Z~d¶e}d·e}fd¹„Zejh                  jk                  dºdŸ ez«       d d¡gfd¢dd gfgde~g d»¢fdŸ ez«       d d¡gfd¢dd gfgdd¼g d½¢fdŸ ez«       d d¡gfd¢d eSd¡d «      fgdeg d¾¢fg«      d¿„ «       Z€ejh                  jk                  dždŸ ez«       d d¡gfd¢dd«gfgdg dÀ¢fdŸ ezd«g«      d d¡gfd¢dd gfgdd«d gfdŸ ez«       d¥gfd¢dd gfgdg dÁ¢fdŸ ezd§d¨g«      g d©¢fgdg dÂ¢fdŸ ezd«d¡g«      d gfd¢dd gfgdg dÃ¢fdŸ ez e{dJ«      D � cg c]  } d­| › �‘Œ	 c} «      d¥gfd¢ ez e{dJ«      D � cg c]  } dÄ| › �‘Œ	 c} «      d¥gfgdg dÅ¢fdŸdd gfgdg fdŸ ez«        eSddJ«      fd¢dd gfgdg dÁ¢fdŸ ez«       d¥gfd¢d eSd¯d²«      fgdg dÁ¢fdŸ ez«       d d¡gfd¢d eSddJ«      fgdg dÀ¢fdŸ ez«        eSd«d¥«      fd¢dd gfgdg dÆ¢fdŸ ez«       d¥gfd¢d eSd¡d «      fgdd¥d«gfdŸ ez«       d d¡gfd¢d eSd«d¥«      fgdg dÀ¢fdŸ ez«       d d¡gfd¢d eSd¥d¥«      fgdg dÇ¢fg«      dÈ„ «       Z�ejh                  jk                  dÉdŸ ez«       d¥gfd¢dd¥gfgddÊfdŸ ezd¡d g«      d¡gfd¢dd¡gfgddËfdŸ ezd«g«      d¥gfd¢dd¥gfgddÌfdŸ ezd«g«      d¥gfd¢dd¥gfgddÌfdŸ ezd¡d¥g«      d¥gfd¢dd¡d¥gfgddÍfdŸ ezd«g«      d¥gfd¢dd«gfdÎ ezd«g«      d¥gfgddÌfdŸ ezd«d¥g«      d¥gfd¢dd«gfdÎ ezd¥g«      d¡gfgddÏfdŸ ez e{dÐ«      D � cg c]  } d­| › �‘Œ	 c} «      d¥gfd¢ ez e{dÐ«      D � cg c]  } d­| › �‘Œ	 c} «      d¥gfgddÑfdŸ ezd«d¥g«       eSddJ«      fd¢dd«gfdÎ ezd¥g«      d¡gfgddÏfdŸ ezd«d¥g«      d¥gfd¢d eSdd«      fdÎ ezd¥g«      d¡gfgddÏfdŸ ezd«d¥g«       eSd¥d¡«      fd¢dd«gfdÎ ezd¥g«      d¡gfgddÏfdŸ ezd«d¥g«      d¥gfd¢d eSd«d««      fdÎ ezd¥g«      d¡gfgddÏfg«      dÒ„ «       Z‚ejh                  jk                  dÓd'd(g«      ejh                  jk                  d;ddg«      dÔ„ «       «       Zƒejh                  jk                  d;ddg«      ejh                  jk                  dkd'd(g«      dÕ„ «       «       Z„ejh                  jk                  d;ddg«      dÖ„ «       Z… G d×„ dØe«      Z†ejh                  jk                  dÙ e†dÚ¬Û«      dÜdÝgdÞdßgfddÜgdÞgfddÜdÝgdÞdßgfg«      dà„ «       Z‡ejh                  jk                  dág  ejt                  d(d(g«      d(d(ggg d,¢¬*«      dâ„ «       Zˆdã„ Z‰dä„ ZŠdå„ Z‹dæ„ ZŒdç„ Z�ejh                  jk                  dèdéd$g«      dê„ «       ZŽ G dë„ dìe«      Z�ejh                  jk                  díd$d%g«      dî„ «       Z�ejh                  �j"                  ejh                  �j%                   e.e�j&                  «       e.dï«      k  dð¬ñ«      dò„ «       «       Z”dó„ Z•ejh                  jk                  dig dô¢«      dõ„ «       Z–ejh                  jk                  dig dô¢«       ed'¬ö«      d÷„ «       «       Z— ed'¬ö«      dø„ «       Z˜ejh                  jk                  dig dô¢«       ed'¬ö«      dù„ «       «       Z™ ed'¬ö«      dú„ «       Zš ed'¬ö«      dû„ «       Z› ed'¬ö«      dü„ «       Zœ ed'¬ö«      ejh                  jk                  d;dd e/«        e!«       g«      dý„ «       «       Z�yc c} w c c} w c c} w c c} w c c} w c c} w )þz
Test the ColumnTransformer.
é    N)Úassert_allclose©Úsparse)Úconfig_context)ÚBaseEstimatorÚTransformerMixin)ÚColumnTransformerÚmake_column_selectorÚmake_column_transformer)ÚNotFittedError)ÚDictVectorizer)ÚVarianceThreshold)ÚFunctionTransformerÚ
NormalizerÚOneHotEncoderÚStandardScaler)ÚConsumingTransformerÚ	_RegistryÚcheck_recorded_metadata©Ú_safe_indexing)Ú_convert_containerÚassert_allclose_dense_sparseÚassert_almost_equalÚassert_array_equal)ÚCSR_CONTAINERSÚ_sparse_eye_arrayÚparse_versionc                   ó   — e Zd Zdd„Zdd„Zy)ÚTransNc                 ó   — | S ©N© ©ÚselfÚXÚys      úx/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/compose/tests/test_column_transformer.pyÚfitz	Trans.fit/   ó   € Øˆó    c                 óœ   — t        |d«      r|j                  «       S t        |dd«      dk(  rt        j                  |«      j
                  S |S )NÚto_frameÚndimé   é   )Úhasattrr-   ÚgetattrÚnpÚ
atleast_2dÚTr$   s      r(   Ú	transformzTrans.transform2   sC   € ä�1�jÔ!Ø—:‘:“<Ðä�1�f˜aÓ  AÒ%Ü—=‘= Ó#×%Ñ%Ð%Øˆr+   r"   ©Ú__name__Ú
__module__Ú__qualname__r)   r6   r#   r+   r(   r    r    .   s   „ óôr+   r    c                   ó   — e Zd Zdd„Zd„ Zy)ÚDoubleTransNc                 ó   — | S r"   r#   r$   s      r(   r)   zDoubleTrans.fit=   r*   r+   c                 ó   — d|z  S ©Nr/   r#   ©r%   r&   s     r(   r6   zDoubleTrans.transform@   s   € Ø�1‰uˆr+   r"   r7   r#   r+   r(   r<   r<   <   s   „ óór+   r<   c                   ó"   — e Zd Zd„ Zdd„Zdd„Zy)ÚSparseMatrixTransc                 ó   — || _         y r"   )Úcsr_container)r%   rD   s     r(   Ú__init__zSparseMatrixTrans.__init__E   s
   € Ø*ˆÕr+   Nc                 ó   — | S r"   r#   r$   s      r(   r)   zSparseMatrixTrans.fitH   r*   r+   c                 óL   — t        |«      }| j                  t        |«      «      S r"   )ÚlenrD   r   )r%   r&   r'   Ú	n_sampless       r(   r6   zSparseMatrixTrans.transformK   s"   € Ü˜“Fˆ	Ø×!Ñ!Ô"3°IÓ">Ó?Ð?r+   r"   ©r8   r9   r:   rE   r)   r6   r#   r+   r(   rB   rB   D   s   „ ò+óô@r+   rB   c                   ó   — e Zd Zdd„Zdd„Zy)Ú	TransNo2DNc                 ó   — | S r"   r#   r$   s      r(   r)   zTransNo2D.fitQ   r*   r+   c                 ó   — |S r"   r#   r$   s      r(   r6   zTransNo2D.transformT   s   € Øˆr+   r"   r7   r#   r+   r(   rL   rL   P   s   „ óôr+   rL   c                   ó   — e Zd Zdd„Zdd„Zy)Ú
TransRaiseNc                 ó   — t        d«      ‚©Núspecific message©Ú
ValueErrorr$   s      r(   r)   zTransRaise.fitY   ó   € ÜÐ+Ó,Ð,r+   c                 ó   — t        d«      ‚rR   rT   r$   s      r(   r6   zTransRaise.transform\   rV   r+   r"   r7   r#   r+   r(   rP   rP   X   s   „ ó-ô-r+   rP   ztransformers, class_nameÚtrans1Útrans2r0   ÚdropÚpassthroughc                 óØ   — t        | «      }t        j                  d|› d|› d�«      }t        j                  t
        |¬«      5  |j                  dgg«       d d d «       y # 1 sw Y   y xY w)Nz Expected an estimator instance (z"()), got estimator class instead (z).©Úmatchr0   )r	   ÚreÚescapeÚpytestÚraisesÚ	TypeErrorr)   )ÚtransformersÚ
class_nameÚctÚmsgs       r(   Ú7test_column_transformer_raises_class_not_instance_errorrh   `   sh   € ô 
˜<Ó	(€BÜ
�)‰)Ø
*¨:¨,ð 7(Ø(2 |°2ð	7ó€Cô 
�‰”y¨Ô	,ñ Ø
�‰��ˆuŒ÷÷ ñ ús   ÁA Á A)c                  óÖ  ‡
— t        j                  g d¢g d¢g«      j                  } t        j                  g d¢«      }t        j                  g d¢«      }|j                  dd«      }| }d|fdg|fddg|ft        j                  ddg«      |ft	        dd«      |ft	        dd«      |ft        j                  ddg«      |fddg|ft        j                  ddg«      |fddg|fg
}|D ]Ä  \  Š
}t        d	t        «       ‰
fgd
¬«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        d	t        «       ˆ
fd„fgd
¬«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       ŒÆ t        dt        «       dgfdt        «       dgfg«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚dddœ}t        dt        «       dgfdt        «       dgfg|¬«      }	t        j                  |d   |z  |d   |z  g«      j                  }t        |	j                  | «      |«       t        |	j                  | «      j                  | «      |«       t        |	j                  «      dk(  sJ ‚t        d	t        «       ddgfgd	di¬«      }	t        |	j                  | «      d|z  «       t        |	j                  | «      j                  | «      d|z  «       t        |	j                  «      dk(  sJ ‚y )N©r   r0   r/   ©r/   é   é   éÿÿÿÿr0   r   r/   TFÚtransrZ   ©Ú	remainderc                 ó   •— ‰S r"   r#   )ÚxÚ	selections    €r(   ú<lambda>z)test_column_transformer.<locals>.<lambda>”   ó   ø€ ¨)€ r+   rX   rY   çš™™™™™¹?é
   ©rX   rY   ©Útransformer_weights)r3   Úarrayr5   ÚreshapeÚslicer	   r    r   Úfit_transformr)   r6   rH   Útransformers_Úvstack)ÚX_arrayÚX_res_first1DÚX_res_second1DÚX_res_firstÚ
X_res_bothÚcasesÚresrf   r{   Úbothrt   s             @r(   Útest_column_transformerrŠ   t   sH  ø€ Ü�h‰hš	¢9Ð-Ó.×0Ñ0€Gä—H‘HšYÓ'€MÜ—X‘XšiÓ(€NØ×'Ñ'¨¨AÓ.€KØ€Jð 
ˆKÐØ
ˆˆkÐà
ˆQˆ�ÐÜ	�‰�1�a�&Ó	˜:Ð&ä	ˆq�!‹�kÐ"Ü	ˆq�!‹�jÐ!ä	�‰�4˜�-Ó	  +Ð.Ø
�ˆ˜Ð$Ü	�‰�4˜�,Ó	 Ð,Ø
�ˆ�zÐ"ð€Eð"  ò 
D‰ˆ	�3Ü ¬%«'°9Ð =Ð>È&ÔQˆÜ˜2×+Ñ+¨GÓ4°cÔ:Ü˜2Ÿ6™6 '›?×4Ñ4°WÓ=¸sÔCô Ø”u“wÓ 3Ð4Ð5Àô
ˆô 	˜2×+Ñ+¨GÓ4°cÔ:Ü˜2Ÿ6™6 '›?×4Ñ4°WÓ=¸sÕCð
Dô 
˜X¤u£w°°Ð4°xÄÃÈ1È#Ð6NÐOÓ	P€BÜ�r×'Ñ'¨Ó0°*Ô=Ü�r—v‘v˜g“×0Ñ0°Ó9¸:ÔFÜˆr×ÑÓ  AÒ%Ð%Ð%ð &)°BÑ7ÐÜØ
”E“G˜a˜SÐ	! H¬e«g¸°sÐ#;Ð<Ø/ô€Dô �)‰)à Ñ)¨MÑ9Ø Ñ)¨NÑ:ð	
ó÷
 �að ô �t×)Ñ)¨'Ó2°CÔ8Ü�t—x‘x Ó(×2Ñ2°7Ó;¸SÔAÜˆt×!Ñ!Ó" aÒ'Ð'Ð'äØ
”5“7˜Q ˜FÐ	#Ð$¸7ÀC¸.ô€Dô �t×)Ñ)¨'Ó2°C¸*Ñ4DÔEÜ�t—x‘x Ó(×2Ñ2°7Ó;¸SÀ:Ñ=MÔNÜˆt×!Ñ!Ó" aÒ'Ð'Ñ'r+   c                  ó¨  — t        j                  g d¢g d¢g«      j                  } dt        «       dgfdt        «       dgfg}t	        |«      }t	        t        |«      «      }t        |j                  | «      |j                  | «      «       t        |j                  | «      j                  | «      |j                  | «      j                  | «      «       y )Nrj   rk   rX   r   rY   r0   )
r3   r|   r5   r    r	   Útupler   r   r)   r6   )r‚   rd   Úct_with_listÚct_with_tuples       r(   Ú4test_column_transformer_tuple_transformers_parameterr�   ¶   s³   € Ü�h‰hš	¢9Ð-Ó.×0Ñ0€Gàœu›w¨¨Ð,¨x¼»À1À#Ð.FÐG€Lä$ \Ó2€LÜ%¤e¨LÓ&9Ó:€MäØ×"Ñ" 7Ó+¨]×-HÑ-HÈÓ-Qôô Ø×Ñ˜Ó!×+Ñ+¨GÓ4Ø×Ñ˜'Ó"×,Ñ,¨WÓ5õr+   Úconstructor_nameÚpandasÚpolarsc                 óô  ‡ ‡— t        j                  ‰ «      }t        j                  g d¢g d¢g«      j                  }t        |‰ ddg¬«      }t        j                  g d¢«      j                  dd«      }|}dg|fddg|ft        dd«      |fdg|fddg|ft        j                  ddg«      |ft        dd«      |ft        dd	«      |ft        j                  d
dg«      |fd
dg|fd|fd|fg}‰ dk(  r)|j                  |j                  d
dgddg¬«      |fg«       |D ]Ä  \  Š}t        dt        «       ‰fgd¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        dt        «       ˆfd„fgd¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       ŒÆ t        dt        «       dgfdt        «       dgfg«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t!        |j"                  «      d	k(  sJ ‚|j"                  d   d   dk7  sJ ‚t        dt        «       dgfdt        «       dgfg«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t!        |j"                  «      d	k(  sJ ‚|j"                  d   d   dk7  sJ ‚dddœ}	t        dt        «       dgfdt        «       dgfg|	¬«      }
t        j$                  |	d   |d   z  |	d   |d   z  g«      j                  }t        |
j                  |«      |«       t        |
j                  |«      j                  |«      |«       t!        |
j"                  «      d	k(  sJ ‚|
j"                  d   d   dk7  sJ ‚t        dt        «       ddgfgddi¬«      }
t        |
j                  |«      d|z  «       t        |
j                  |«      j                  |«      d|z  «       t!        |
j"                  «      dk(  sJ ‚|
j"                  d   d   dk7  sJ ‚t        dt        «       ddgfgddi¬«      }
t        |
j                  |«      d|z  «       t        |
j                  |«      j                  |«      d|z  «       t!        |
j"                  «      dk(  sJ ‚|
j"                  d   d   dk7  sJ ‚ G ˆ fd„dt&        «      }t        d ||j(                  ¬«      ddgfg«      }|j                  |«       t        d ||j                  ¬«      dfgd¬«      }|j                  |«       ‰ dk(  rÝ|j+                  «       }ddg|_        t        dt        «       dfgd¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t!        |j"                  «      d	k(  sJ ‚|j"                  d   d   dk(  sJ ‚|j"                  d   d   dk(  sJ ‚t        |j"                  d   d	   dg«       y y )Nrj   rk   ÚfirstÚsecond©Úcolumn_namesrn   r0   r   r/   TFr‘   ©Úindexro   rZ   rp   c                 ó   •— ‰S r"   r#   )r&   rt   s    €r(   ru   z3test_column_transformer_dataframe.<locals>.<lambda>ú   rv   r+   rX   rY   rq   rw   rx   ry   rz   c                   ó(   •— e Zd Zd„ Zdd„Zdˆ fd„	Zy)ú6test_column_transformer_dataframe.<locals>.TransAssertc                 ó   — || _         y r"   ©Úexpected_type_transform)r%   rŸ   s     r(   rE   z?test_column_transformer_dataframe.<locals>.TransAssert.__init__2  s
   € Ø+BˆDÕ(r+   Nc                 ó   — | S r"   r#   r$   s      r(   r)   z:test_column_transformer_dataframe.<locals>.TransAssert.fit5  ó   € ØˆKr+   c                 ó€   •— t        || j                  «      sJ ‚t        |j                  «      dk  rt	        |‰«      }|S r?   )Ú
isinstancerŸ   rH   Úshaper   )r%   r&   r'   r�   s      €r(   r6   z@test_column_transformer_dataframe.<locals>.TransAssert.transform8  s;   ø€ Ü˜a ×!=Ñ!=Ô>Ð>Ð>Ü�1—7‘7‹|˜aÒÜ& qÐ*:Ó;�ØˆHr+   r"   rJ   )r�   s   €r(   ÚTransAssertrœ   1  s   ø„ ò	Có	ö	r+   r¥   rž   )ra   Úimportorskipr3   r|   r5   r   r}   r~   ÚextendÚSeriesr	   r    r   r   r)   r6   rH   r€   r�   r   Ú	DataFrameÚcopyÚcolumns)r�   Údf_libr‚   ÚX_dfr…   r†   r‡   rˆ   rf   r{   r‰   r¥   ÚX_df2rt   s   `            @r(   Ú!test_column_transformer_dataframer¯   Ç   s£  ù€ ä× Ñ Ð!1Ó2€Fä�h‰hš	¢9Ð-Ó.×0Ñ0€GÜØÐ!°¸(Ð0Cô€Dô —(‘(š9Ó%×-Ñ-¨b°!Ó4€KØ€Jð
 ˆ�KÐ Ø
�8Ð	˜jÐ)ä	ˆw˜Ó	! :Ð.ð ˆˆkÐØ
ˆQˆ�ÐÜ	�‰�1�a�&Ó	˜:Ð&ä	ˆq�!‹�kÐ"Ü	ˆq�!‹�jÐ!ä	�‰�4˜�-Ó	  +Ð.Ø
�ˆ˜Ð$à	
ˆKÐØ	�+Ðð)€Eð, ˜8Ò#Ø�‰ð —M‘M 4¨ -¸ÀÐ7J�MÓKØððô	
ð  ò 
>‰ˆ	�3Ü ¬%«'°9Ð =Ð>È&ÔQˆÜ˜2×+Ñ+¨DÓ1°3Ô7Ü˜2Ÿ6™6 $›<×1Ñ1°$Ó7¸Ô=ô Ø”u“wÓ 3Ð4Ð5Àô
ˆô 	˜2×+Ñ+¨DÓ1°3Ô7Ü˜2Ÿ6™6 $›<×1Ñ1°$Ó7¸Õ=ð
>ô 
Ø
”E“G˜g˜YÐ	'¨(´E³G¸h¸ZÐ)HÐIó
€Bô �r×'Ñ'¨Ó-¨zÔ:Ü�r—v‘v˜d“|×-Ñ-¨dÓ3°ZÔ@Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1ä	˜X¤u£w°°Ð4°xÄÃÈ1È#Ð6NÐOÓ	P€BÜ�r×'Ñ'¨Ó-¨zÔ:Ü�r—v‘v˜d“|×-Ñ-¨dÓ3°ZÔ@Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1ð &)°BÑ7ÐÜØ
”E“G˜g˜YÐ	'¨(´E³G¸h¸ZÐ)HÐIØ/ô€Dô �)‰)à Ñ)¨D°©MÑ9Ø Ñ)¨D°©NÑ:ð	
ó÷
 �að ô �t×)Ñ)¨$Ó/°Ô5Ü�t—x‘x “~×/Ñ/°Ó5°sÔ;Üˆt×!Ñ!Ó" aÒ'Ð'Ð'Ø×Ñ˜bÑ! !Ñ$¨Ò3Ð3Ð3ô Ø
”5“7˜W hÐ/Ð	0Ð1ÈÐQTÀ~ô€Dô �t×)Ñ)¨$Ó/°°zÑ1AÔBÜ�t—x‘x “~×/Ñ/°Ó5°s¸ZÑ7GÔHÜˆt×!Ñ!Ó" aÒ'Ð'Ð'Ø×Ñ˜bÑ! !Ñ$¨Ò3Ð3Ð3äØ
”5“7˜Q ˜FÐ	#Ð$¸7ÀC¸.ô€Dô �t×)Ñ)¨$Ó/°°zÑ1AÔBÜ�t—x‘x “~×/Ñ/°Ó5°s¸ZÑ7GÔHÜˆt×!Ñ!Ó" aÒ'Ð'Ð'Ø×Ñ˜bÑ! !Ñ$¨Ò3Ð3Ð3ö”mô ô 
ð Ù°F×4DÑ4DÔEØ˜(Ð#ðð	
ó
€Bð ×Ñ�TÔä	ð Ù°F·M±MÔBØðð	
ð ô	
€Bð ×Ñ�TÔà˜8Ò#ð —	‘	“ˆØ˜A˜ˆŒÜ ¬%«'°1Ð 5Ð6À&ÔIˆÜ˜2×+Ñ+¨EÓ2°KÔ@Ü˜2Ÿ6™6 %›=×2Ñ2°5Ó9¸;ÔGä�2×#Ñ#Ó$¨Ò)Ð)Ð)Ø×Ñ Ñ# AÑ&¨+Ò5Ð5Ð5Ø×Ñ Ñ# AÑ&¨&Ò0Ð0Ð0Ü˜2×+Ñ+¨BÑ/°Ñ2°Q°CÕ8ð $r+   TFÚnumpy)ÚidsÚcolumn_selection)ÚlistÚboolÚbool_intÚcallable_columnc                 óö  ‡— t        j                  g d¢g d¢g«      j                  }|}| r+t        j                  d«      }|j                  |ddg¬«      }n|}|rˆfd„}n‰}t        dt        «       d	d
gfdt        «       |fg«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        |j                  «      dk(  sJ ‚t        |j                  d
   d
   t        «      sJ ‚t        dt        «       |fdt        «       d	d
gfg«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        |j                  «      dk(  sJ ‚t        |j                  d	   d
   t        «      sJ ‚t        dt        «       |fgd¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        |j                  «      dk(  sJ ‚t        |j                  d	   d
   t        «      sJ ‚t        j                  g g g g«      }	t        dt        «       |fgd¬«      }t        |j                  |«      |	«       t        |j                  |«      j                  |«      |	«       t        |j                  «      dk(  sJ ‚t        |j                  d	   d
   t        «      sJ ‚y )Nrj   rk   r‘   r”   r•   ©r«   c                 ó   •— ‰S r"   r#   )r&   r²   s    €r(   ru   z7test_column_transformer_empty_columns.<locals>.<lambda>y  s   ø€ Ð+€ r+   rX   r   r0   rY   r/   ro   r[   rp   rZ   )r3   r|   r5   ra   r¦   r©   r	   r    rP   r   r   r)   r6   rH   r€   r£   )
r‘   r²   r¶   r‚   r†   Úpdr&   Úcolumnrf   Úfixtures
    `        r(   Ú%test_column_transformer_empty_columnsr½   e  s£  ø€ ô �h‰hš	¢9Ð-Ó.×0Ñ0€GØ€JáÜ× Ñ  Ó*ˆØ�L‰L˜¨7°HÐ*=ˆLÓ>‰àˆáÛ+‰à!ˆä	Ø
”E“G˜a ˜VÐ	$ x´³¸vÐ&FÐGó
€Bô �r×'Ñ'¨Ó*¨JÔ7Ü�r—v‘v˜a“y×*Ñ*¨1Ó-¨zÔ:Üˆr×ÑÓ  AÒ%Ð%Ð%Ü�b×&Ñ& qÑ)¨!Ñ,¬jÔ9Ð9Ð9ä	Ø
”J“L &Ð	)¨H´e³gÀÀ1¸vÐ+FÐGó
€Bô �r×'Ñ'¨Ó*¨JÔ7Ü�r—v‘v˜a“y×*Ñ*¨1Ó-¨zÔ:Üˆr×ÑÓ  AÒ%Ð%Ð%Ü�b×&Ñ& qÑ)¨!Ñ,¬jÔ9Ð9Ð9ä	˜W¤j£l°FÐ;Ð<ÈÔ	V€BÜ�r×'Ñ'¨Ó*¨JÔ7Ü�r—v‘v˜a“y×*Ñ*¨1Ó-¨zÔ:Üˆr×ÑÓ  AÒ%Ð%Ð%Ü�b×&Ñ& qÑ)¨!Ñ,¬jÔ9Ð9Ð9ä�h‰h˜˜B �|Ó$€GÜ	˜W¤j£l°FÐ;Ð<ÈÔ	O€BÜ�r×'Ñ'¨Ó*¨GÔ4Ü�r—v‘v˜a“y×*Ñ*¨1Ó-¨wÔ7Üˆr×ÑÓ  AÒ%Ð%Ð%Ü�b×&Ñ& qÑ)¨!Ñ,¬jÔ9Ð9Ñ9r+   c                  ó  — t        j                  d«      j                  dd«      } t        dt	        «       dgfdt	        «       dgfg«      }|j                  | «      }|j                  t        dd«      t        dd«      t        dd«      dœk(  sJ ‚t        |d d …dgf   |d d …|j                  d   f   «       t        |d d …dgf   |d d …|j                  d   f   «       t        d	t	        «       ddgfgd	d
i¬«      }|j                  | «      }|j                  t        dd«      t        dd«      dœk(  sJ ‚t        |d d …ddgf   |d d …|j                  d	   f   «       t        |d d …g f   |d d …|j                  d   f   «       t        dt	        «       ddgfdt        «       g fg«      }|j                  | «      }|j                  t        dd«      t        dd«      t        dd«      dœk(  sJ ‚t        |d d …ddgf   |d d …|j                  d   f   «       t        |d d …g f   |d d …|j                  d   f   «       t        |d d …g f   |d d …|j                  d   f   «       t        d	t        «       g fgd¬«      }|j                  | «      }|j                  t        dd«      t        dd«      dœk(  sJ ‚t        |d d …g f   |d d …|j                  d	   f   «       t        |d d …ddgf   |d d …|j                  d   f   «       y )Nrm   é   r/   rX   r   rY   r0   ©rX   rY   rq   ro   rw   rz   )ro   rq   rq   r[   rp   )
r3   Úaranger}   r	   r    r   Úoutput_indices_r~   r   rP   )r‚   rf   ÚX_transs      r(   Ú&test_column_transformer_output_indicesrÄ   ›  s  € ä�i‰i˜‹l×"Ñ" 1 aÓ(€Gä	˜X¤u£w°°Ð4°xÄÃÈ1È#Ð6NÐOÓ	P€BØ×Ñ˜wÓ'€GØ×ÑÜ˜˜1“+Ü˜˜1“+Ü˜1˜a“[ñ"ò ð ð ô
 �wšq 1 #˜v‘¨²°2×3EÑ3EÀhÑ3OÐ0OÑ(PÔQÜ�wšq 1 #˜v‘¨²°2×3EÑ3EÀhÑ3OÐ0OÑ(PÔQô 
Ø
”5“7˜Q ˜FÐ	#Ð$¸7ÀC¸.ô
€Bð ×Ñ˜wÓ'€GØ×Ñ¬5°°A«;ÄUÈ1ÈaÃ[Ñ!QÒQÐQÐQÜ�wšq 1 a &˜yÑ)¨7²1°b×6HÑ6HÈÑ6QÐ3QÑ+RÔSÜ�wšq "˜u‘~ wªq°"×2DÑ2DÀ[Ñ2QÐ/QÑ'RÔSô 
˜X¤u£w°°A°Ð7¸(ÄJÃLÐRTÐ9UÐVÓ	W€BØ×Ñ˜wÓ'€GØ×ÑÜ˜˜1“+Ü˜˜1“+Ü˜1˜a“[ñ"ò ð ð ô
 �wšq 1 a &˜yÑ)¨7²1°b×6HÑ6HÈÑ6RÐ3RÑ+SÔTÜ�wšq "˜u‘~ wªq°"×2DÑ2DÀXÑ2NÐ/NÑ'OÔPÜ�wšq "˜u‘~ wªq°"×2DÑ2DÀ[Ñ2QÐ/QÑ'RÔSä	˜W¤j£l°BÐ7Ð8ÀMÔ	R€BØ×Ñ˜wÓ'€GØ×Ñ¬5°°A«;ÄUÈ1ÈaÃ[Ñ!QÒQÐQÐQÜ�wšq "˜u‘~ wªq°"×2DÑ2DÀWÑ2MÐ/MÑ'NÔOÜ�wšq 1 a &˜yÑ)¨7²1°b×6HÑ6HÈÑ6UÐ3UÑ+VÕWr+   c                  ó  — t        j                  d«      } | j                  t        j                  d«      j                  dd«      ddg¬«      }t        dt        «       dgfd	t        «       dgfg«      }|j                  |«      }|j                  t        d
d«      t        dd«      t        d
d
«      dœk(  sJ ‚t        |d d …d
gf   |d d …|j                  d   f   «       t        |d d …dgf   |d d …|j                  d	   f   «       t        |d d …g f   |d d …|j                  d   f   «       t        dt        «       d
gfd	t        «       dgfg«      }|j                  |«      }|j                  t        d
d«      t        dd«      t        d
d
«      dœk(  sJ ‚t        |d d …d
gf   |d d …|j                  d   f   «       t        |d d …dgf   |d d …|j                  d	   f   «       t        |d d …g f   |d d …|j                  d   f   «       y )Nr‘   rm   r¿   r/   r”   r•   r¸   rX   rY   r   r0   rÀ   rq   )ra   r¦   r©   r3   rÁ   r}   r	   r    r   rÂ   r~   r   )rº   r­   rf   rÃ   s       r(   Ú)test_column_transformer_output_indices_dfrÆ   Æ  s  € ä	×	Ñ	˜XÓ	&€Bà�<‰<œŸ	™	 !›×,Ñ,¨Q°Ó2¸WÀhÐ<Oˆ<ÓP€Dä	Ø
”E“G˜g˜YÐ	'¨(´E³G¸h¸ZÐ)HÐIó
€Bð ×Ñ˜tÓ$€GØ×ÑÜ˜˜1“+Ü˜˜1“+Ü˜1˜a“[ñ"ò ð ð ô
 �wšq 1 #˜v‘¨²°2×3EÑ3EÀhÑ3OÐ0OÑ(PÔQÜ�wšq 1 #˜v‘¨²°2×3EÑ3EÀhÑ3OÐ0OÑ(PÔQÜ�wšq "˜u‘~ wªq°"×2DÑ2DÀ[Ñ2QÐ/QÑ'RÔSä	˜X¤u£w°°Ð4°xÄÃÈ1È#Ð6NÐOÓ	P€BØ×Ñ˜tÓ$€GØ×ÑÜ˜˜1“+Ü˜˜1“+Ü˜1˜a“[ñ"ò ð ð ô
 �wšq 1 #˜v‘¨²°2×3EÑ3EÀhÑ3OÐ0OÑ(PÔQÜ�wšq 1 #˜v‘¨²°2×3EÑ3EÀhÑ3OÐ0OÑ(PÔQÜ�wšq "˜u‘~ wªq°"×2DÑ2DÀ[Ñ2QÐ/QÑ'RÕSr+   rD   c                 óÆ  —  | t        dd«      «      }|d d …dgf   }|}ddgt        dd«      fD ]—  }d|fd|ffD ]Š  \  }}t        dt        «       |fg|d	¬
«      }t	        j
                  |j                  |«      «      sJ ‚t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       ŒŒ Œ™ ddgt        dd«      fD ]†  }t        dt        «       |fgd	¬«      }t	        j
                  |j                  |«      «      sJ ‚t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       Œˆ y )Nr¿   r/   r   )r   r0   rZ   r[   ro   çš™™™™™é?©rq   Úsparse_threshold©rÊ   )
r   r~   r	   r    r   Úissparser   r   r)   r6   )rD   ÚX_sparser…   r†   Úcolrq   rˆ   rf   s           r(   Ú$test_column_transformer_sparse_arrayrÏ   å  si  € áÔ.¨q°!Ó4Ó5€Hð š1˜q˜c˜6Ñ"€KØ€Jà�q�cœ5  A›;Ð'ò TˆØ &¨Ð4°}ÀjÐ6QÐRò 	T‰NˆI�sÜ"Øœ5›7 CÐ(Ð)°YÐQTôˆBô —?‘? 2×#3Ñ#3°HÓ#=Ô>Ð>Ð>Ü(¨×)9Ñ)9¸(Ó)CÀSÔIÜ(¨¯©°Ó)9×)CÑ)CÀHÓ)MÈsÕSñ	TðTð �A�œ˜a ›Ð$ò WˆÜ ¬%«'°3Ð 7Ð8È3ÔOˆÜ�‰˜r×/Ñ/°Ó9Ô:Ð:Ð:Ü$ R×%5Ñ%5°hÓ%?ÀÔLÜ$ R§V¡V¨HÓ%5×%?Ñ%?ÀÓ%IÈ:ÕVñ	Wr+   c                  óJ  — dt        d«      dgg d¢g} t        j                  dt        d«      ddgg d¢g«      }t        dt	        «       ddgfdt        «       d	gfg«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       y )
Nr0   ÚnanÚa)r   r   Úbr   )rn   r   r   r0   Ú	numericalÚcategoricalr/   )
Úfloatr3   r|   r	   r   r   r   r   r)   r6   )ÚX_listÚexpected_resultrf   s      r(   Útest_column_transformer_listrÙ   ý  s¡   € Ø”%˜“, Ð$¢kÐ2€FÜ—h‘hà”�e“˜a Ð#Úð	
ó€Oô 
àœ.Ó*¨Q°¨FÐ3ØœM›O¨a¨SÐ1ð	
ó
€Bô �r×'Ñ'¨Ó/°ÔAÜ�r—v‘v˜f“~×/Ñ/°Ó7¸ÕIr+   )r|   r‘   r’   c                 ó   — t        j                  g d¢g d¢g«      j                  }t        ||ddg¬«      }t	        dt        «       dgfdt        | «      d	fgd
¬«      }|j                  |«       |j                  |«      }t        j                  |«      sJ ‚|j                  |j                  d   |j                  d   d	z   fk(  sJ ‚t        |j                  «       d d …d	d …f   t        j                  |j                  d   «      «       t        |j                   «      dk(  sJ ‚|j                   d   d   dk7  sJ ‚t	        dt        «       dgfdt        | «      d	fgd¬«      }|j                  |«       |j                  |«      }t        j                  |«      rJ ‚|j                  |j                  d   |j                  d   d	z   fk(  sJ ‚t        |d d …d	d …f   t        j                  |j                  d   «      «       y )Nrj   rk   r”   r•   r–   rX   r   rY   r0   rÈ   rË   r/   rn   rq   rw   )r3   r|   r5   r   r	   r    rB   r)   r6   r   rÌ   r¤   r   ÚtoarrayÚeyerH   r€   )rD   r�   r&   Ú	col_transrÃ   s        r(   Ú'test_column_transformer_sparse_stackingrÞ     sÔ  € ô 	�‰’)šYÐ'Ó(×*Ñ*€AÜ˜1Ð.¸gÀxÐ=PÔQ€Aä!Ø
”E“G˜a˜SÐ	! HÔ.?ÀÓ.NÐPQÐ#RÐSØô€Ið ‡M�M�!ÔØ×!Ñ! !Ó$€GÜ�?‰?˜7Ô#Ð#Ð#Ø�=‰=˜WŸ]™]¨1Ñ-¨w¯}©}¸QÑ/?À!Ñ/CÐDÒDÐDÐDÜ�w—‘Ó(ª¨A©B¨Ñ/´·±¸¿¹ÀaÑ8HÓ1IÔJÜˆy×&Ñ&Ó'¨1Ò,Ð,Ð,Ø×"Ñ" 2Ñ& qÑ)¨[Ò8Ð8Ð8ä!Ø
”E“G˜a˜SÐ	! HÔ.?ÀÓ.NÐPQÐ#RÐSØô€Ið ‡M�M�!ÔØ×!Ñ! !Ó$€GÜ�‰˜wÔ'Ð'Ð'Ø�=‰=˜WŸ]™]¨1Ñ-¨w¯}©}¸QÑ/?À!Ñ/CÐDÒDÐDÐDÜ�wšq !¡"˜u‘~¤r§v¡v¨g¯m©m¸AÑ.>Ó'?Õ@r+   c                  óÜ  — t        j                  g d¢g d¢gd¬«      } t        t        «       dgfdddgfd	¬
«      }|j	                  | «      }|j
                  dk(  sJ ‚t        |j                  «       t        j                  g d¢g d¢g«      «       t        t        «       dgfddgfd	¬
«      }t        j                  t        d¬«      5  |j	                  | «       d d d «       y # 1 sw Y   y xY w)N)rÒ   r0   T)rÓ   r/   FÚO©Údtyper   r[   r0   r/   ç      ð?rË   Úcsr)r0   r   r0   r0   )r   r0   r/   r   z'For a sparse output, all columns shouldr]   )r3   r|   r   r   r   Úformatr   rÛ   ra   rb   rU   )Údfrf   rÃ   s      r(   Ú)test_column_transformer_mixed_cols_sparserç   .  sÔ   € Ü	�‰’>¢?Ð3¸3Ô	?€Bä	 Ü	‹˜1˜#Ð °°A°Ð 7È#ô
€Bð ×Ñ˜rÓ"€GØ�>‰>˜UÒ"Ð"Ð"Ü�w—‘Ó(¬"¯(©(²LÂ,Ð3OÓ*PÔQä	 Ü	‹˜1˜#Ð °°Ð 4Àsô
€Bô 
�‰”zÐ)RÔ	Sñ ð 	×Ñ˜Ô÷÷ ñ ús   ÃC"Ã"C+c                  ó„  — t        j                  ddgddggt        ¬«      j                  } t	        dt        «       dgfdt        «       d	gfgd
¬«      }|j                  | «      }t        j                  |«      rJ ‚|j                  rJ ‚dD ]c  }t	        dt        d¬«      dgfdt        d¬«      d	gfg|¬«      }|j                  | «      }t        j                  |«      sJ ‚|j                  rŒcJ ‚ dD ]c  }t	        dt        d¬«      dgfdt        d¬«      d	gfg|¬«      }|j                  | «      }t        j                  |«      rJ ‚|j                  sŒcJ ‚ dD ]c  }t	        dt        d¬«      dgfdt        d¬«      d	gfg|¬«      }|j                  | «      }t        j                  |«      rJ ‚|j                  sŒcJ ‚ y )NrÒ   rÓ   ÚAÚBrá   rX   r   rY   r0   çš™™™™™É?rË   )gãˆµø è?r0   T)Úsparse_outputF)g      è?r   )g…ëQ¸Õ?r   r0   )
r3   r|   Úobjectr5   r	   r   r   r   rÌ   Úsparse_output_)r‚   rÝ   rˆ   Úthress       r(   Ú(test_column_transformer_sparse_thresholdrð   D  só  € Ü�h‰h˜˜c˜
 S¨# JÐ/´vÔ>×@Ñ@€Gô "Ø
”M“O a SÐ	)¨H´m³oÈÀsÐ+KÐLØô€Ið ×
!Ñ
! 'Ó
*€CÜ�‰˜sÔ#Ð#Ð#Ø×'Ò'Ð'Ð'ð ò 
(ˆÜ%àœ=°tÔ<¸q¸cÐBØœ=°uÔ=À¸sÐCðð #ô
ˆ	ð ×%Ñ% gÓ.ˆÜ�‰˜sÔ#Ð#Ð#Ø×'Ó'Ð'Ð'ð
(ð ò 
,ˆÜ%àœ=°tÔ<¸q¸cÐBØœ=°uÔ=À¸sÐCðð #ô
ˆ	ð ×%Ñ% gÓ.ˆÜ—?‘? 3Ô'Ð'Ð'Ø×+Ó+Ð+Ð+ð
,ð ò 
,ˆÜ%àœ=°uÔ=À¸sÐCØœ=°uÔ=À¸sÐCðð #ô
ˆ	ð ×%Ñ% gÓ.ˆÜ—?‘? 3Ô'Ð'Ð'Ø×+Ó+Ð+Ð+ñ
,r+   c                  ó\  — t        j                  g d¢g d¢g«      j                  } t        dt	        «       dfg«      }d}t        j                  t        |¬«      5  |j                  | «       d d d «       t        j                  t        |¬«      5  |j                  | «       d d d «       t        dt        «       dfg«      }|j                  |j                  fD ].  }t        j                  t        d¬«      5   || «       d d d «       Œ0 y # 1 sw Y   ŒŸxY w# 1 sw Y   ŒvxY w# 1 sw Y   ŒSxY w)N©ç        rã   ç       @©rô   ç      @g      @ro   r   z1D data passed to a transformerr]   rS   )r3   r|   r5   r	   r   ra   rb   rU   r)   r   rP   )r‚   rÝ   rg   Úfuncs       r(   Ú$test_column_transformer_error_msg_1Drø   x  sÿ   € Ü�h‰hšªÐ9Ó:×<Ñ<€Gä! G¬^Ó-=¸qÐ#AÐ"BÓC€IØ
+€CÜ	�‰”z¨Ô	-ñ Ø�‰�gÔ÷ô 
�‰”z¨Ô	-ñ )Ø×Ñ Ô(÷)ô " G¬Z«\¸1Ð#=Ð">Ó?€IØ—‘ 	× 7Ñ 7Ð8ò ˆÜ�]‰]œ:Ð-?Ô@ñ 	Ù�ŒM÷	ð 	ñ÷ð ú÷)ð )ú÷
	ð 	ús$   ÁD
ÂDÃ6	D"Ä
DÄDÄ"D+	c                  ó†  — t        j                  g d¢g d¢g«      j                  } t        ddt	        «       dfg«      }d}t        j                  t        |¬«      5  |j                  | «       d d d «       t        j                  t        |¬«      5  |j                  | «       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)Nrj   rk   )rX   rZ   r   rY   r0   z%the 'trans2' transformer should be 2Dr]   )
r3   r|   r5   r	   rL   ra   rb   rU   r   r)   ©r‚   rf   rg   s      r(   Útest_2D_transformer_outputrû   ‰  s¡   € Ü�h‰hš	¢9Ð-Ó.×0Ñ0€Gô 
Ð1°H¼i»kÈ1Ð3MÐNÓ	O€Bà
1€CÜ	�‰”z¨Ô	-ñ "Ø
×Ñ˜Ô!÷"ô 
�‰”z¨Ô	-ñ Ø
�‰ˆwŒ÷ð ÷"ð "ú÷ð ús   ÁB+ÂB7Â+B4Â7C c                  óØ  — t        j                  d«      } t        j                  g d¢g d¢g«      j                  }| j                  |ddg¬«      }t        dt        «       dfg«      }d}t        j                  t        |¬	«      5  |j                  |«       d d d «       t        j                  t        |¬	«      5  |j                  |«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)
Nr‘   rj   rk   Úcol1Úcol2r¸   rX   z%the 'trans1' transformer should be 2Dr]   )ra   r¦   r3   r|   r5   r©   r	   rL   rb   rU   r   r)   )rº   r‚   r­   rf   rg   s        r(   Ú!test_2D_transformer_output_pandasrÿ   —  sÅ   € Ü	×	Ñ	˜XÓ	&€Bä�h‰hš	¢9Ð-Ó.×0Ñ0€GØ�<‰<˜¨&°&Ð)9ˆ<Ó:€Dô 
˜X¤y£{°FÐ;Ð<Ó	=€BØ
1€CÜ	�‰”z¨Ô	-ñ Ø
×Ñ˜Ô÷ô 
�‰”z¨Ô	-ñ Ø
�‰ˆtŒ÷ð ÷ð ú÷ð ús   ÂCÂ9C ÃCÃ C)rq   c                 ó8  — t        j                  g d¢g d¢g«      j                  }dddgt        dd«      t        j                  dg«      fD ]P  }t	        dt        «       |fg| ¬	«      }t        j                  t        d
¬«      5  |j                  |«       d d d «       ŒR dddgt        dd«      fD ]P  }t	        dt        «       |fg| ¬	«      }t        j                  t        d¬«      5  |j                  |«       d d d «       ŒR ddg}t	        dt        «       |fg| ¬	«      }|j                  |«       t        j                  g d¢g d¢g d¢g«      j                  }d}t        j                  t        |¬«      5  |j                  |«       d d d «       t        j                  g d¢g«      j                  }d}t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   �Œ¨xY w# 1 sw Y   �ŒQxY w# 1 sw Y   Œ}xY w# 1 sw Y   y xY w)Nrj   rk   ç      ø?Ústringr0   Úsrã   ro   rp   zNo valid specificationr]   ÚotherrÒ   rÓ   úSpecifying the columnsr   ©r¿   rm   é	   zIX has 3 features, but ColumnTransformer is expecting 2 features as input.zIX has 1 features, but ColumnTransformer is expecting 2 features as input.)r3   r|   r5   r~   r	   r    ra   rb   rU   r)   r6   )rq   r‚   rÎ   rf   ÚX_array_morerg   ÚX_array_fewerÚerr_msgs           r(   Ú'test_column_transformer_invalid_columnsr  §  sâ  € ä�h‰hš	¢9Ð-Ó.×0Ñ0€Gð �h �]¤E¨!¨S£M´2·8±8¸S¸E³?ÐCò ˆÜ ¬%«'°3Ð 7Ð8ÀIÔNˆÜ�]‰]œ:Ð-EÔFñ 	Ø�F‰F�7ŒO÷	ð 	ðð ˜8 WÐ-¬u°S¸#«Ð?ò ˆÜ ¬%«'°3Ð 7Ð8ÀIÔNˆÜ�]‰]œ:Ð-EÔFñ 	Ø�F‰F�7ŒO÷	ð 	ðð ˆaˆ&€CÜ	˜W¤e£g¨sÐ3Ð4À	Ô	J€BØ‡F�Fˆ7„OÜ—8‘8šYª	²9Ð=Ó>×@Ñ@€LØ
U€CÜ	�‰”z¨Ô	-ñ #Ø
�‰�\Ô"÷#ä—H‘Hâð	
ó÷ �að	 ð 	Tð ô 
�‰”z¨Ô	1ñ $Ø
�‰�]Ô#÷$ð $÷3	ñ 	ú÷	ñ 	ú÷#ð #ú÷$ð $ús0   ÂG*Ã'G7Å6HÇHÇ*G4	Ç7H	ÈHÈHc                  ó  —  G d„ dt         «      } t        j                  g d¢g d¢g«      j                  }t	        d | «       dgfg«      }d}t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)	Nc                   ó   — e Zd Zdd„Zd„ Zy)ú<test_column_transformer_invalid_transformer.<locals>.NoTransNc                 ó   — | S r"   r#   r$   s      r(   r)   z@test_column_transformer_invalid_transformer.<locals>.NoTrans.fitÍ  r¡   r+   c                 ó   — |S r"   r#   r@   s     r(   ÚpredictzDtest_column_transformer_invalid_transformer.<locals>.NoTrans.predictÐ  s   € ØˆHr+   r"   )r8   r9   r:   r)   r  r#   r+   r(   ÚNoTransr  Ì  s   „ ó	ó	r+   r  rj   rk   ro   r   z1All estimators should implement fit and transformr]   )	r   r3   r|   r5   r	   ra   rb   rc   r)   )r  r‚   rf   rg   s       r(   Ú+test_column_transformer_invalid_transformerr  Ë  st   € ô”-ô ô �h‰hš	¢9Ð-Ó.×0Ñ0€GÜ	˜W¡g£i°!°Ð5Ð6Ó	7€BØ
=€CÜ	�‰”y¨Ô	,ñ Ø
�‰ˆwŒ÷÷ ñ ús   Á'BÂBc                  ó®   — t        «       } t        «       }t        | df|dgf«      }t        |j                  Ž \  }}}|dk(  sJ ‚|| |fk(  sJ ‚|ddgfk(  sJ ‚y )Nr”   r•   )ÚstandardscalerÚ
normalizer)r   r   r   Úziprd   )ÚscalerÚnormrf   Únamesrd   r«   s         r(   Útest_make_column_transformerr  Ú  st   € ÜÓ€FÜ‹<€DÜ	  &¨'Ð!2°T¸H¸:Ð4FÓ	G€BÜ#&¨¯©Ð#8Ñ €Eˆ<˜ØÐ4Ò4Ð4Ð4Ø˜F D˜>Ò)Ð)Ð)Ø�w  
Ð+Ò+Ð+Ñ+r+   c                  óz  — t        j                  d«      } t        j                  g d¢g d¢g«      j                  }| j                  |ddg¬«      }t        «       }t        dt        «       |j                  fg«      }t        ||j                  f«      }t        |j                  |«      |j                  |«      «       y )Nr‘   rj   rk   r”   r•   r¸   r  )ra   r¦   r3   r|   r5   r©   r   r	   r«   r   r   r   )rº   r‚   r­   r  Úct1Úct2s         r(   Ú#test_make_column_transformer_pandasr  ä  s–   € Ü	×	Ñ	˜XÓ	&€BÜ�h‰hš	¢9Ð-Ó.×0Ñ0€GØ�<‰<˜¨'°8Ð)<ˆ<Ó=€DÜ‹<€DÜ
˜f¤j£l°D·L±LÐAÐBÓ
C€CÜ
! 4¨¯©Ð"6Ó
7€CÜ˜×)Ñ)¨$Ó/°×1BÑ1BÀ4Ó1HÕIr+   c                  óÆ  — t        «       } t        «       }t        | df|dgfddd¬«      }|j                  t        | df|dgf«      j                  k(  sJ ‚|j                  dk(  sJ ‚|j
                  dk(  sJ ‚|j                  dk(  sJ ‚t        j                  d«      }t        j                  t        |¬«      5  t        | df|dgfd	d
dœ¬«       d d d «       y # 1 sw Y   y xY w)Nr”   r•   r¿   rZ   g      à?)Ún_jobsrq   rÊ   zRmake_column_transformer() got an unexpected keyword argument 'transformer_weights'r]   rx   r0   )ÚpcaÚTransfrz   )r   r   r   rd   r!  rq   rÊ   r_   r`   ra   rb   rc   )r  r  rf   rg   s       r(   Ú#test_make_column_transformer_kwargsr$  î  sþ   € ÜÓ€FÜ‹<€DÜ	 Ø	�ÐØ	�ˆzÐØØØô
€Bð 	�‰Ü" F¨GÐ#4°t¸h¸ZÐ6HÓI×VÑVò	Wðð	Wð �9‰9˜Š>Ðˆ>Ø�<‰<˜6Ò!Ð!Ð!Ø×Ñ #Ò%Ð%Ð%ä
�)‰)ð	1ó€Cô 
�‰”y¨Ô	,ñ 
ÜØ�WÐØ�H�:ÐØ(*°aÑ 8õ	
÷
÷ 
ñ 
ús   Â7CÃC c                  óˆ   — t        «       } t        «       }t        «       }t        | df|dgf|¬«      }|j                  |k(  sJ ‚y )Nr”   r•   rp   )r   r   r   rq   )r  r  rq   rf   s       r(   Ú2test_make_column_transformer_remainder_transformerr&    sJ   € ÜÓ€FÜ‹<€DÜÓ €IÜ	 Ø	�Ð˜D 8 *Ð-¸ô
€Bð �<‰<˜9Ò$Ð$Ñ$r+   c                  óÞ  — t        dt        «       dgfdt        «       dgfg«      } d dd| j                  d   d   ddd| j                  d   d   ddd| j                  d ddd	œ}| j                  «       |k(  sJ ‚| j	                  d¬
«       | j                  «       d   rJ ‚| j	                  d¬«       d ddd| j                  d   d   ddd| j                  d dddœ}| j                  «       |k(  sJ ‚y )NrX   r   rY   r0   rZ   ç333333Ó?TF)r!  rq   rÊ   rX   Útrans1__copyÚtrans1__with_meanÚtrans1__with_stdrY   Útrans2__copyÚtrans2__with_meanÚtrans2__with_stdrd   r{   Úverbose_feature_names_outÚverbose)r*  r*  r[   ©rX   )r!  rq   rÊ   rX   rY   r,  r-  r.  rd   r{   r/  r0  )r	   r   rd   Ú
get_paramsÚ
set_params©rf   Úexps     r(   Ú&test_column_transformer_get_set_paramsr6    s  € Ü	Ø
”NÓ$ q cÐ	*¨X´~Ó7GÈ!ÈÐ,MÐNó
€Bð
 ØØØ—/‘/ !Ñ$ QÑ'ØØ!Ø Ø—/‘/ !Ñ$ QÑ'ØØ!Ø ØŸ™Ø#Ø%)Øñ€Cð$ �=‰=‹?˜cÒ!Ð!Ð!à‡M�M E€MÔ*Ø�}‰}‹Ð2Ò3Ð3Ð3à‡M�M˜€MÔ'àØØØØ—/‘/ !Ñ$ QÑ'ØØ!Ø ØŸ™Ø#Ø%)Øñ€Cð �=‰=‹?˜cÒ!Ð!Ñ!r+   c                  ó˜  — t        j                  g d¢g d¢g«      j                  } t        dt	        «       dgfdt	        d¬«      dgfg«      }t        |d	«      rJ ‚|j                  | «       t        |d	«      sJ ‚t        |j                  d   t        «      sJ ‚t        |j                  j                  t        «      sJ ‚t        |j                  d   t        «      sJ ‚t        |j                  j                  t        «      sJ ‚|j                  j                  j                  rJ ‚|j                  j                  j                  d
k(  sJ ‚y )Nrò   rõ   rX   r   rY   F)Úwith_stdr0   r€   rã   )r3   r|   r5   r	   r   r1   r)   r£   Únamed_transformers_rX   rY   r8  Úmean_©r‚   rf   s     r(   Ú(test_column_transformer_named_estimatorsr<  E  s   € Ü�h‰hšªÐ9Ó:×<Ñ<€GÜ	à”~Ó'¨!¨Ð-Ø”~¨uÔ5¸°sÐ;ð	
ó
€Bô �r˜?Ô+Ð+Ð+Ø‡F�Fˆ7„OÜ�2�Ô'Ð'Ð'Ü�b×,Ñ,¨XÑ6¼ÔGÐGÐGÜ�b×,Ñ,×3Ñ3´^ÔDÐDÐDÜ�b×,Ñ,¨XÑ6¼ÔGÐGÐGÜ�b×,Ñ,×3Ñ3´^ÔDÐDÐDØ×%Ñ%×,Ñ,×5Ò5Ð5Ð5à×!Ñ!×(Ñ(×.Ñ.°#Ò5Ð5Ñ5r+   c                  óâ  — t        j                  g d¢g d¢g«      j                  } t        dt	        «       dgfg«      }|j                  | «       t        |j                  d   d   d«      rJ ‚t        |j                  d   d   d«      sJ ‚t        dt	        «       dgfg«      }|j                  | «       t        |j                  d   d   d«      rJ ‚t        |j                  d   d   d«      sJ ‚y )Nrò   rõ   ro   r   r0   r:  )
r3   r|   r5   r	   r   r)   r1   rd   r€   r   r;  s     r(   Útest_column_transformer_cloningr>  Y  sâ   € Ü�h‰hšªÐ9Ó:×<Ñ<€Gä	˜W¤nÓ&6¸¸Ð<Ð=Ó	>€BØ‡F�Fˆ7„OÜ�r—‘ qÑ)¨!Ñ,¨gÔ6Ð6Ð6Ü�2×#Ñ# AÑ& qÑ)¨7Ô3Ð3Ð3ä	˜W¤nÓ&6¸¸Ð<Ð=Ó	>€BØ×Ñ�WÔÜ�r—‘ qÑ)¨!Ñ,¨gÔ6Ð6Ð6Ü�2×#Ñ# AÑ& qÑ)¨7Ô3Ð3Ñ3r+   c                  óÈ  — t        j                  g d¢g d¢g«      j                  } t        dt	        «       ddgfg«      }t        j                  t        «      5  |j                  «        d d d «       |j                  | «       t        j                  d«      }t        j                  t        |¬«      5  |j                  «        d d d «       y # 1 sw Y   ŒdxY w# 1 sw Y   y xY w)Nrò   rõ   ro   r   r0   zETransformer trans (type Trans) does not provide get_feature_names_outr]   )r3   r|   r5   r	   r    ra   rb   r   Úget_feature_names_outr)   r_   r`   ÚAttributeErrorrú   s      r(   Ú)test_column_transformer_get_feature_namesrB  g  s¶   € Ü�h‰hšªÐ9Ó:×<Ñ<€GÜ	˜W¤e£g°°1¨vÐ6Ð7Ó	8€Bä	�‰”~Ó	&ñ #Ø
× Ñ Ô"÷#ð ‡F�Fˆ7„OÜ
�)‰)ØOó€Cô 
�‰”~¨SÔ	1ñ #Ø
× Ñ Ô"÷#ð #÷#ð #ú÷#ð #ús   ÁCÂ2CÃCÃC!c                  ó\  — t        j                  g d¢g d¢g«      j                  } t        dt	        «       dgfdddgfg«      }t        j                  dgd	gd
gg«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚|j                  d   d   dk7  sJ ‚t        dddgfdddgfg«      }t        |j                  | «      j                  | «      j                  d«       t        |j                  | «      j                  d«       t        |j                  «      dk(  sJ ‚|j                  d   d   dk7  sJ ‚t        j                  g d¢g d¢g«      j                  } t        dt	        «       dgfdddgfg«      }| }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚|j                  d   d   dk7  sJ ‚y )Nrò   rõ   rX   r   rY   rZ   r0   ró   rã   rô   r/   rn   rq   )r¿   r   r[   )r3   r|   r5   r	   r    r   r   r)   r6   rH   r€   r¤   )r‚   rf   r5  s      r(   Ú'test_column_transformer_special_stringsrD  v  s  € ä�h‰hšªÐ9Ó:×<Ñ<€GÜ	˜X¤u£w°°Ð4°xÀÈ!ÈÐ6MÐNÓ	O€BÜ
�(‰(�S�E˜C˜5 3 %Ð(Ó
)€CÜ�r×'Ñ'¨Ó0°#Ô6Ü�r—v‘v˜g“×0Ñ0°Ó9¸3Ô?Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1ô 
˜X v°¨sÐ3°hÀÈÈÐ5LÐMÓ	N€BÜ�r—v‘v˜g“×0Ñ0°Ó9×?Ñ?ÀÔHÜ�r×'Ñ'¨Ó0×6Ñ6¸Ô?Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1ô �h‰hšªÐ9Ó:×<Ñ<€GÜ	˜X¤u£w°°Ð4°xÀÐQRÐPSÐ6TÐUÓ	V€BØ
€CÜ�r×'Ñ'¨Ó0°#Ô6Ü�r—v‘v˜g“×0Ñ0°Ó9¸3Ô?Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ñ1r+   c                  ó²  — t        j                  g d¢g d¢g«      j                  } t        j                  g d¢«      j                  dd«      }t        j                  g d¢«      j                  dd«      }| }t	        dt        «       dgfg«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   d	k(  sJ ‚t        |j                  d   d   dg«       t	        d
t        «       dgfgd¬«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        |j                  d   d   t        «      sJ ‚t        |j                  d   d   dg«       t	        dt        «       dgfgd¬«      }t        |j                  | «      |d d …d d d…f   «       t        |j                  | «      j                  | «      |d d …d d d…f   «       t        |j                  «      dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        |j                  d   d   t        «      sJ ‚t        |j                  d   d   dg«       t	        dd	dgfgd¬«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        |j                  d   d   t        «      sJ ‚t        |j                  d   d   dg«       t        t        «       dgf«      }|j                  d	k(  sJ ‚y )Nrj   rk   rn   r0   rX   r   r/   rq   rZ   ro   r[   rp   )r3   r|   r5   r}   r	   r    r   r   r)   r6   rH   r€   r£   r   r   rq   )r‚   r…   ÚX_res_secondr†   rf   s        r(   Ú!test_column_transformer_remainderrG  ‘  s—  € Ü�h‰hš	¢9Ð-Ó.×0Ñ0€Gä—(‘(š9Ó%×-Ñ-¨b°!Ó4€KÜ—8‘8šIÓ&×.Ñ.¨r°1Ó5€LØ€Jô 
˜X¤u£w°°Ð4Ð5Ó	6€BÜ�r×'Ñ'¨Ó0°+Ô>Ü�r—v‘v˜g“×0Ñ0°Ó9¸;ÔGÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ø×Ñ˜BÑ Ñ" fÒ,Ð,Ð,Ü�r×'Ñ'¨Ñ+¨AÑ.°°Ô4ô 
˜W¤e£g°¨sÐ3Ð4ÀÔ	N€BÜ�r×'Ñ'¨Ó0°*Ô=Ü�r—v‘v˜g“×0Ñ0°Ó9¸:ÔFÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/BÔCÐCÐCÜ�r×'Ñ'¨Ñ+¨AÑ.°°Ô4ô 
˜X¤u£w°°Ð4Ð5ÀÔ	O€BÜ�r×'Ñ'¨Ó0°*ºQÁÀ"À¸WÑ2EÔFÜ�r—v‘v˜g“×0Ñ0°Ó9¸:ÂaÉÈ2ÈÀgÑ;NÔOÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/BÔCÐCÐCÜ�r×'Ñ'¨Ñ+¨AÑ.°°Ô4ô 
˜X v°¨sÐ3Ð4ÀÔ	N€BÜ�r×'Ñ'¨Ó0°,Ô?Ü�r—v‘v˜g“×0Ñ0°Ó9¸<ÔHÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/BÔCÐCÐCÜ�r×'Ñ'¨Ñ+¨AÑ.°°Ô4ô 
!¤%£'¨A¨3 Ó	0€BØ�<‰<˜6Ò!Ð!Ñ!r+   z%cols1, cols2, expected_remainder_cols)FTFr/   c                 ó   — dgS ©Nr   r#   ©rs   s    r(   ru   ru   Æ  s   € �A�3€ r+   c                 ó   — dgS ©Nr0   r#   rJ  s    r(   ru   ru   Æ  s   €  1 #€ r+   ré   rê   ÚC)TFF)FFTc                 ó\  — t        j                  d«      }t        | t        «      r=t        | d   t        «      r*t        j                  d«      }|j                  |g d¢¬«      }t        t        «       | ft        «       |fd¬«      }|j                  |«       |j                  d   d   |k(  sJ ‚y	)
z{Check that the remainder columns format matches the format of the other
    columns when they're all strings or masks.
    )r0   r¿   r   r‘   )ré   rê   rM  r¸   r[   rp   rn   N)r3   Úonesr£   r³   Ústrra   r¦   r©   r   r    r   r€   )Úcols1Úcols2Úexpected_remainder_colsr&   rº   rf   s         r(   Ú(test_column_transformer_remainder_dtypesrT  Á  sœ   € ô 	�‰�‹€Aä�%œÔ¤:¨e°A©h¼Ô#<Ü× Ñ  Ó*ˆØ�L‰L˜¢OˆLÓ4ˆô 
!Ü	‹�%ÐÜ	‹�%ÐØô
€Bð
 ×Ñ�QÔØ×Ñ˜BÑ Ñ#Ð'>Ò>Ð>Ñ>r+   zkey, expected_colsc                 óâ  — t        j                  g d¢g d¢g«      j                  }|}t        dt	        «       | fgd¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        |j                  «      dk(  sJ ‚|j                  d   d   d	k(  sJ ‚t        |j                  d   d
   t        «      sJ ‚|j                  d   d   |k(  sJ ‚y )Nrj   rk   rX   r[   rp   r/   rn   r   rq   r0   )r3   r|   r5   r	   r    r   r   r)   r6   rH   r€   r£   r   ©ÚkeyÚexpected_colsr‚   r†   rf   s        r(   Ú'test_column_transformer_remainder_numpyrY  ß  sè   € ô �h‰hš	¢9Ð-Ó.×0Ñ0€GØ€Jä	Ø
”E“G˜SÐ	!Ð"Øô
€Bô �r×'Ñ'¨Ó0°*Ô=Ü�r—v‘v˜g“×0Ñ0°Ó9¸:ÔFÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/BÔCÐCÐCØ×Ñ˜BÑ Ñ" mÒ3Ð3Ñ3r+   r”   r•   úpd-indexrá   c                 ó„  — t        j                  d«      }t        | t        «      r| dk(  r|j	                  dg«      } t        j                  g d¢g d¢g«      j                  }|j                  |ddg¬«      }|}t        dt        «       | fgd	¬
«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        |j                   «      dk(  sJ ‚|j                   d   d   dk(  sJ ‚t        |j                   d   d   t"        «      sJ ‚|j                   d   d   |k(  sJ ‚y )Nr‘   rZ  r”   rj   rk   r•   r¸   rX   r[   rp   r/   rn   r   rq   r0   )ra   r¦   r£   rP  ÚIndexr3   r|   r5   r©   r	   r    r   r   r)   r6   rH   r€   r   )rW  rX  rº   r‚   r­   r†   rf   s          r(   Ú(test_column_transformer_remainder_pandasr]  ù  s0  € ô  
×	Ñ	˜XÓ	&€BÜ�#”sÔ  zÒ 1Ø�h‰h˜�yÓ!ˆä�h‰hš	¢9Ð-Ó.×0Ñ0€GØ�<‰<˜¨'°8Ð)<ˆ<Ó=€DØ€Jä	Ø
”E“G˜SÐ	!Ð"Øô
€Bô �r×'Ñ'¨Ó-¨zÔ:Ü�r—v‘v˜d“|×-Ñ-¨dÓ3°ZÔ@Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/BÔCÐCÐCØ×Ñ˜BÑ Ñ" mÒ3Ð3Ñ3r+   )FTTc                 ó:  — t        j                  g d¢g d¢g d¢g«      j                  }|j                  «       }|d d …dd…fxx   dz  cc<   t	        dt        «       | fgt        «       ¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       t        |j                  «      dk(  sJ ‚|j                  d	   d
   dk(  sJ ‚t        |j                  d	   d   t        «      sJ ‚|j                  d	   d   |k(  sJ ‚y )Nrj   rk   ©é   rm   rl   r0   r¿   r/   rX   rp   rn   r   rq   )r3   r|   r5   rª   r	   r    r<   r   r   r)   r6   rH   r€   r£   rV  s        r(   Ú-test_column_transformer_remainder_transformerra    s  € ô �h‰hš	¢9ªiÐ8Ó9×;Ñ;€GØ—‘“€Jð Šq�!�A�#ˆvÓ˜!ÑÓä	Ø
”E“G˜SÐ	!Ð"Ü“-ô
€Bô
 �r×'Ñ'¨Ó0°*Ô=Ü�r—v‘v˜g“×0Ñ0°Ó9¸:ÔFÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-¬{Ô;Ð;Ð;Ø×Ñ˜BÑ Ñ" mÒ3Ð3Ñ3r+   c                  ó†  — t        j                  g d¢g d¢g d¢g«      j                  } t        dt	        «       g d¢fgt        «       ¬«      }t        |j                  | «      | «       t        |j                  | «      j                  | «      | «       t        |j                  «      dk(  sJ ‚|j                  d   d   d	k7  sJ ‚y )
Nrj   rk   r_  rX   rp   r0   rn   r   rq   )r3   r|   r5   r	   r    r<   r   r   r)   r6   rH   r€   r;  s     r(   Ú:test_column_transformer_no_remaining_remainder_transformerrc  :  s    € Ü�h‰hš	¢9ªiÐ8Ó9×;Ñ;€Gä	˜X¤u£w²	Ð:Ð;Ä{Ã}Ô	U€Bä�r×'Ñ'¨Ó0°'Ô:Ü�r—v‘v˜g“×0Ñ0°Ó9¸7ÔCÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ñ1r+   c                  ó,  — t        j                  g d¢g d¢g d¢g«      j                  } d| j                  «       d d …dd…f   z  }t	        ddd	gfgt        «       ¬
«      }t        |j                  | «      |«       t        |j                  | «      j                  | «      |«       t        |j                  «      dk(  sJ ‚|j                  d   d	   dk(  sJ ‚t        |j                  d   d   t
        «      sJ ‚t        |j                  d   d   ddg«       y )Nrj   rk   r_  r/   r0   r¿   rX   rZ   r   rp   rn   rq   )r3   r|   r5   rª   r	   r<   r   r   r)   r6   rH   r€   r£   )r‚   r†   rf   s      r(   Ú7test_column_transformer_drops_all_remainder_transformerre  E  sý   € Ü�h‰hš	¢9ªiÐ8Ó9×;Ñ;€Gð �W—\‘\“^¢A q¨ s FÑ+Ñ+€Jä	˜X v°¨sÐ3Ð4ÄÃÔ	N€Bä�r×'Ñ'¨Ó0°*Ô=Ü�r—v‘v˜g“×0Ñ0°Ó9¸:ÔFÜˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-¬{Ô;Ð;Ð;Ü�r×'Ñ'¨Ñ+¨AÑ.°°A°Õ7r+   c                 ó¦  — t        j                  g d¢g d¢g d¢g«      j                  }t        dt	        «       dgfgt        | «      d¬«      }|j                  |«      }t        j                  |«      sJ ‚|j                  dk(  sJ ‚t        j                  |d d …df   j                  d	d
«      t        j                  d«      f«      }t        |j                  «       |«       t        |j                   «      dk(  sJ ‚|j                   d	   d   dk(  sJ ‚t#        |j                   d	   d
   t
        «      sJ ‚t        |j                   d	   d   d
dg«       y )Nrj   rk   r_  rX   r   rÈ   rÉ   ©r¿   rl   rn   r0   r¿   r/   rq   )r3   r|   r5   r	   r    rB   r   r   rÌ   r¤   Úhstackr}   rÜ   r   rÛ   rH   r€   r£   )rD   r‚   rf   rÃ   Ú	exp_arrays        r(   Ú4test_column_transformer_sparse_remainder_transformerrj  U  s2  € ä�h‰hš	¢9ªiÐ8Ó9×;Ñ;€Gä	Ø
”E“G˜a˜SÐ	!Ð"Ü# MÓ2Øô
€Bð ×Ñ˜wÓ'€GÜ�?‰?˜7Ô#Ð#Ð#ð �=‰=˜JÒ&Ð&Ð&ä—	‘	˜7¢1 a 4™=×0Ñ0°°QÓ7¼¿¹À»ÐCÓD€IÜ�w—‘Ó(¨)Ô4Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/@ÔAÐAÐAÜ�r×'Ñ'¨Ñ+¨AÑ.°°A°Õ7r+   c                 ó:  — t        j                  g d¢g d¢g d¢g«      j                  }t        dddgfgt	        | «      d¬«      }|j                  |«      }t        j                  |«      sJ ‚|j                  d	k(  sJ ‚t        |j                  «       t        j                  d
«      «       t        |j                  «      dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        |j                  d   d   t        «      sJ ‚t        |j                  d   d   ddg«       y )Nrj   rk   r_  rX   rZ   r   rÈ   rÉ   )r¿   r¿   r¿   r/   rn   rq   r0   )r3   r|   r5   r	   rB   r   r   rÌ   r¤   r   rÛ   rÜ   rH   r€   r£   )rD   r‚   rf   rÃ   s       r(   Ú=test_column_transformer_drop_all_sparse_remainder_transformerrl  m  s  € ä�h‰hš	¢9ªiÐ8Ó9×;Ñ;€GÜ	Ø
�F˜Q˜CÐ	 Ð!Ü# MÓ2Øô
€Bð ×Ñ˜wÓ'€GÜ�?‰?˜7Ô#Ð#Ð#ð �=‰=˜FÒ"Ð"Ð"Ü�w—‘Ó(¬"¯&©&°«)Ô4Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ü�b×&Ñ& rÑ*¨1Ñ-Ô/@ÔAÐAÐAÜ�r×'Ñ'¨Ñ+¨AÑ.°°A°Õ7r+   c                  ó¼  — t        dt        «       dgfgt        «       ¬«      } d | j                  dddd| j                  d   d   ddd| j                  d dddœ}| j	                  «       |k(  sJ ‚| j                  d¬	«       | j	                  «       d
   rJ ‚| j                  d¬«       d | j                  ddddd| j                  d dddœ}| j	                  «       |k(  sJ ‚y )NrX   r   rp   Tr(  r0   F)r!  rq   Úremainder__copyÚremainder__with_meanÚremainder__with_stdrÊ   rX   r)  r*  r+  rd   r{   r/  r0  )rp  rp  r[   r1  )r!  rq   rn  ro  rp  rÊ   rX   rd   r{   r/  r0  )r	   r   rq   rd   r2  r3  r4  s     r(   Ú5test_column_transformer_get_set_params_with_remainderrq  ‚  sù   € Ü	Ø
”NÓ$ q cÐ	*Ð+´~Ó7Gô
€Bð
 Ø—\‘\ØØ $Ø#ØØ—/‘/ !Ñ$ QÑ'ØØ!Ø ØŸ™Ø#Ø%)Øñ€Cð" �=‰=‹?˜cÒ!Ð!Ð!à‡M�M e€MÔ,Ø�}‰}‹Ð4Ò5Ð5Ð5à‡M�M˜€MÔ'àØ—\‘\ØØ $Ø$ØØØŸ™Ø#Ø%)Øñ€Cð �=‰=‹?˜cÒ!Ð!Ñ!r+   c                  ó¶  — t        j                  g d¢g d¢g d¢g«      j                  d«      j                  } t	        g t        «       ¬«      }|j                  «       }|d   sJ ‚|j                  | «      }|j                  | j                  k(  sJ ‚t        |j                  «      dk(  sJ ‚|j                  d   d	   d
k(  sJ ‚|j                  d   d   g d¢k(  sJ ‚y )Nrj   rk   r_  rÖ   rp   ro  r0   rn   r   rq   r/   )r3   r|   Úastyper5   r	   r   r2  r   r¤   rH   r€   )r‚   rf   ÚparamsrÃ   s       r(   Ú%test_column_transformer_no_estimatorsru  ®  sÌ   € Ü�h‰hš	¢9ªiÐ8Ó9×@Ñ@ÀÓI×KÑK€GÜ	˜2¬Ó)9Ô	:€Bà�]‰]‹_€FØÐ(Ò)Ð)Ð)à×Ñ˜wÓ'€GØ�=‰=˜GŸM™MÒ)Ð)Ð)Üˆr×ÑÓ  AÒ%Ð%Ð%Ø×Ñ˜BÑ Ñ" kÒ1Ð1Ð1Ø×Ñ˜BÑ Ñ"¢iÒ/Ð/Ñ/r+   ÚestÚpatternrp   zÄ\[ColumnTransformer\].*\(1 of 3\) Processing trans1.* total=.*\n\[ColumnTransformer\].*\(2 of 3\) Processing trans2.* total=.*\n\[ColumnTransformer\].*\(3 of 3\) Processing remainder.* total=.*\n$z„\[ColumnTransformer\].*\(1 of 2\) Processing trans1.* total=.*\n\[ColumnTransformer\].*\(2 of 2\) Processing remainder.* total=.*\n$z�\[ColumnTransformer\].*\(1 of 2\) Processing trans1.* total=.*\n\[ColumnTransformer\].*\(2 of 2\) Processing trans2.* total=.*\n$zA\[ColumnTransformer\].*\(1 of 1\) Processing trans1.* total=.*\n$Úmethodr)   r   c                 óh  — t        j                  g d¢g d¢g d¢g«      j                  }t        | |«      }| j	                  d¬«        ||«       |j                  «       j                  rJ d«       ‚| j	                  d¬«        ||«       t        j                  ||j                  «       d   «      sJ ‚y )	Nrj   rk   r_  F)r0  zGot output for verbose=FalseTr   )	r3   r|   r5   r2   r3  Ú
readouterrÚoutr_   r^   )rv  rw  rx  Úcapsysr‚   r÷   s         r(   Útest_column_transformer_verboser}  ¼  s–   € ôL �h‰hš	¢9ªiÐ8Ó9×;Ñ;€Gä�3˜Ó€DØ‡N�N˜5€NÔ!Ùˆ„MØ× Ñ Ó"×&Ò&ÐFÐ(FÓFÐ&à‡N�N˜4€NÔ Ùˆ„MÜ�8‰8�G˜V×.Ñ.Ó0°Ñ3Ô4Ð4Ñ4r+   c                  ó\   — t        g «      j                  d¬«      } | j                  dk(  sJ ‚y )Nr/   )r!  )r	   r3  r!  ©rf   s    r(   Ú0test_column_transformer_no_estimators_set_paramsr€    s*   € Ü	˜2Ó	×	)Ñ	)°Ð	)Ó	3€BØ�9‰9˜Š>Ð‰>r+   c                  óÄ  ‡— t        j                  g d¢g d¢g«      j                  Št        j                  g d¢g«      j                  } ˆfd„}t        dt	        «       |fgd¬«      }t        |j                  ‰«      | «       t        |j                  ‰«      j                  ‰«      | «       t        |j                  d   d   «      sJ ‚|j                  d   d   dgk(  sJ ‚y )	Nrj   rk   c                 ó"   •— t        | ‰«       dgS rI  )r   )r&   r‚   s    €r(   r÷   z8test_column_transformer_callable_specifier.<locals>.func  s   ø€ Ü˜1˜gÔ&Øˆsˆ
r+   ro   rZ   rp   r   r/   )r3   r|   r5   r	   r    r   r   r)   r6   Úcallablerd   r€   )r…   r÷   rf   r‚   s      @r(   Ú*test_column_transformer_callable_specifierr„    s¿   ø€ ä�h‰hš	¢9Ð-Ó.×0Ñ0€GÜ—(‘(šI˜;Ó'×)Ñ)€Kôô 
˜W¤e£g¨tÐ4Ð5ÀÔ	H€BÜ�r×'Ñ'¨Ó0°+Ô>Ü�r—v‘v˜g“×0Ñ0°Ó9¸;ÔGÜ�B—O‘O AÑ& qÑ)Ô*Ð*Ð*Ø×Ñ˜AÑ˜qÑ! a SÒ(Ð(Ñ(r+   c                  ó  ‡— t        j                  d«      } t        j                  g d¢g d¢g«      j                  }t        j                  g d¢g«      j                  }| j                  |ddg¬«      Šˆfd„}t        dt        «       |fgd	¬
«      }t        |j                  ‰«      |«       t        |j                  ‰«      j                  ‰«      |«       t        |j                  d   d   «      sJ ‚|j                  d   d   dgk(  sJ ‚y )Nr‘   rj   rk   r”   r•   r¸   c                 óŠ   •— t        | j                  ‰j                  «       t        | j                  ‰j                  «       dgS )Nr”   )r   r«   Úvalues)r&   r­   s    €r(   r÷   zBtest_column_transformer_callable_specifier_dataframe.<locals>.func+  s/   ø€ Ü˜1Ÿ9™9 d§l¡lÔ3Ü˜1Ÿ8™8 T§[¡[Ô1ØˆyÐr+   ro   rZ   rp   r   r/   )ra   r¦   r3   r|   r5   r©   r	   r    r   r   r)   r6   rƒ  rd   r€   )rº   r‚   r…   r÷   rf   r­   s        @r(   Ú4test_column_transformer_callable_specifier_dataframerˆ  #  sæ   ø€ ä	×	Ñ	˜XÓ	&€BÜ�h‰hš	¢9Ð-Ó.×0Ñ0€GÜ—(‘(šI˜;Ó'×)Ñ)€Kà�<‰<˜¨'°8Ð)<ˆ<Ó=€Dôô
 
˜W¤e£g¨tÐ4Ð5ÀÔ	H€BÜ�r×'Ñ'¨Ó-¨{Ô;Ü�r—v‘v˜d“|×-Ñ-¨dÓ3°[ÔAÜ�B—O‘O AÑ& qÑ)Ô*Ð*Ð*Ø×Ñ˜AÑ˜qÑ! g YÒ.Ð.Ñ.r+   c                  óX  — t         j                  j                  dd«      } t        j                  dgdgg«      }t        j                  | |gd¬«      } t        «       }t        d|dgfgd¬«      }t        d|dgfgd¬«      }t        |j                  | «      |j                  | «      «       y )Nr/   r0   ©ÚaxisÚohern   r[   rp   )	r3   ÚrandomÚrandnr|   Úconcatenater   r	   r   r   )r&   ÚX_categoriesrŒ  Útf_1Útf_2s        r(   Ú/test_column_transformer_negative_column_indexesr“  7  s˜   € Ü
�	‰	�‰˜˜1Ó€AÜ—8‘8˜a˜S 1 #˜JÓ'€LÜ
�‰˜˜<Ð(¨qÔ1€Aä
‹/€Cä˜u c¨B¨4Ð0Ð1¸]ÔK€DÜ˜u c¨A¨3Ð/Ð0¸MÔJ€DÜ�t×)Ñ)¨!Ó,¨d×.@Ñ.@ÀÓ.CÕDr+   Ú
array_typec                 óÌ   — t        j                  g d¢g d¢g d¢g d¢g«      } | |«      }t        dt        «       g d¢fg«      }|j	                  |«      }|j
                  dk(  sJ ‚y )N©r0   r/   r¿   ©rl   é   rm   )r˜  rm   é   )r`  r  rx   Úidentity)FTFT)r¿   r/   )r3   Ú	transposer	   r   r   r¤   )r”  r&   Úcolumn_transformerrÃ   s       r(   Ú%test_column_transformer_mask_indexingr�  C  se   € ô 	�‰’i¢ªI²zÐBÓC€AÙ�1‹€AÜ*Ø
Ô)Ó+Ò-GÐ	HÐIóÐð !×.Ñ.¨qÓ1€GØ�=‰=˜FÒ"Ð"Ñ"r+   c                  óÄ   — ddgddgddgg} t        dt        «       dgfd	t        «       dgfg«      }t        |d
«      rJ ‚|j                  | «       |j                  dk(  sJ ‚y )Nr0   r/   r¿   rl   r˜  rm   rÒ   r   rÓ   Ún_features_in_)r	   r<   r1   r)   rŸ  )r&   rf   s     r(   Útest_n_features_inr   P  sq   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÜ	˜S¤+£-°!°Ð5¸¼[»]ÈQÈCÐ7PÐQÓ	R€BÜ�rÐ+Ô,Ð,Ð,Ø‡F�Fˆ1„IØ×Ñ Ò!Ð!Ñ!r+   zcols, pattern, include, excludeÚcol_intÚ	col_floatr  Úcol_strzat$z^col_intz	float|strz^col_szstr$©r¡  r¢  r£  c                 ó  — t        j                  d«      }|j                  t        j                  g d¢t
        ¬«      t        j                  g d¢t        ¬«      g d¢dœg d¢¬«      }t        |||¬«      }t         ||«      | «       y )	Nr‘   rj   rá   rò   ©ÚoneÚtwoÚthreer¤  r¸   )Údtype_includeÚdtype_excluderw  )	ra   r¦   r©   r3   r|   ÚintrÖ   r
   r   )Úcolsrw  ÚincludeÚexcluderº   r­   Úselectors          r(   Ú,test_make_column_selector_with_select_dtypesr±  [  ss   € ô0 
×	Ñ	˜XÓ	&€Bà�<‰<ä—x‘x¢	´Ô5ÜŸ™¢/¼Ô?Ú.ñ	
ò
 4ð ó €Dô $Ø¨W¸gô€Hô ‘x “~ tÕ,r+   c                  ó*  — t        j                  d«      } | j                  t        j                  g d¢t
        ¬«      t        j                  g d¢t        ¬«      g d¢g d¢dœg d¢¬«      }|d	   j                  d
«      |d	<   t        d
t        dg¬«      }t        t        j                  ¬«      }t        «       }t        «       }t        ||f||f«      }t        |dd	gf|ddgf«      }|j                  |«      }|j                  |«      }	t        ||	«       y )Nr‘   rj   rá   rò   )r§  r¨  r§  )ÚlowÚmiddleÚhigh)r¡  r¢  Úcol_catr£  r¸   r£  Úcategoryr  ©rª  r¶  r¢  r¡  )ra   r¦   r©   r3   r|   r¬  rÖ   rs  r
   rí   Únumberr   r   r   r   r   )
rº   r­   Úcat_selectorÚnum_selectorrŒ  r  Úct_selectorÚ	ct_directÚ
X_selectorÚX_directs
             r(   Ú1test_column_transformer_with_make_column_selectorrÀ  …  sþ   € ä	×	Ñ	˜XÓ	&€BØ�<‰<ä—x‘x¢	´Ô5ÜŸ™¢/¼Ô?Ú,Ú0ñ		
ò ?ð ó €Dð ˜9‘o×,Ñ,¨ZÓ8€Dˆ�Oä'°zÄ6È8Ð6TÔU€LÜ'´b·i±iÔ@€Lä
‹/€CÜÓ€Fä)¨3°Ð*=ÀÈÐ?UÓV€KÜ'Ø	ˆy˜)Ð$Ð%¨°¸iÐ0HÐ'Ió€Ið ×*Ñ*¨4Ó0€JØ×&Ñ& tÓ,€Hä�J Õ)r+   c                  óÜ   — t        t        j                  ¬«      } t        j                  ddgg«      }d}t	        j
                  t        |¬«      5   | |«       d d d «       y # 1 sw Y   y xY w)Nr¸  rw   rë   z=make_column_selector can only be applied to pandas dataframesr]   )r
   r3   r¹  r|   ra   rb   rU   )r°  r&   rg   s      r(   Útest_make_column_selector_errorrÂ  ¤  sS   € Ü#´"·)±)Ô<€HÜ
�‰�3˜�*�Ó€AØ
I€CÜ	�‰”z¨Ô	-ñ Ù�Œ÷÷ ñ ús   Á	A"Á"A+c                  ót  — t        j                  d«      } | j                  t        j                  g d¢t
        ¬«      t        j                  g d¢t        ¬«      g d¢dœg d¢¬«      }t        t        dg¬	«      }t        j                  t        j                  |«      «      }t         ||«       ||«      «       y )
Nr‘   rj   rá   rò   r¦  r¤  r¸   r  r¸  )ra   r¦   r©   r3   r|   r¬  rÖ   r
   rí   ÚpickleÚloadsÚdumpsr   )rº   r­   r°  Úselector_pickeds       r(   Ú test_make_column_selector_picklerÈ  ¬  s‰   € Ü	×	Ñ	˜XÓ	&€Bà�<‰<ä—x‘x¢	´Ô5ÜŸ™¢/¼Ô?Ú.ñ	
ò
 4ð ó €Dô $´6¸8Ð2DÔE€HÜ—l‘l¤6§<¡<°Ó#9Ó:€Oä‘x “~¡°tÓ'<Õ=r+   Ú	empty_colc                 ó   — g S r"   r#   rJ  s    r(   ru   ru   ¿  s   € ¨B€ r+   )r³   r|   rƒ  c                 ó  — t        j                  d«      }|j                  g d¢g d¢dœ«      }t        dt	        «       ddgfdt	        «       | fg¬	«      }|j                  |«       t        |j                  «       g d
¢«       y )Nr‘   ©rÒ   rÒ   rÓ   ©ÚzrÎ  rÎ  ©rý   rþ   rŒ  rý   rþ   Úempty_features©rd   )Úohe__col1_aÚohe__col1_bÚohe__col2_z©ra   r¦   r©   r	   r   r)   r   r@  )rÉ  rº   ræ   rf   s       r(   Ú test_feature_names_empty_columnsrÖ  ½  sw   € ô 
×	Ñ	˜XÓ	&€Bà	�‰šºÑHÓ	I€Bä	à”M“O f¨fÐ%5Ð6Øœ}›°	Ð:ð
ô
€Bð ‡F�Fˆ2„JÜØ
× Ñ Ó"Ò$Qõr+   r°  c                 ó   — dgS rL  r#   rJ  s    r(   ru   ru   Ø  s   € �1�#€ r+   rþ   c                 ó   — dgS )Nrþ   r#   rJ  s    r(   ru   ru   Ú  s   € �6�(€ r+   c                 ó
   — ddgS ©NFTr#   rJ  s    r(   ru   ru   Ü  s
   € �5˜$�-€ r+   c                 óä   — t        j                  d«      }|j                  g d¢g d¢dœ«      }t        dt	        «       | fg«      }|j                  |«       t        |j                  «       dg«       y)z1Checks name when selecting only the second columnr‘   rÌ  rÍ  rÏ  rŒ  rÔ  NrÕ  )r°  rº   ræ   rf   s       r(   Útest_feature_names_out_pandasrÜ  Ô  s]   € ô 
×	Ñ	˜XÓ	&€BØ	�‰šºÑHÓ	I€BÜ	˜U¤M£O°XÐ>Ð?Ó	@€BØ‡F�Fˆ2„Jä�r×/Ñ/Ó1°M°?ÕCr+   c                 ó   — dgS rL  r#   rJ  s    r(   ru   ru   ê  s   €   € r+   c                 ó
   — ddgS rÚ  r#   rJ  s    r(   ru   ru   ê  s
   € ¸uÀd¸m€ r+   c                 ó    — ddgddgddgg}t        dt        «       | fg«      }|j                  |«       t        |j	                  «       dg«       y)z=Checks name when selecting the second column with numpy arrayrÒ   rÎ  rÓ   rŒ  Ú	ohe__x1_zN)r	   r   r)   r   r@  )r°  r&   rf   s      r(   Ú!test_feature_names_out_non_pandasrá  é  sR   € ð
 ˆsˆ�c˜3�Z # s Ð,€AÜ	˜U¤M£O°XÐ>Ð?Ó	@€BØ‡F�Fˆ1„Iä�r×/Ñ/Ó1°K°=ÕAr+   c                 óÐ   — t        «       }t        d|ddgfg| ¬«      }|j                  «       }|j                  dk(  sJ ‚|j                  ddgg fk(  sJ ‚|j
                  || fk(  sJ ‚y )NrŒ  rý   rþ   ©rd   rq   ©rŒ  rq   ©r   r	   Ú_sk_visual_block_r  Úname_detailsÚ
estimators)rq   rŒ  rf   Úvisual_blocks       r(   Útest_sk_visual_block_remainderrê  õ  s…   € ô ‹/€CÜ	Ø˜c F¨FÐ#3Ð4Ð5Àô
€Bð ×'Ñ'Ó)€LØ×ÑÐ!5Ò5Ð5Ð5Ø×$Ñ$¨&°&Ð)9¸2Ð(>Ò>Ð>Ð>Ø×"Ñ" s¨IÐ&6Ò6Ð6Ñ6r+   c                  óÊ   — t        «       } t        d| ddgfg¬«      }|j                  «       }|j                  dk(  sJ ‚|j                  ddgfk(  sJ ‚|j
                  | fk(  sJ ‚y )NrŒ  rý   rþ   rÑ  )rŒ  rå  )rŒ  rf   ré  s      r(   Ú#test_sk_visual_block_remainder_droprì    sv   € ä
‹/€CÜ	¨%°°v¸vÐ6FÐ)GÐ(HÔ	I€BØ×'Ñ'Ó)€LØ×Ñ Ò)Ð)Ð)Ø×$Ñ$¨&°&Ð)9Ð(;Ò;Ð;Ð;Ø×"Ñ" s fÒ,Ð,Ñ,r+   c                 óü  — t        j                  d«      }t        «       }t        d|ddgfg| ¬«      }|j	                  g d¢g d¢g d¢g d	¢d
œ«      }|j                  |«       |j                  «       }|j                  dk(  sJ ‚|j                  ddgddgfk(  sJ ‚t        |j                  d   t        «      sJ ‚| dk(  r t        |j                  d   t        «      sJ ‚y t        |j                  d   t        «      sJ ‚y )Nr‘   rŒ  rý   rþ   rã  ©rÒ   rÓ   ÚcrÍ  r–  ©r¿   rl   r˜  )rý   rþ   Úcol3Úcol4rä  rñ  rò  r   r[   r0   )ra   r¦   r   r	   r©   r)   ræ  r  rç  r£   rè  r   r   )rq   rº   rŒ  rf   ræ   ré  s         r(   Ú,test_sk_visual_block_remainder_fitted_pandasró    s
  € ô 
×	Ñ	˜XÓ	&€BÜ
‹/€CÜ	Ø˜c F¨FÐ#3Ð4Ð5Øô
€Bð 
�‰â#Ú#ÚÚñ		
ó
€Bð ‡F�Fˆ2„JØ×'Ñ'Ó)€LØ×ÑÐ!5Ò5Ð5Ð5Ø×$Ñ$¨&°&Ð)9¸FÀFÐ;KÐ(LÒLÐLÐLÜ�l×-Ñ-¨aÑ0´-Ô@Ð@Ð@Ø�MÒ!ô
 ˜,×1Ñ1°!Ñ4Ô6IÔJÐJÑJä˜,×1Ñ1°!Ñ4´nÔEÐEÑEr+   c                 óÖ  — t        j                  g d¢g d¢gt        ¬«      }t        «       }t	        d|ddgfg| ¬«      }|j                  |«       |j                  «       }|j                  dk(  sJ ‚|j                  ddgd	gfk(  sJ ‚t        |j                  d   t        «      sJ ‚| d
k(  r t        |j                  d	   t        «      sJ ‚y t        |j                  d	   t        «      sJ ‚y )Nr–  r—  rá   Úscaler   r/   rã  )rõ  rq   r0   r[   )r3   r|   rÖ   r   r	   r)   ræ  r  rç  r£   rè  r   )rq   r&   r  rf   ré  s        r(   Ú+test_sk_visual_block_remainder_fitted_numpyrö  ,  sè   € ô 	�‰’)šYÐ'¬uÔ5€AÜÓ€FÜ	Ø ¨¨A¨Ð/Ð0¸Iô
€Bð ‡F�Fˆ1„IØ×'Ñ'Ó)€LØ×ÑÐ!7Ò7Ð7Ð7Ø×$Ñ$¨!¨Q¨°!°¨Ò5Ð5Ð5Ü�l×-Ñ-¨aÑ0´.ÔAÐAÐAØ�MÒ!ô
 ˜,×1Ñ1°!Ñ4Ô6IÔJÐJÑJä˜,×1Ñ1°!Ñ4´nÔEÐEÑEr+   c                  óJ  — t        j                  d«      } t        «       }t        d|dgfgd¬«      }| j	                  g d¢g d¢dœ«      }|j                  «       }|j                  dgg fk(  sJ ‚|j                  |«       |j                  «       }|j                  dgd	gfk(  sJ ‚y
)zóCheck that the visual block `name_details` matches the `feature_names_in_`
    Non-regression test - when remainder_columns logic is removed it should fail
    https://github.com/scikit-learn/scikit-learn/pull/31442#discussion_r2841235711
    r‘   rŒ  rý   r[   rã  rî  rÍ  rÏ  rþ   N)ra   r¦   r   r	   r©   ræ  rç  r)   )rº   rŒ  rf   ræ   ré  s        r(   Ú/test_sk_visual_block_remainder_col_names_pandasrø  C  s´   € ô
 
×	Ñ	˜XÓ	&€BÜ
‹/€CÜ	Ø˜c F 8Ð,Ð-Øô
€Bð 
�‰â#Ú#ñ	
ó
€Bð ×'Ñ'Ó)€LØ×$Ñ$¨&¨°2¨Ò6Ð6Ð6à‡F�Fˆ2„Jð ×'Ñ'Ó)€LØ×$Ñ$¨&¨°F°8Ð(<Ò<Ð<Ñ<r+   c                  ón  — t        dt        «       ddgfgd¬«      } t        j                  ddgddgg«      }| j	                  |«       | j                  «       }|j                  dk(  sJ ‚|j                  ddgfk(  sJ ‚t        |j                  d   t        «      sJ ‚t        |j                  «      dk(  sJ ‚y	)
z Check that visual_block doesn't return remainder when it has no columns
    Non-regression test - https://github.com/scikit-learn/scikit-learn/issues/33513
    Únorm1r   r0   r[   rp   rl   r¿   )rú  N)r	   r   r3   r|   r)   ræ  r  rç  r£   rè  rH   )rf   r&   ré  s      r(   Ú#test_sk_visual_block_full_transformrû  _  s¶   € ô 
˜W¤j£l°Q¸°FÐ;Ð<ÈÔ	V€BÜ
�‰�1�a�&˜1˜a˜&Ð!Ó"€AØ‡F�Fˆ1„IØ×'Ñ'Ó)€LØ×Ñ Ò+Ð+Ð+Ø×$Ñ$¨!¨Q¨¨	Ò1Ð1Ð1Ü�l×-Ñ-¨aÑ0´*Ô=Ð=Ð=Üˆ|×&Ñ&Ó'¨1Ò,Ð,Ñ,r+   c                  ó  — t        j                  d«      } | j                  ddgddgddgdœ«      }t        d	t	        «       d
gfgd¬«      }|j                  |«       |j                  «       }|j                  d
gddgfk(  sJ ‚y)z”Check that remainder still uses available string column names in visual block
    even when transformer columns are specified by integer index.
    r‘   r0   r/   r¿   rl   r˜  rm   rî  r  r   r[   rp   rÓ   rï  N)ra   r¦   r©   r	   r   r)   ræ  rç  )rº   r&   rf   ré  s       r(   Ú.test_sk_visual_block_int_remainder_cols_pandasrý  m  sˆ   € ô 
×	Ñ	˜XÓ	&€BØ
�‰˜A˜q˜6¨¨A¨°a¸°VÑ<Ó=€AÜ	˜X¤~Ó'7¸!¸Ð=Ð>È-Ô	X€BØ‡F�Fˆ1„IØ×'Ñ'Ó)€LØ×$Ñ$¨!¨¨s°C¨jÐ(9Ò9Ð9Ñ9r+   Úexplicit_colname)r”   r•   r   r0   c                 óö  — t        j                  d«      }t        j                  g d¢g d¢g«      j                  }|j                  |ddg¬«      }t        j                  g d¢g d¢g«      j                  }|j                  |ddg¬«      }t        dt        «       | fg|¬«      }|j                  |«       |j                  |«      }|j                  |«      }	t        |	|«       |j                  «       }
g d	¢|
d
<   |j                  |
«      }	t        |	|«       t        | t        «      rH|j                  «       }d}t        j                  t        |¬«      5  |j                  |«       ddd«       yy# 1 sw Y   yxY w)z=Test the interaction between remainder and column transformerr‘   rj   rk   r”   r•   r¸   Úbycolrp   r  Úthirdr  r]   N)ra   r¦   r3   r|   r5   r©   r	   r    r)   r6   r   rª   r£   rP  rb   rU   )rþ  rq   rº   ÚX_fit_arrayÚX_fit_dfÚX_trans_arrayÚ
X_trans_dfÚtfÚX_fit_transrÃ   ÚX_extended_dfr‚   r
  s                r(   Ú8test_column_transformer_reordered_column_names_remainderr	  y  sI  € ô 
×	Ñ	˜XÓ	&€Bä—(‘(šI¢yÐ1Ó2×4Ñ4€KØ�|‰|˜K°'¸8Ð1Dˆ|ÓE€Hä—H‘HšiªÐ3Ó4×6Ñ6€MØ—‘˜m°hÀÐ5H�ÓI€Jä	˜W¤e£gÐ/?Ð@ÐAÈYÔ	W€Bà‡F�Fˆ8ÔØ—,‘,˜xÓ(€Kð �l‰l˜:Ó&€GÜ�G˜[Ô)ð —M‘M“O€MÚ&€M�'ÑØ�l‰l˜=Ó)€GÜ�G˜[Ô)äÐ"¤CÔ(ð ×"Ñ"Ó$ˆØ*ˆÜ�]‰]œ:¨WÔ5ñ 	"Ø�L‰L˜Ô!÷	"ð 	"ð )÷
	"ð 	"ús   ÅE/Å/E8c                  óÚ  — t        j                  d«      } t        j                  d¬«      }| j	                  |g d¢¬«      }|j                  dd¬«      }t        d	t        «       dgfgd
¬«      }|j                  |«       d}t        j                  t        |¬«      5  |j                  |«       ddd«       t        d	t        «       dgfgd¬«      }|j                  |«       |j                  |«      }|j                  |«      }t        ||«       t        d	ddgfgd
¬«      }|j                  |«       |j                  |«      }|j                  |«      }t        ||«       y# 1 sw Y   Œ´xY w)zRTest the interaction between {'drop', 'passthrough'} and
    missing column names.r‘   rg  )r¤   ©rÒ   rÓ   rï  Údr¸   rï  r0   rŠ  r   r[   rp   zcolumns are missing: {'c'}r]   NrZ   )ra   r¦   r3   rO  r©   rZ   r	   r    r)   rb   rU   r6   r   )rº   r&   ræ   Ú
df_droppedr  rg   Údf_dropped_transÚdf_fit_transs           r(   Ú=test_feature_name_validation_missing_columns_drop_passthroughr  Ÿ  s>  € ô 
×	Ñ	˜XÓ	&€Bä
�‰�fÔ€AØ	�‰�aÒ!5ˆÓ	6€Bà—‘˜ 1�Ó%€Jô 
˜W¤e£g°¨sÐ3Ð4ÀÔ	N€BØ‡F�Fˆ2„JØ
'€CÜ	�‰”z¨Ô	-ñ !Ø
�‰�ZÔ ÷!ô 
˜W¤e£g°¨sÐ3Ð4ÀÔ	G€BØ‡F�Fˆ2„Jà—|‘| JÓ/ÐØ—<‘< Ó#€LÜÐ$ lÔ3ô 
˜W f¨s¨eÐ4Ð5ÀÔ	O€BØ‡F�Fˆ2„JØ—|‘| JÓ/ÐØ—<‘< Ó#€LÜÐ$ lÕ3÷!!ð !ús   ÂE!Å!E*c                  óp  — t        j                  d«      } g d¢}| j                  g d¢g|¬«      }t        dt	        «       ddgfgd¬	«      }|j                  |«       t        |j                  |«       t        |j                  t        j                  «      sJ ‚|j                  j                  t        k(  sJ ‚y
)a@  Feature names are stored in column transformer.

    Column transformer deliberately does not check for column name consistency.
    It only checks that the non-dropped names seen in `fit` are seen
    in `transform`. This behavior is already tested in
    `test_feature_name_validation_missing_columns_drop_passthrough`r‘   ©rÒ   rï  r  r–  r¸   r   rÒ   r  r[   rp   N)ra   r¦   r©   r	   r    r)   r   Úfeature_names_in_r£   r3   Úndarrayrâ   rí   )rº   Úfeature_namesræ   rf   s       r(   Útest_feature_names_in_r  Á  s˜   € ô 
×	Ñ	˜XÓ	&€Bâ#€MØ	�‰’y�k¨=ˆÓ	9€BÜ	˜W¤e£g°°S¨zÐ:Ð;À}Ô	U€Bà‡F�Fˆ2„JÜ�r×+Ñ+¨]Ô;Ü�b×*Ñ*¬B¯J©JÔ7Ð7Ð7Ø×Ñ×%Ñ%¬Ò/Ð/Ñ/r+   c                   ó   — e Zd Zdd„Zdd„Zy)ÚTransWithNamesNc                 ó   — || _         y r"   ©Úfeature_names_out)r%   r  s     r(   rE   zTransWithNames.__init__Ö  s
   € Ø!2ˆÕr+   c                 óh   — | j                   �%t        j                  | j                   t        ¬«      S |S )Nrá   )r  r3   Úasarrayrí   )r%   Úinput_featuress     r(   r@  z$TransWithNames.get_feature_names_outÙ  s+   € Ø×!Ñ!Ð-Ü—:‘:˜d×4Ñ4¼FÔCÐCØÐr+   r"   )r8   r9   r:   rE   r@  r#   r+   r(   r  r  Õ  s   „ ó3ôr+   r  z'transformers, remainder, expected_namesÚbycol1r  rï  Úbycol2)Ú	bycol1__dÚ	bycol1__cÚ	bycol2__dÚremainder__aÚremainder__b)r!  r"  r#  rÓ   )Ú	bycol1__br$  Úremainder__cÚpca1Úpca2)rÒ   rÓ   r  )Úbycol1__pca1Úbycol1__pca2r'  rÒ   )Ú	bycol1__ar&  Ú	bycol2__br"  )Úbycol1__pca0r*  Úbycol2__pca0Úbycol2__pca1r$  r'  Úremainder__dr¿   r&  r"  rl   r$  )r!  r"  Ú	bycol2__cr#  r$  r%  c                 ó4  — t        j                  d«      }|j                  g d¢gg d¢¬«      }t        | |¬«      }|j	                  |«       |j                  «       }t        |t        j                  «      sJ ‚|j                  t        k(  sJ ‚t        ||«       y)úDCheck feature_names_out for verbose_feature_names_out=True (default)r‘   ©r0   r/   r¿   rl   r  r¸   rp   N©ra   r¦   r©   r	   r)   r@  r£   r3   r  râ   rí   r   ©rd   rq   Úexpected_namesrº   ræ   rf   r  s          r(   Ú#test_verbose_feature_names_out_truer9  ß  s…   € ôt 
×	Ñ	˜XÓ	&€BØ	�‰’|�nÒ.BˆÓ	C€BÜ	ØØô
€Bð ‡F�Fˆ2„Jà×$Ñ$Ó&€EÜ�eœRŸZ™ZÔ(Ð(Ð(Ø�;‰;œ&Ò Ð Ð Ü�u˜nÕ-r+   Ú
trans_nameÚ	feat_namec                 ó   — | d d › d|› �S )Nr/   z++r#   ©r:  r;  s     r(   Ú&_feature_names_out_callable_name_clashr>  g  s   € Ø˜˜!ˆnÐ˜R 	˜{Ð+Ð+r+   c                 óH   — | j                  «       › d|j                  «       › �S )Nú=)Úupperr=  s     r(   Ú!_feature_names_out_callable_upperrB  k  s%   € Ø×ÑÓ Ð!  9§?¡?Ó#4Ð"5Ð6Ð6r+   zBtransformers, remainder, verbose_feature_names_out, expected_names)úby++dzby++crC  zre++azre++bz!{feature_name}-{transformer_name})zd-bycol1zc-bycol1zd-bycol2)zBYCOL1=DzBYCOL1=CzBYCOL2=CzBYCOL2=DzREMAINDER=AzREMAINDER=Bc                 ó6  — t        j                  d«      }|j                  g d¢gg d¢¬«      }t        | ||¬«      }|j	                  |«       |j                  «       }t        |t        j                  «      sJ ‚|j                  t        k(  sJ ‚t        ||«       y)r4  r‘   r5  r  r¸   ©rq   r/  Nr6  )rd   rq   r/  r8  rº   ræ   rf   r  s           r(   Ú.test_verbose_feature_names_out_callable_or_strrF  o  sˆ   € ôV 
×	Ñ	˜XÓ	&€BØ	�‰’|�nÒ.BˆÓ	C€BÜ	ØØØ";ô
€Bð
 ‡F�Fˆ2„Jà×$Ñ$Ó&€EÜ�eœRŸZ™ZÔ(Ð(Ð(Ø�;‰;œ&Ò Ð Ð Ü�u˜nÕ-r+   )r  rï  rÒ   rÓ   )rÓ   rÒ   rï  )r(  r)  rï  r  Úkpca)Úpca0r(  Úkpca0Úkpca1rÒ   rï  r  rî  )r  rï  rÓ   c                 ó6  — t        j                  d«      }|j                  g d¢gg d¢¬«      }t        | |d¬«      }|j	                  |«       |j                  «       }t        |t        j                  «      sJ ‚|j                  t        k(  sJ ‚t        ||«       y)ú;Check feature_names_out for verbose_feature_names_out=Falser‘   r5  r  r¸   FrE  Nr6  r7  s          r(   Ú$test_verbose_feature_names_out_falserM  ©  sˆ   € ôj 
×	Ñ	˜XÓ	&€BØ	�‰’|�nÒ.BˆÓ	C€BÜ	ØØØ"'ô
€Bð
 ‡F�Fˆ2„Jà×$Ñ$Ó&€EÜ�eœRŸZ™ZÔ(Ð(Ð(Ø�;‰;œ&Ò Ð Ð Ü�u˜nÕ-r+   z*transformers, remainder, colliding_columnsz['b']z['c']z['a']z
['b', 'c']Úbycol3z
['a', 'b']rm   z-['pca0', 'pca1', 'pca2', 'pca3', 'pca4', ...]c                 óN  — t        j                  d«      }|j                  g d¢gg d¢¬«      }t        | |d¬«      }|j	                  |«       t        j                  d|› d�«      }t        j                  t        |¬	«      5  |j                  «        d
d
d
«       y
# 1 sw Y   y
xY w)rL  r‘   r5  r  r¸   FrE  zOutput feature names: z[ are not unique. Please set verbose_feature_names_out=True to add prefixes to feature namesr]   N)
ra   r¦   r©   r	   r)   r_   r`   rb   rU   r@  )rd   rq   Úcolliding_columnsrº   ræ   rf   rg   s          r(   Ú+test_verbose_feature_names_out_false_errorsrQ  -  sž   € ô` 
×	Ñ	˜XÓ	&€BØ	�‰’|�nÒ.BˆÓ	C€BÜ	ØØØ"'ô
€Bð
 ‡F�Fˆ2„Jä
�)‰)Ø
 Ð!2Ð 3ð 4Jð 	Jó€Cô 
�‰”z¨Ô	-ñ #Ø
× Ñ Ô"÷#÷ #ñ #ús   ÂBÂB$r/  c                 óT  — t        j                  d«      }|j                  g d¢gg d¢dg¬«      }t        dt	        «       ddgfd	t	        «       d
gfg|| ¬«      }|j                  |«      }t        |t        j                  «      sJ ‚|j                  d¬«       |j                  g d¢g|j                  dg¬«      }|j                  |«      }t        ||j                  «      sJ ‚|j                  «       }t        |j                  |«       t        |j                  |j                  «       y)z2Check column transformer behavior with set_output.r‘   r5  r  rx   ©r«   r™   r”   rÒ   rï  r•   r  rE  ©r6   é   N)ra   r¦   r©   r	   r  r   r£   r3   r  Ú
set_outputr«   r6   r@  r   r™   )r/  rq   rº   ræ   rf   rÃ   Údf_testr  s           r(   Ú"test_column_transformer_set_outputrX  ®  s  € ô 
×	Ñ	˜XÓ	&€BØ	�‰’|�nÒ.BÈ2È$ˆÓ	O€BÜ	Ø
”>Ó# c¨3 ZÐ	0°8¼^Ó=MÐPSÈuÐ2UÐVØØ";ô
€Bð
 ×Ñ˜rÓ"€GÜ�gœrŸz™zÔ*Ð*Ð*à‡M�M˜H€MÔ%à�l‰lšL˜>°2·:±:ÀbÀTˆlÓJ€GØ�l‰l˜7Ó#€GÜ�g˜rŸ|™|Ô,Ð,Ð,à×0Ñ0Ó2ÐÜ�w—‘Ð(9Ô:Ü�w—}‘} g§m¡mÕ4r+   c                 ó®  — t        j                  d«      }|j                  |j                  g d¢d¬«      |j                  g d¢d¬«      g d¢g d¢|j                  d	|j                  d
gd¬«      dœ«      }t        dt        dd¬«      dgfdt        «       dgfg| d¬«      j                  d¬«      }|r|j                  |«      }n |j                  |«      j                  |«      }t        ||j                  «      sJ ‚t        |j                  |j                  «       «       ddddddddœ}|j                   j#                  «       D ]  \  }}|||   k(  rŒJ ‚ y)z6Check ColumnTransformer outputs mixed types correctly.r‘   ©ÚdogÚcatÚsnaker·  rá   )ÚgreenÚblueÚredrí   ©gffffffö?gÍÌÌÌÌÌ @gš™™™™™@©rU  é(   rx   rU  éd   ÚInt32)ÚpetÚcolorÚageÚheightÚdistanceÚcolor_encodeFÚint8©rì   râ   rg  rh  rE  rT  Úfloat64Úint64)Ú
color_blueÚcolor_greenÚ	color_redrh  rf  ri  rj  N)ra   r¦   r©   r¨   ÚNAr	   r   r   rV  r   r)   r6   r£   r   r«   r@  ÚdtypesÚitems)	rq   r   rº   ræ   rf   rÃ   Úexpected_dtypesrÎ   râ   s	            r(   Ú&test_column_transform_set_output_mixedrw  Ç  si  € ô 
×	Ñ	˜XÓ	&€BØ	�‰à—9‘9Ò4¸J�9ÓGØ—Y‘YÒ7¸x�YÓHÚ"Ú"ØŸ	™	 2 r§u¡u¨cÐ"2¸'˜	ÓBñ	
ó
€Bô 
ð Ü¨E¸Ô@Ø�	ðð
 ”NÓ$ u gÐ.ð	
ð Ø"'ô
÷ �j˜8€jÓ$ð ñ Ø×"Ñ" 2Ó&‰à—&‘&˜“*×&Ñ& rÓ*ˆä�g˜rŸ|™|Ô,Ð,Ð,Ü�w—‘¨×(@Ñ(@Ó(BÔCð ØØØØØØñ€Oð —n‘n×*Ñ*Ó,ò -‰
ˆˆUØ˜¨Ñ,Ó,Ð,Ð,ñ-r+   c                 ó  — t        j                  d«      }|j                  |j                  g d¢d¬«      g d¢g d¢dœ«      }t	        dt        d	d
¬«      dgfdt        «       dgfg| d	¬«      }|j                  |«      }t        |t        j                  «      sJ ‚|j                  dk(  sJ ‚|j                  d¬«       |j                  |«      }d
d
d
dddœ}|j                  j                  «       D ]  \  }}|||   k(  rŒJ ‚ y )Nr‘   rZ  r·  rá   ra  rb  )rf  rh  ri  rk  FÚint16rm  rf  rh  rE  rn  rT  ro  )Úpet_catÚpet_dogÚ	pet_snakeri  rh  )ra   r¦   r©   r¨   r	   r   r   r   r£   r3   r  râ   rV  r6   rt  ru  )	rq   rº   ræ   rf   rÃ   r  rv  rÎ   râ   s	            r(   Ú.test_column_transform_set_output_after_fittingr}  ö  s   € ä	×	Ñ	˜XÓ	&€BØ	�‰à—9‘9Ò4¸J�9ÓGÚ"Ú"ñ	
ó
€Bô 
ð Ü¨E¸ÔAØ�ðð
 ”NÓ$ u gÐ.ð	
ð Ø"'ô
€Bð ×Ñ˜rÓ"€GÜ�gœrŸz™zÔ*Ð*Ð*Ø�=‰=˜IÒ%Ð%Ð%à‡M�M˜H€MÔ%Ø—‘˜bÓ!€JàØØØØñ€Oð !×'Ñ'×-Ñ-Ó/ò -‰
ˆˆUØ˜¨Ñ,Ó,Ð,Ð,ñ-r+   c                   ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚPandasOutTransformerc                 ó   — || _         y r"   ©Úoffset©r%   r‚  s     r(   rE   zPandasOutTransformer.__init__"	  ó	   € Øˆ�r+   Nc                 ó`   — t        j                  d«      }t        ||j                  «      sJ ‚| S ©Nr‘   )ra   r¦   r£   r©   ©r%   r&   r'   rº   s       r(   r)   zPandasOutTransformer.fit%	  s+   € Ü× Ñ  Ó*ˆÜ˜!˜RŸ\™\Ô*Ð*Ð*Øˆr+   c                 óz   — t        j                  d«      }t        ||j                  «      sJ ‚|| j                  z
  S r†  )ra   r¦   r£   r©   r‚  r‡  s       r(   r6   zPandasOutTransformer.transform*	  s4   € Ü× Ñ  Ó*ˆÜ˜!˜RŸ\™\Ô*Ð*Ð*Ø�4—;‘;‰Ðr+   c                 ó   — | S r"   r#   ©r%   r6   s     r(   rV  zPandasOutTransformer.set_output/	  ó	   € ð ˆr+   ©rã   r"   ©r8   r9   r:   rE   r)   r6   rV  r#   r+   r(   r  r  !	  s   „ óóó
ô
r+   r  z;trans_1, expected_verbose_names, expected_non_verbose_namesrô   r�  Útrans_0__feat1Útrans_1__feat0Úfeat1Úfeat0c                 óZ  — t        j                  d«      }|j                  g d¢g d¢dœ«      }t        dt	        d¬«      dgfd	| d
gfg«      }|j                  |«      }t        |t        j                  «      sJ ‚t        j                  t        d¬«      5  |j                  «        ddd«       |j                  d¬«       |j                  |«      }t        |j                  |«       |j                  d¬«       |j                  |«      }t        |j                  |«       y# 1 sw Y   Œ|xY w)z½Check that set_config(transform="pandas") is compatible with more transformers.

    Specifically, if transformers returns a DataFrame, but does not define
    `get_feature_names_out`.
    r‘   )rã   rô   ç      @)rô   r“  rö   )r‘  r�  Útrans_0r“  r�  r�  Útrans_1r‘  z!not provide get_feature_names_outr]   NrT  F©r/  )ra   r¦   r©   r	   r  r   r£   r3   r  rb   rA  r@  rV  r   r«   r3  )	r•  Úexpected_verbose_namesÚexpected_non_verbose_namesrº   r­   rf   Ú
X_trans_npÚX_trans_df0ÚX_trans_df1s	            r(   Ú;test_transformers_with_pandas_out_but_not_feature_names_outrœ  5	  s  € ô8 
×	Ñ	˜XÓ	&€Bà�<‰<¢/ºOÑLÓM€DÜ	àÔ,°CÔ8¸7¸)ÐDØ˜ ' Ð+ð	
ó
€Bð ×!Ñ! $Ó'€JÜ�j¤"§*¡*Ô-Ð-Ð-ô 
�‰”~Ð-PÔ	Qñ #Ø
× Ñ Ô"÷#ð ‡M�M˜H€MÔ%Ø×"Ñ" 4Ó(€KÜ�{×*Ñ*Ð,BÔCà‡M�M¨E€MÔ2Ø×"Ñ" 4Ó(€KÜ�{×*Ñ*Ð,FÕG÷#ð #ús   ÂD!Ä!D*Úempty_selectionc                 óŽ  — t        j                  d«      }|j                  ddgddggddg¬«      }t        dd	| fd
t	        «       ddgfgd¬«      }|j                  d¬«       |j                  |«      }t        |j                  ddg«       |j                  d¬«       |j                  |«      }t        |j                  ddg«       y)zkCheck that pandas output works when there is an empty selection.

    Non-regression test for gh-25487
    r‘   rã   çš™™™™™@r“  rÒ   rÓ   r¸   rÕ   r[   rÔ   Tr–  rT  Únumerical__aÚnumerical__bFN)
ra   r¦   r©   r	   r   rV  r   r   r«   r3  )r�  rº   r&   rf   ÚX_outs        r(   Ú"test_empty_selection_pandas_outputr£  l	  sÉ   € ô 
×	Ñ	˜XÓ	&€Bà
�‰�s˜C�j 3¨ *Ð-¸¸S°zˆÓB€AÜ	à˜M¨?Ð;Øœ.Ó*¨S°#¨JÐ7ð	
ð #'ô
€Bð ‡M�M˜H€MÔ%Ø×Ñ˜QÓ€EÜ�u—}‘} ~°~Ð&FÔGà‡M�M¨E€MÔ2Ø×Ñ˜QÓ€EÜ�u—}‘} s¨C jÕ1r+   c                  óZ  — t        j                  d«      } | j                  ddgddggddgddg¬	«      }t        d
„ d¬«      }t	        dddgfd|dgfg«      }|j                  d¬«       d}t        j                  t        |¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)zmCheck column transformer raises error if indices are not aligned.

    Non-regression test for gh-26210.
    r‘   rã   rŸ  r“  rÒ   rÓ   r`  r¿   rS  c                 ó&   — | j                  d¬«      S )NT)rZ   )Úreset_indexrJ  s    r(   ru   z7test_raise_error_if_index_not_aligned.<locals>.<lambda>’	  s   € �!—-‘- T�-Ó*€ r+   z
one-to-oner  Únum1r[   Únum2rT  z—Concatenating DataFrames from the transformer's output lead to an inconsistent number of samples. The output may have Pandas Indexes that do not match.r]   N)	ra   r¦   r©   r   r	   rV  rb   rU   r   )rº   r&   Úreset_index_transformerrf   rg   s        r(   Ú%test_raise_error_if_index_not_alignedrª  ‰	  sÄ   € ô
 
×	Ñ	˜XÓ	&€Bà
�‰�s˜C�j 3¨ *Ð-¸¸S°zÈ!ÈQÈˆÓP€AÜ1Ù*¸lôÐô 
à�] S EÐ*ØÐ,¨s¨eÐ4ð	
ó
€Bð ‡M�M˜H€MÔ%ð	&ð ô
 
�‰”z¨Ô	-ñ Ø
×Ñ˜Ô÷÷ ñ ús   ÂB!Â!B*c                  ó¶  — t        j                  d«      } | j                  g d¢g d¢dœ«      }t        t	        «       t        t        ¬«      ft	        «       d¬«      }|j                  d¬«       |j                  |«      }| j                  j                  ||«       |j                  d	¬«       |j                  |«      }t        |t        j                  «      sJ ‚y
)zYCheck that the output is set for the remainder.

    Non-regression test for #26306.
    r‘   )TFTr–  )rÒ   rÓ   r¸  FrE  rT  ÚdefaultN)ra   r¦   r©   r   r   r
   r´   rV  r   ÚtestingÚassert_frame_equalr£   r3   r  )rº   ræ   rf   r{  s       r(   Útest_remainder_set_outputr¯  ¥	  s²   € ô 
×	Ñ	˜XÓ	&€BØ	�‰Ò/²iÑ@Ó	A€Bä	 Ü	Ó	Ô2ÄÔFÐGÜ#Ó%Ø"'ô
€Bð
 ‡M�M˜H€MÔ%à
×
Ñ
˜2Ó
€CØ‡J�J×!Ñ! # rÔ*à‡M�M˜I€MÔ&Ø
×
Ñ
˜2Ó
€CÜ�cœ2Ÿ:™:Ô&Ð&Ñ&r+   c                  ó   — t        j                  d«      } t        | d«      st        j                  d«       | j	                  dddgi«      }t        ddgf«      }t        j                  «       5  t        j                  d«       |j                  |«       ddd«       |j                  «       }t        j                  t        d	¬
«      5  |j                  |«       ddd«       |j                  d¬«       |j                  |«       |j                  d¬«       |j                  |j                  d«      «       y# 1 sw Y   Œ¤xY w# 1 sw Y   ŒkxY w)z�Check behavior when a transformer's output contains pandas.NA

    It should raise an error unless the output config is set to 'pandas'.
    r‘   ÚFloat64DtypezfThe issue with pd.NA tested here does not happen in old versions that do not have the extension dtypesrÒ   r  Nr[   Úerrorz set_output\(transform='pandas'\)r]   rT  r¬  g      ð¿)ra   r¦   r1   Úskipr©   r   ÚwarningsÚcatch_warningsÚsimplefilterr   Úconvert_dtypesrb   rU   rV  Úfillna)rº   ræ   rf   s      r(   Útest_transform_pd_nar¹  ½	  s  € ô
 
×	Ñ	˜XÓ	&€BÜ�2�~Ô&Ü�‰ð-ô	
ð 
�‰�s˜S $˜KÐ(Ó	)€BÜ	  -°#°Ð!7Ó	8€Bä	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ&Ø
×Ñ˜Ô÷ð 
×	Ñ	Ó	€Bô 
�‰”zÐ)LÔ	Mñ Ø
×Ñ˜Ô÷ð ‡M�M˜H€MÔ%Ø×Ñ�RÔØ‡M�M˜I€MÔ&ð ×Ñ�R—Y‘Y˜t“_Õ%÷ð ú÷ð ús   Á.'D8ÃEÄ8EÅEc                  ó^  — t        j                  d«      } t        j                  d«      }t        j                  ddgddgddgg«      }t        j                  ddgddgddgg«      }| j	                  |d	d
g¬«      }|j	                  |d	d
g¬«      }t        t        «       ddgf«      }|j                  |«       |j                  |«      }t        ||«       |j	                  |d	d
g¬«      }| j	                  |d	d
g¬«      }	|j                  |«       |j                  |	«      }
t        |
|«       y)z?Check fitting and transforming on pandas and polars dataframes.r‘   r’   r   r0   r/   rl   r˜  r¿   rÒ   rÓ   r¸   )ÚschemaN)
ra   r¦   r3   r|   r©   r   r    r)   r6   r   )rº   ÚplÚ
X_train_npÚ	X_test_npÚ
X_train_pdÚ	X_test_plrf   Ú	out_pl_inÚ
X_train_plÚ	X_test_pdÚ	out_pd_ins              r(   Ú,test_dataframe_different_dataframe_librariesrÅ  Ý	  s  € ä	×	Ñ	˜XÓ	&€BÜ	×	Ñ	˜XÓ	&€BÜ—‘˜A˜q˜6 A q 6¨A¨q¨6Ð2Ó3€JÜ—‘˜1˜a˜& 1 a &¨1¨a¨&Ð1Ó2€Ið —‘˜j°3¸°*�Ó=€JØ—‘˜Y°°S¨z�Ó:€Iä	 ¤%£'¨A¨q¨6Ð!2Ó	3€BØ‡F�Fˆ:Ôà—‘˜YÓ'€IÜ�y )Ô,ð —‘˜j°#°s°�Ó<€JØ—‘˜Y°°c°
�Ó;€IØ‡F�Fˆ:Ôà—‘˜YÓ'€IÜ�y )Õ,r+   c                  óÞ  — t        j                  g d¢g d¢g«      } t        dt        «       ddgfdt        «       ddgfg«      }d}t	        j
                  t        |¬	«      5  |d    d
d
d
«       |j                  | «       |d   |j                  d   u sJ ‚|d   |j                  d   u sJ ‚d}t	        j
                  t        |¬	«      5  |d    d
d
d
«       y
# 1 sw Y   ŒrxY w# 1 sw Y   y
xY w)z(Check __getitem__ for ColumnTransformer.rj   rð  Út1r   r0   Út2r/   z5ColumnTransformer is subscriptable after it is fittedr]   Nz0'does_not_exist' is not a valid transformer nameÚdoes_not_exist)
r3   r|   r	   r    ra   rb   rc   r)   r9  ÚKeyError)r&   rf   rg   s      r(   Ú"test_column_transformer__getitem__rË  ÷	  sê   € ä
�‰’)šYÐ'Ó(€AÜ	˜T¤5£7¨Q°¨FÐ3°d¼E»GÀaÈÀVÐ5LÐMÓ	N€Bà
A€CÜ	�‰”y¨Ô	,ñ Ø
ˆ4Š÷ð ‡F�Fˆ1„IØˆd‰8�r×-Ñ-¨dÑ3Ñ3Ð3Ð3Øˆd‰8�r×-Ñ-¨dÑ3Ñ3Ð3Ð3à
<€CÜ	�‰”x sÔ	+ñ Ø
ÐÒ÷ð ÷ð ú÷ð ús   Á CÃC#ÃC Ã#C,Útransform_outputr¬  c                 óÞ  — t        j                  d«      }|j                  t        j                  j                  dd«      «      }t        dt        «       ddgfgd¬«      j                  | ¬	«      }|j                  |«      }|j                  |j                  k(  sJ ‚g d
¢}t        |d«      r|j                  j                  «       |k(  sJ ‚|j                  «       j                  «       |k(  sJ ‚y)záCheck that when `remainder="passthrough"`, inconsistent naming is handled
    correctly by the underlying `FunctionTransformer`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28232
    r‘   rx   rl   r  r   r0   r[   rã  rT  )Ú
scaler__x0Ú
scaler__x1Úremainder__x2Úremainder__x3r«   N)ra   r¦   r©   r3   r�  rŽ  r	   r   rV  r   r¤   r1   r«   Útolistr@  )rÌ  rº   r&   ÚpreprocessorrÃ   Úexpected_column_namess         r(   Ú@test_column_transformer_remainder_passthrough_naming_consistencyrÕ  	
  sÝ   € ô 
×	Ñ	˜XÓ	&€BØ
�‰”R—Y‘Y—_‘_ R¨Ó+Ó,€Aä$Ø¤Ó!1°A°q°6Ð:Ð;Øô÷ �jÐ+€jÓ,ð ð ×(Ñ(¨Ó+€GØ�=‰=˜AŸG™GÒ#Ð#Ð#òÐô ˆw˜	Ô"Ø�‰×%Ñ%Ó'Ð+@Ò@Ð@Ð@Ø×-Ñ-Ó/×6Ñ6Ó8Ð<QÒQÐQÑQr+   c                   ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)ÚDfOutTransformerc                 ó   — || _         y r"   r�  rƒ  s     r(   rE   zDfOutTransformer.__init__(
  r„  r+   Nc                 ó   — | S r"   r#   r$   s      r(   r)   zDfOutTransformer.fit+
  r*   r+   c                 ó    — || j                   z
  S r"   r�  r$   s      r(   r6   zDfOutTransformer.transform.
  s   € Ø�4—;‘;‰Ðr+   c                 ó   — | S r"   r#   rŠ  s     r(   rV  zDfOutTransformer.set_output1
  r‹  r+   rŒ  r"   r�  r#   r+   r(   r×  r×  '
  s   „ óóóôr+   r×  Údataframe_libc           
      ó  — t        j                  | «      }|j                  g d¢g d¢g d¢dœ«      }t        ddg d¢fdt	        «       dd	gfd
t        «       ddgfdt        «       d	dgfdt	        d„ «      g d¢fg¬«      j                  | ¬«      }|j                  |«      }t        |j                  «      g d¢k(  sJ ‚|j                  d¬«       t        j                  t        d¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)zâCheck that we properly rename columns when using `ColumnTransformer` and
    selected columns are redundant between transformers.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28260
    r–  )rx   rU  é   )rd  éÈ   i,  )Úx1Úx2Úx3ré   r[   rê   rà  rá  rM  râ  ÚDÚEc                 ó   — t        | g d¬«      S )Nr0   rŠ  r   rJ  s    r(   ru   z9test_column_transformer_column_renaming.<locals>.<lambda>L
  s   € ¬n¸QÀÈÔ.K€ r+   rÑ  rT  )	ÚA__x1ÚA__x2ÚA__x3ÚB__x1ÚB__x2ÚC__x1ÚC__x3ÚD__x2ÚD__x3Fr–  z%Output feature names:.*are not uniquer]   N)ra   r¦   r©   r	   r   r   r×  rV  r   r³   r«   r3  rb   rU   )rÜ  Úlibræ   ÚtransformerÚdf_transs        r(   Ú'test_column_transformer_column_renamingrò  7
  s  € ô ×
Ñ
˜mÓ
,€Cà	�‰šiª|Â?ÑSÓ	T€Bä#à�-Ò!3Ð4ØÔ%Ó'¨$°¨Ð6Ø”.Ó" T¨4 LÐ1ØÔ"Ó$ t¨T lÐ3ð Ü#Ñ$KÓLÚ"ðð
ô÷ �j˜=€jÓ)ð ð  ×(Ñ(¨Ó,€HÜ�× Ñ Ó!ò 
&ò 
ð 
ð 
ð ×Ñ°UÐÔ;Ü	�‰”zÐ)QÔ	Rñ &Ø×!Ñ! "Ô%÷&÷ &ñ &ús   Ã'DÄDz1.3zrequires joblib >= 1.3)Úreasonc                 ón  — t         j                  j                  | «      j                  d¬«      }t	        d¬«      }t        d|dgfgd¬«      }t        j                  d	d
¬«      5  |j                  |«      }ddd«       t        t	        «       j                  |dd…dgf   «      «       y# 1 sw Y   Œ5xY w)z|Check that ColumnTransformer works in parallel with joblib's auto-memmapping.

    non-regression test for issue #28781
    rg  )ÚsizeF)rª   r  r   r/   )rd   r!  Úlokyr0   )Ú
max_nbytesN)
r3   r�  ÚRandomStateÚuniformr   r	   ÚjoblibÚparallel_backendr   r   )Úglobal_random_seedr&   r  rð  ÚXts        r(   Ú#test_column_transformer_auto_memmaprþ  g
  s¨   € ô 	�	‰	×ÑÐ0Ó1×9Ñ9¸vÐ9ÓF€Aä Ô'€Fä#Ø ¨!¨Ð-Ð.Øô€Kô
 
×	 Ñ	  °AÔ	6ñ *Ø×&Ñ& qÓ)ˆ÷*ô �BœÓ(×6Ñ6°qº¸Q¸C¸±yÓAÕB÷*ð *ús   Á%B+Â+B4c                  ó6  — t        j                  d«      } | j                  dddœdddœgddgdœddg¬«      }t        t	        d	¬
«      dft        «       dgf«      }|j                  d¬«       |j                  |«      }t        |j                  «      ddgk(  sJ ‚y)z“Check index handling when both pd.Series and pd.DataFrame slices are used in
    ColumnTransformer.

    Non-regression test for issue #31546.
    r‘   r0   r/   )ÚfooÚbarr¿   )r   Úbaz)Údict_colÚ	dummy_colr˜   Fr   r  r  rT  N)
ra   r¦   r©   r   r   r   rV  r   r³   r™   )rº   ræ   Útr&   s       r(   Ú)test_column_transformer_non_default_indexr  €
  s¬   € ô 
×	Ñ	˜XÓ	&€BØ	�‰à!"¨1Ñ-°qÀÑ/CÐDØ˜Q˜ñ	
ð �!ˆfð 
ó 
€Bô 	 Ü	˜uÔ	% zÐ2Ü	Ó	  Ð.ó	€Að ‡L�L˜8€LÔ$Ø	�‰˜Ó€AÜ�—‘‹=˜Q ˜FÒ"Ð"Ñ"r+   )r6   r   r)   c                 ó6  — t        j                  g d¢g d¢g«      j                  }g d¢}t        dt	        «       dgfg«      j                  ||«      }t        j                  t        d¬«      5   t        || «      dggdgd	¬
«       ddd«       y# 1 sw Y   yxY w)z�Test that the right error message is raised when metadata is passed while
    not supported when `enable_metadata_routing=False`.rj   rk   r–  ro   r   z1is only supported if enable_metadata_routing=Truer]   r0   rÒ   )Úsample_weightÚpropN)
r3   r|   r5   r	   r    r)   ra   rb   rU   r2   )rx  r&   r'   Útrss       r(   Ú*test_routing_passed_metadata_not_supportedr  ›
  s�   € ô
 	�‰’)šYÐ'Ó(×*Ñ*€AÚ€AÜ
˜g¤u£w°°Ð4Ð5Ó
6×
:Ñ
:¸1¸aÓ
@€Cä	�‰ÜÐMô
ñ Að 	Œ��VÓ˜q˜c˜U°1°#¸CÕ@÷A÷ Añ Aús   Á-BÂB)Úenable_metadata_routingc                 ó¾  — t        j                  g d¢g d¢g«      j                  }g d¢}t        «       }dgd}}t	        dt        |¬«      j                  dd¬	«      j                  dd¬	«      d
gfg«      }| dk(  r*|j                  ||||¬	«       |j                  |||¬	«       n t        || «      ||||¬	«       t        |«      sJ ‚|D ]  }t        || | ||¬«       Œ y)z>Test that metadata is routed correctly for column transformer.rj   rk   r–  r0   rÒ   ro   )ÚregistryT©r  Úmetadatar   r6   )Úobjrx  Úparentr  r  N)r3   r|   r5   r   r	   r   Úset_fit_requestÚset_transform_requestr)   r6   r2   rH   r   )rx  r&   r'   r  r  r  r
  Ú_trss           r(   Ú,test_metadata_routing_for_column_transformerr  ª
  sñ   € ô 	�‰’)šYÐ'Ó(×*Ñ*€AÚ€AÜ‹{€HØ ˜c 3�8€MÜ
ð Ü$¨hÔ7ß ‘¨t¸d�ÓCß&Ñ&°TÀDÐ&ÓIØ�ðð	
ó
€Cð �ÒØ�‰��1 M¸HˆÔEØ�‰�a }¸xˆÕHàŒ��VÓ˜Q °ÈÕRäˆxŒ=Ðˆ=Øò 
ˆÜØØØØ'Øö	
ñ
r+   c                  ó@  —  G d„ dt         «      } t        j                  g d¢g d¢g«      j                  }g d¢}dgd}}t	        d | «       j                  d	d	¬
«      j                  d	d	¬
«      dgfg«      }|j                  ||||¬
«       |j                  ||||¬
«       y)zUTest metadata routing when the sub-estimator doesn't implement
    ``fit_transform``.c                   ó   — e Zd Zdd„Zdd„Zy)ú>test_metadata_routing_no_fit_transform.<locals>.NoFitTransformNc                 ó   — |sJ ‚|sJ ‚| S r"   r#   )r%   r&   r'   r  r  s        r(   r)   zBtest_metadata_routing_no_fit_transform.<locals>.NoFitTransform.fitÕ
  s   € Ù Ð �=ÙˆO�8ØˆKr+   c                 ó   — |sJ ‚|sJ ‚|S r"   r#   )r%   r&   r  r  s       r(   r6   zHtest_metadata_routing_no_fit_transform.<locals>.NoFitTransform.transformÚ
  s   € Ù Ð �=ÙˆO�8ØˆHr+   )NNN)NNr7   r#   r+   r(   ÚNoFitTransformr  Ô
  s   „ ó	ô
	r+   r  rj   rk   r–  r0   rÒ   ro   Tr  r   N)	r   r3   r|   r5   r	   r  r  r)   r   )r  r&   r'   r  r  r
  s         r(   Ú&test_metadata_routing_no_fit_transformr  Ï
  s¨   € ô
	œô 	ô 	�‰’)šYÐ'Ó(×*Ñ*€AÚ€AØ ˜c 3�8€MÜ
ð ÙÓ ß ‘¨t¸d�ÓCß&Ñ&°TÀDÐ&ÓIØ�ðð	
ó
€Cð ‡G�GˆAˆq ¸€GÔAØ×Ñ�a˜¨-À(ÐÕKr+   c                 ó¤  — t        j                  g d¢g d¢g«      j                  }g d¢}dgd}}t        dt	        «       dgfg«      }d| › �}t        j                  t        t        j                  |«      ¬	«      5  | d
k(  r'|j                  ||«       |j                  |||¬«       n t        || «      ||||¬«       ddd«       y# 1 sw Y   yxY w)zCTest that the right error is raised when metadata is not requested.rj   rk   r–  r0   rÒ   ro   r   zw[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for ConsumingTransformer.r]   r6   r  N)r3   r|   r5   r	   r   ra   rb   rU   r_   r`   r)   r6   r2   )rx  r&   r'   r  r  r
  Úerror_messages          r(   Ú2test_metadata_routing_error_for_column_transformerr   ò
  sË   € ô 	�‰’)šYÐ'Ó(×*Ñ*€AÚ€AØ ˜c 3�8€MÜ
˜gÔ';Ó'=À¸sÐCÐDÓ
E€Cð	6Ø6<°Xð	?ð ô 
�‰”z¬¯©°=Ó)AÔ	Bñ WØ�[Ò Ø�G‰G�A�qŒMØ�M‰M˜!¨=À8ˆMÕLà ŒG�C˜Ó   A°]ÈXÕV÷W÷ Wñ Wús   Á:ACÃCc                  óT   — t        dt        «       dgfg«      } | j                  «        y )Nro   r   )r	   r   Úget_metadata_routingr  s    r(   Ú+test_get_metadata_routing_works_without_fitr#    s*   € ô 
˜WÔ&:Ó&<¸q¸cÐBÐCÓ	D€BØ×ÑÕr+   c                  óì   — t        dt        «       dgfgt        «       j                  d¬«      j	                  d¬«      ¬«      } | j                  «       }|j                  ddg«      t        dg«      k(  sJ ‚y )Nro   r   T©r  rp   r)   r  )r	   r   r   r  r  r"  ÚconsumesÚset©rf   Úrouters     r(   Ú%test_remainder_request_always_presentr*    sr   € ô 
Ø
”>Ó# a SÐ	)Ð*Ü&Ó(ß	‰ $ˆÓ	'ß	Ñ	¨Ð	Ó	-ô	
€Bð ×$Ñ$Ó&€FØ�?‰?˜5 : ,Ó/´3¸
°|Ó3DÒDÐDÑDr+   c                  óØ   — t        dt        «       j                  d¬«      j                  d¬«      d„ fg«      } | j	                  «       }|j                  ddg«      t        dg«      k(  sJ ‚y )Nro   Tr%  c                 ó   — g S r"   r#   )r&   s    r(   ru   z9test_unused_transformer_request_present.<locals>.<lambda>'  s   € ˜"€ r+   r)   r  )r	   r   r  r  r"  r&  r'  r(  s     r(   Ú'test_unused_transformer_request_presentr-    sr   € ô 
ð Ü$Ó&ß ‘¨$�Ó/ß&Ñ&°Ð&Ó5Ùðð	
ó

€Bð ×$Ñ$Ó&€FØ�?‰?˜5 : ,Ó/´3¸
°|Ó3DÒDÐDÑDr+   c                 óN  — t        j                  ddgddgg«      }ddg}ddg}t        | t        «      r"| j	                  d¬«      j                  d¬«       t        «       j	                  d¬«      j                  d¬«      }t        d|dgfg| ¬	«      }|j                  |||¬
«       y )Nr0   r/   r¿   rl   r   T)r  ro   rp   )r'   r  )r3   r|   r£   r   r  r  r	   r   )rq   r&   r'   r  rð  rf   s         r(   Ú-test_metadata_routing_with_remainder_no_errorr/  /  s»   € ô 	�‰�1�a�&˜1˜a˜&Ð!Ó"€AØ	
ˆAˆ€AØ˜�F€Mô �)Ô1Ô2Ø×!Ñ!°Ð!Ó5×KÑKØð 	Lô 	
ô
 	Óß	‰ tˆÓ	,ß	Ñ	¨TÐ	Ó	2ð ô
 
˜W k°A°3Ð7Ð8ÀIÔ	N€Bð ×Ñ�Q˜!¨=ÐÕ9r+   )žÚ__doc__rÄ  r_   r´  rú  r°   r3   ra   Únumpy.testingr   Úscipyr   Úsklearnr   Úsklearn.baser   r   Úsklearn.composer	   r
   r   Úsklearn.exceptionsr   Úsklearn.feature_extractionr   Úsklearn.feature_selectionr   Úsklearn.preprocessingr   r   r   r   Ú%sklearn.tests.metadata_routing_commonr   r   r   Úsklearn.utils._indexingr   Úsklearn.utils._testingr   r   r   r   Úsklearn.utils.fixesr   r   r   r    r<   rB   rL   rP   ÚmarkÚparametrizerh   rŠ   r�   r¯   r|   r½   rÄ   rÆ   rÏ   rÙ   rÞ   rç   rð   rø   rû   rÿ   r  r  r  r  r$  r&  r6  r<  r>  rB  rD  rG  rT  r~   rY  rí   r]  ra  rc  re  rj  rl  rq  ru  r}  r€  r„  rˆ  r“  r  r�  r   r¹  r¬  rÖ   r±  rÀ  rÂ  rÈ  rÖ  rÜ  rá  rê  rì  ró  rö  rø  rû  rý  r	  r  r  r  Úranger9  rP  r>  rB  rF  rM  rQ  rX  rw  r}  r  rœ  r£  rª  r¯  r¹  rÅ  rË  rÕ  r×  rò  Úthread_unsafeÚskipifÚ__version__rþ  r  r  r  r  r   r#  r*  r-  r/  )Úis   0r(   ú<module>rE     s—  ðñó Û 	Û ã Û Û Ý )Ý å "ß 8÷ñ õ
 .Ý 5Ý 7÷ó ÷ñ õ
 3÷ó ÷ QÑ PôÐ˜mô ô�-ô ô	@˜ô 	@ô�ô ô-�ô -ð ‡�×ÑØà�U˜Q˜CÐ
  8©U«W°q°cÐ":Ð	;¸WÐEØ‘U“W˜q˜cÐ
" X¨u°q°cÐ$:Ð	;¸WÐEØ�6˜A˜3Ð
 (¨E°A°3Ð!7Ð	8¸'ÐBØ�U˜Q˜CÐ
  =°-À!ÀÐ"EÐ	FÈÐPð	óñóðò?(òDð" ‡�×ÑÐ+¨h¸Ð-AÓBñZ9ó CðZ9ðz ‡�×Ñ˜ D¨% =°xÀÐ6IÐÓJØ‡�×ÑØØˆˆ�‰�5˜%�.Ó	! E¨5 >Ð2Ú$ð ó ð
 ‡�×ÑÐ*¨U°D¨MÓ:ñ,:ó ;óó Kð,:ò^(XòVTð> ‡�×Ñ˜¨.Ó9ñWó :ðWò.Jð( ‡�×Ñ˜¨.Ó9Ø‡�×ÑÐ+Ò-JÓKñAó Ló :ðAò6ò,1,òhò"òð  ‡�×Ñ˜ v¨}Ð&=Ó>ñ $ó ?ð $òFò,òJò
ò<%ò,"ò^6ò(4ò#ò2ò6-"ð` ‡�×ÑØ+à
ˆÒ" Q CÐ(Ø
ˆˆqˆc�A�3ˆÙ	™¨ sÐ+Ø
ˆ��˜�uÐÚ	Ò3Ò5IÐJðó	ñ?ó	ð?ð( ‡�×ÑØà
ˆˆqˆcˆ
Ø	ˆ�‰�1�#‹˜˜ÐÙ	ˆq�!‹�q�cÐØ	ˆ�‰�4˜�-Ó	  5¨$ -Ð0ð	óñ4óð4ð" ‡�×ÑØà
ˆˆqˆcˆ
Ù	ˆq�!‹�q�cÐØ	ˆ�‰�4˜�-Ó	  5¨$ -Ð0Ø
ˆ�X�JÐØ	�h�ZÐ Ø	ˆ�‰�7�)Ó	˜x˜jÐ)Ø	ˆ�‰�7�) 6Ô	*¨X¨JÐ7Ù	ˆt�WÓ	 ˜zÐ*Ù	ˆw˜Ó	  8 *Ð-ð
óñ4óð4ð, ‡�×ÑØà
ˆˆq�!ˆfˆØ	ˆ�‰�1�#‹˜˜A˜ÐÙ	ˆq�!‹�q˜!�fÐØ	ˆ�‰Ò&Ó	'Ò)<Ð=ð	óñ4óð4ò(2ò8ð  ‡�×Ñ˜¨.Ó9ñ8ó :ð8ð. ‡�×Ñ˜¨.Ó9ñ8ó :ð8ò()"òX0ð ‡�×ÑØ
ˆIÐñ Ø™E›G a SÐ)¨H±e³gÀ¸sÐ+CÐDÙ%›-ôð
Xð
	
ñ Ø™E›G a SÐ)¨H±e³gÀ¸sÐ+CÐDØ'ôð
Xð
	
ñ Ø™E›G a SÐ)¨H°f¸q¸cÐ+BÐCØ'ôð
Xð		
ñ Ø™E›G a SÐ)¨H°mÀaÀSÐ+IÐJØ'ôð
Xð
	
ñ  ©%«'°A°3Ð7Ð8ÀMÔRðXð	
ñ Ø™E›G a SÐ)¨H±e³gÀ¸sÐ+CÐDÐPVôðUð	
ñ  ©%«'°A°3Ð7Ð8ÀFÔKØPð	
ðy@óCðH ‡�×Ñ˜ E¨?Ð#;Ó<ñ
5ó =óICðJ
5òò
)ò /ò(	Eð ‡�×Ñ˜¨¯
©
Ð'D°^Ð'DÓEñ	#ó Fð	#ò"ð ‡�×ÑØ%à
�[Ð	! 4¨¯©°DÐ9Ø
�[Ð	! 4¨°¸Ð/AÐBØ
�[Ð	! 4¨#¨u¨°tÐ<Ø
ˆ�d˜V XÐ.°Ð5Ø
ˆ˜˜u˜g tÐ,Ø
ˆ˜˜e TÐ*Ø
ˆ˜ §	¡	˜{¨DÐ1Ø
ˆ�d˜S˜E 4Ð(Ø
ˆ�j 2§9¡9 +¨tÐ4Ø
�yÐ	! ;°°dÐ;Ø
ˆ�h  s eÐ,Ø	ˆV�U˜DÐ!â/ØØ�Y‰Y˜ Ð)Øð		
ðóñ.-ó/ð.-ò&*ò>ò>ð" ‡�×ÑØØˆˆ�‰�"˜CÔ	 ¡,Ð/Ú%ð ó ñ
óð
ð$ ‡�×ÑØà	
ˆÙØ	ˆÙØ	�ˆÙðó
ñDó
ðDð ‡�×ÑØ�!�‘m e¨T ]Ñ4KÐLóñBóðBð ‡�×Ñ˜ }±nÓ6FÐ&GÓHñ	7ó Ið	7ò-ð ‡�×Ñ˜ }±nÓ6FÐ&GÓHñFó IðFð> ‡�×Ñ˜ }±nÓ6FÐ&GÓHñFó IðFò,=ò8-ò	:ð ‡�×ÑÐ+Ò-FÓGØ‡�×Ñ˜¡u£w°¸vÐ&FÓGñ!"ó Hó Hð!"òH4òD0ô(�Uô ð ‡�×ÑØ-ð ™>Ó+¨c°3¨ZÐ8Ø˜=¨3¨%Ð0ðð ÚSð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=¨3¨%Ð0ðð Ú3ð	
ð ™>Ó+¨c¨UÐ3Ø˜6 C 5Ð)ðð Ú9ð	
ð ™>¨6°6Ð*:Ó;º_ÐMðð Ú<ð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=¨3¨%Ð0ðð Ú3ð	
ð ™>¹eÀA»hÖ*G¸¨S°°ª9Ò*GÓHÈ3È%ÐPØ™>¹eÀA»hÖ*G¸¨S°°ª9Ò*GÓHÈ3È%ÐPðð òð	
ð$ ˜6 C 5Ð)ðð Øð	
ð ™>Ó+©U°1°a«[Ð9ðð Ø˜+Ð&ð	
ð ™>Ó+¨c¨UÐ3Ø˜6¡5¨¨A£;Ð/ðð Ú9ð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=©%°°1«+Ð6ðð ÚSð	
ð ™>Ó+©U°3¸«_Ð=ðð Ø˜+Ð&ð	
ð ™>Ó+¨c¨UÐ3Ø˜6¡5¨¨c£?Ð3ðð Ø˜.Ð)ð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=©%°°S«/Ð:ðð òð	
ðKtówñp.óqwðp.ð ,°sð ,Àsó ,ð7°#ð 7À#ó 7ð ‡�×ÑØHð ™>Ó+¨c°3¨ZÐ8Ø˜=¨3¨%Ð0ðð Ø2Ú9ð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=¨3¨%Ð0ðð Ø/Ú0ð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=©%°°S«/Ð:ðð Ø-òð	
ð'#ó&ñN.óO&ðN.ð& ‡�×ÑØ-ð ™>Ó+¨c°3¨ZÐ8Ø˜=¨3¨%Ð0ðð Ú ð	
ð ™>¨3¨%Ó0°3¸°*Ð=Ø˜=¨3¨%Ð0ðð Ø�#ˆJð	
ð ™>Ó+¨c¨UÐ3Ø˜6 C 5Ð)ðð Úð	
ð ™>¨6°6Ð*:Ó;º_ÐMðð Ú!ð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=¨3¨%Ð0ðð Úð	
ð ™>¹eÀA»hÖ*G¸¨S°°ª9Ò*GÓHÈ3È%ÐPØ™>¹uÀQ»xÖ*H¸!¨T°!°ª:Ò*HÓIÈCÈ5ÐQðð Ú=ð	
ð ˜6 C 5Ð)ðð Øð	
ð ™>Ó+©U°1°a«[Ð9Ø˜6 C 5Ð)ðð Úð	
ð ™>Ó+¨c¨UÐ3Ø˜6¡5¨¨A£;Ð/ðð Úð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=©%°°1«+Ð6ðð Ú ð	
ð ™>Ó+©U°3¸«_Ð=Ø˜6 C 5Ð)ðð Úð	
ð ™>Ó+¨c¨UÐ3Ø˜6¡5¨¨c£?Ð3ðð Ø�#ˆJð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=©%°°S«/Ð:ðð Ú ð	
ð ™>Ó+¨c°3¨ZÐ8Ø˜=©%°°S«/Ð:ðð Úð	
ðOoórñf.ógrðf.ð" ‡�×ÑØ0ð ™>Ó+¨c¨UÐ3Ø˜=¨3¨%Ð0ðð Øð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=¨3¨%Ð0ðð Øð	
ð ™>¨3¨%Ó0°3°%Ð8Ø˜=¨3¨%Ð0ðð Øð	
ð ™>¨3¨%Ó0°3°%Ð8Ø˜6 C 5Ð)ðð Øð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=¨3°¨*Ð5ðð Øð	
ð ™>¨3¨%Ó0°3°%Ð8Ø˜=¨3¨%Ð0Ø™>¨3¨%Ó0°3°%Ð8ðð
 Øð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=¨3¨%Ð0Ø™>¨3¨%Ó0°3°%Ð8ðð
 Øð	
ð ™>¹eÀA»hÖ*G¸¨S°°ª9Ò*GÓHÈ3È%ÐPØ™>¹eÀA»hÖ*G¸¨S°°ª9Ò*GÓHÈ3È%ÐPðð Ø;ð	
ð ™>¨3°¨*Ó5±u¸QÀ³{ÐCØ˜=¨3¨%Ð0Ø™>¨3¨%Ó0°3°%Ð8ðð
 Øð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=©%°°1«+Ð6Ø™>¨3¨%Ó0°3°%Ð8ðð
 Øð	
ð ™>¨3°¨*Ó5±u¸SÀ#³ÐGØ˜=¨3¨%Ð0Ø™>¨3¨%Ó0°3°%Ð8ðð
 Øð	
ð ™>¨3°¨*Ó5¸°uÐ=Ø˜=©%°°S«/Ð:Ø™>¨3¨%Ó0°3°%Ð8ðð
 Øð	
ð}gójñV#óWjðV#ð, ‡�×ÑÐ4°t¸U°mÓDØ‡�×Ñ˜ v¨}Ð&=Ó>ñ5ó ?ó Eð5ð. ‡�×Ñ˜ v¨}Ð&=Ó>Ø‡�×Ñ˜¨4°¨-Ó8ñ*-ó 9ó ?ð*-ðZ ‡�×Ñ˜ v¨}Ð&=Ó>ñ%-ó ?ð%-ôT˜=ô ð( ‡�×ÑØAñ !¨Ô,ØÐ/Ð0Ø�gÐð	
ð ØÐØˆIð	
ð ØÐ/Ð0Ø�gÐð	
ðóñ( Hó)ð( HðF ‡�×ÑØØˆˆ�‰�5˜%�.Ó	! E¨5 >Ð2Ú$ð ó ñ
2óð
2ò0ò8'ò0&ò@-ò4ð$ ‡�×ÑÐ+¨i¸Ð-BÓCñRó DðRô:�}ô ð  ‡�×Ñ˜¨8°XÐ*>Ó?ñ*&ó @ð*&ð^ ‡�×ÒØ‡�×ÒÙ�&×$Ò$Ó%©°eÓ(<Ñ<Ø#ð ó ñCó	ó ð
Cò(#ð6 ‡�×Ñ˜Ò#HÓIñAó JðAð ‡�×Ñ˜Ò#HÓIÙ¨Ô-ñ 
ó .ó Jð 
ñF ¨Ô-ñLó .ðLðD ‡�×Ñ˜Ò#HÓIÙ¨Ô-ñWó .ó JðWñ& ¨Ô-ñó .ðñ ¨Ô-ñ	Eó .ð	Eñ ¨Ô-ñEó .ðEñ$ ¨Ô-Ø‡�×ÑØàØÙ‹ÙÓð	óñ:óó .ñ:ùò]! +HùÚ*GùòR +HùÚ*Hùòl +HùÚ*Gs*   á5A@(âA@-é0A@2êA@7ñA@<ñ4AA 