Ë
    êÿæiÊ= ã                   ó$  — d 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ZddlZ	ddl
Z
ddlmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZm Z  ddl!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZD ddlEmFZF ddlGmHZHmIZI ddlJmKZKmLZLmMZMmNZNmOZOmPZP ddlQmRZR ddlSmTZTmUZU  e«       ZVdeVj®                  j°                  _Y        deVj´                  j°                  _Y        dZ[ G d„ de«      Z\ G d „ d!e\«      Z] G d"„ d#ee]«      Z^ G d$„ d%e^«      Z_ G d&„ d'e_«      Z` G d(„ d)ee«      Za G d*„ d+e«      Zb G d,„ d-e_«      Zc G d.„ d/e«      Zdd0„ Zed1„ Zfd2„ Zgd3„ Zhd4„ Zid5„ Zjd6„ Zkd7„ Zld8„ Zmd9„ Znd:„ Zod;„ Zpd<„ Zqd=„ Zrd>„ Zse
jè                  jë                  d?g d@¢«      dA„ «       Zve
jè                  jë                  dBeR«      dC„ «       ZwdD„ ZxdE„ ZydF„ Zzd³dG„Z{dH„ Z|dI„ Z}dJ„ Z~e
jè                  jë                  dKg dL¢«      dM„ «       ZdN„ Z€dO„ Z�dP„ Z‚e
jè                  jë                  dQddQg«      dR„ «       Zƒe
jè                  jë                  dQddQg«      dS„ «       Z„dT„ Z…dU„ Z†e
jè                  jë                  dV e9 e=«        e.«       «      ef e9 e=«        e-«       «      ef e9 e=«       «      dW„ f e8g «      dX„ fg«      dY„ «       Z‡dZ„ Zˆd[„ Z‰e
jè                  �j                  d\„ «       Z‹d]„ ZŒd^„ Z�d_„ ZŽd`„ Z�da„ Z�db„ Z‘dc„ Z’dd„ Z“de„ Z”df„ Z•dg„ Z–dh„ Z—di„ Z˜ G dj„ dke«      Z™dl„ Zšdm„ Z›dn„ Zœdo„ Z�dp„  e�j<                   e8dq e_«       fdr eb«       fg«      dsf e8dq e_«       fdtdr eb«       fg«      duf e8dq e_«       fdvdr eb«       fg«      duf e8dq e_«       fdwg«      dsf e8dxdy ea«       fg«      dzf e8d{dy ea«       fg«      dzf e7d| ea«       fd} ea«       fg«      d~f e7dd} ea«       fd€g«      d�fgg d‚¢«      D «       ZŸe
jè                  jë                  dƒeŸ«      d„„ «       Z d…„ Z¡d†„ Z¢d‡„ Z£dˆ„ Z¤d‰„ Z¥dŠ„ Z¦e
jè                  jë                  dQddQg«      d‹„ «       Z§e
jè                  jë                  dŒeLeKg«      d�„ «       Z¨dŽ„ Z©d�„ Zªd�„ Z«d‘„ Z¬d’„ Z­d“„ Z®e
jè                  jë                  d”d e¯dd•«      g«      d–„ «       Z°d—„ Z±d˜„ Z² ed™¬š«      e
jè                  jë                  d›dœd�g«      dž„ «       «       Z³ ed™¬š«      dŸ„ «       Z´d „ Zµ ed™¬š«      d¡„ «       Z¶e
jè                  jë                  d›g d¢¢«      d£„ «       Z· G d¤„ d¥e«      Z¸e
jè                  jë                  d› e¹ eºeI«      d¦d§hz
  «      «       ed™¬š«      d¨„ «       «       Z»e
jè                  jë                  d› e¹ eºeI«      d¦d§hz
  «      «       ed™¬š«      d©„ «       «       Z¼e
jè                  jë                  d›g dª¢«      d«„ «       Z½ ed™¬š«      d¬„ «       Z¾e
jè                  jë                  d­ddQg«       ed™¬š«      d®„ «       «       Z¿ ed™¬š«      d¯„ «       ZÀ ed™¬š«      d°„ «       ZÁ ed™¬š«      e
jè                  jë                  d±eBeAg«      d²„ «       «       ZÂy)´z
Test the pipeline module.
é    N)Úmkdtemp)Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚTransformerMixinÚcloneÚis_classifierÚis_regressor)ÚKMeans)Ú	load_iris)ÚPCAÚTruncatedSVD)ÚDummyRegressor)ÚHistGradientBoostingClassifierÚRandomForestClassifierÚRandomTreesEmbedding)ÚNotFittedErrorÚUnsetMetadataPassedError)ÚCountVectorizer)ÚSelectKBestÚ	f_classif)ÚSimpleImputer)ÚLassoÚLinearRegressionÚLogisticRegression)Úaccuracy_scoreÚr2_score)Útrain_test_split)ÚLocalOutlierFactor)ÚFeatureUnionÚPipelineÚmake_pipelineÚ
make_union)ÚFunctionTransformerÚStandardScaler)ÚSVC)Ú"ConsumingNoFitTransformTransformerÚConsumingTransformerÚ	_RegistryÚcheck_recorded_metadata)Úget_tags)ÚCOMPOSITE_METHODSÚMETHODS)ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚassert_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚCSR_CONTAINERS)Ú_check_feature_namesÚcheck_is_fittedF)zthe pizza pizza beer copyrightzthe pizza burger beer copyrightz!the the pizza beer beer copyrightzthe burger beer beer copyrightzthe coke burger coke copyrightzthe coke burger burgerc                   ó   — e Zd ZdZdd„Zy)ÚNoFitz*Small class to test parameter dispatching.Nc                 ó    — || _         || _        y ©N©ÚaÚb)Úselfr<   r=   s      úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/tests/test_pipeline.pyÚ__init__zNoFit.__init__T   s   € ØˆŒØˆ�ó    ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r@   © rA   r?   r8   r8   Q   s
   „ Ù4ôrA   r8   c                   ó"   — e Zd Zdd„Zdd„Zd„ Zy)ÚNoTransNc                 ó   — | S r:   rG   ©r>   ÚXÚys      r?   ÚfitzNoTrans.fitZ   ó   € ØˆrA   c                 ó4   — | j                   | j                  dœS )Nr;   r;   )r>   Údeeps     r?   Ú
get_paramszNoTrans.get_params]   s   € Ø—V‘V $§&¡&Ñ)Ð)rA   c                 ó   — |d   | _         | S ©Nr<   ©r<   )r>   Úparamss     r?   Ú
set_paramszNoTrans.set_params`   s   € Ø˜‘ˆŒØˆrA   r:   ©F)rC   rD   rE   rN   rR   rW   rG   rA   r?   rI   rI   Y   s   „ óó*órA   rI   c                   ó   — e Zd Zd„ Zy)ÚNoInvTransfc                 ó   — |S r:   rG   ©r>   rL   s     r?   Ú	transformzNoInvTransf.transformf   ó   € ØˆrA   N)rC   rD   rE   r]   rG   rA   r?   rZ   rZ   e   s   „ órA   rZ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTransfc                 ó   — |S r:   rG   r\   s     r?   r]   zTransf.transformk   r^   rA   c                 ó   — |S r:   rG   r\   s     r?   Úinverse_transformzTransf.inverse_transformn   r^   rA   N)rC   rD   rE   r]   rc   rG   rA   r?   r`   r`   j   s   „ òórA   r`   c                   ó   — e Zd Zdd„Zy)ÚTransfFitParamsNc                 ó   — || _         | S r:   )Ú
fit_params©r>   rL   rM   rg   s       r?   rN   zTransfFitParams.fits   s   € Ø$ˆŒØˆrA   r:   ©rC   rD   rE   rN   rG   rA   r?   re   re   r   s   „ ôrA   re   c                   óH   — e Zd Zd	d„Zd„ Zd
d„Zd„ Zd„ Zd„ ZexZ	xZ
Zd
d„Zy)ÚMultc                 ó   — || _         y r:   ©Úmult)r>   rn   s     r?   r@   zMult.__init__y   s	   € Øˆ�	rA   c                  ó   — y©NTrG   ©r>   s    r?   Ú__sklearn_is_fitted__zMult.__sklearn_is_fitted__|   ó   € ØrA   Nc                 ó   — | S r:   rG   rK   s      r?   rN   zMult.fit   rO   rA   c                 óF   — t        j                  |«      | j                  z  S r:   ©ÚnpÚasarrayrn   r\   s     r?   r]   zMult.transform‚   ó   € Ü�z‰z˜!‹}˜tŸy™yÑ(Ð(rA   c                 óF   — t        j                  |«      | j                  z  S r:   rv   r\   s     r?   rc   zMult.inverse_transform…   ry   rA   c                 óf   — t        j                  |«      | j                  z  j                  d¬«      S )Né   ©Úaxis)rw   rx   rn   Úsumr\   s     r?   ÚpredictzMult.predictˆ   s'   € Ü—
‘
˜1“ §	¡	Ñ)×.Ñ.°AÐ.Ó6Ð6rA   c                 ó,   — t        j                  |«      S r:   ©rw   r   rK   s      r?   Úscorez
Mult.score�   s   € Ü�v‰v�a‹yÐrA   )r|   r:   )rC   rD   rE   r@   rr   rN   r]   rc   r€   Úpredict_probaÚpredict_log_probaÚdecision_functionrƒ   rG   rA   r?   rk   rk   x   s9   „ óòóò)ò)ò7ð =DÐC€MÐCÐ%Ð(9ôrA   rk   c                   ó4   — e Zd ZdZd„ Zdd„Zd„ Zdd„Zd	d„Zy)
Ú	FitParamTzMock classifierc                 ó   — d| _         y )NF©Ú
successfulrq   s    r?   r@   zFitParamT.__init__”   s	   € Øˆ�rA   c                 ó    — || _         d| _        y rp   )r‹   Úfitted_©r>   rL   rM   Úshould_succeeds       r?   rN   zFitParamT.fit—   s   € Ø(ˆŒØˆ�rA   c                 ó   — | j                   S r:   rŠ   r\   s     r?   r€   zFitParamT.predict›   s   € Ø�‰ÐrA   c                 óL   — | j                  |||¬«       | j                  |«      S )N)r�   )rN   r€   rŽ   s       r?   Úfit_predictzFitParamT.fit_predictž   s"   € Ø�‰��A nˆÔ5Ø�|‰|˜A‹ÐrA   Nc                 ó:   — |�||z  }t        j                  |«      S r:   r‚   )r>   rL   rM   Úsample_weights       r?   rƒ   zFitParamT.score¢   s    € ØÐ$Ø�MÑ!ˆAÜ�v‰v�a‹yÐrA   rX   rB   )	rC   rD   rE   rF   r@   rN   r€   r’   rƒ   rG   rA   r?   rˆ   rˆ   ‘   s   „ Ùò óòóôrA   rˆ   c                   ó   — e Zd ZdZd„ Zy)ÚDummyTransfz(Transformer which store the column meansc                 óp   — t        j                  |d¬«      | _        t        j                  «       | _        | S )Nr   r}   )rw   ÚmeanÚmeans_ÚtimeÚ
timestamp_rK   s      r?   rN   zDummyTransf.fit«   s(   € Ü—g‘g˜a aÔ(ˆŒô Ÿ)™)›+ˆŒØˆrA   N)rC   rD   rE   rF   rN   rG   rA   r?   r–   r–   ¨   s
   „ Ù2órA   r–   c                   ó4   — e Zd ZdZd„ Zd„ Zdd„Zdd„Zdd„Zy)	ÚDummyEstimatorParamsz,Mock classifier that takes params on predictc                  ó   — yrp   rG   rq   s    r?   rr   z*DummyEstimatorParams.__sklearn_is_fitted__¶   rs   rA   c                 ó   — | S r:   rG   rK   s      r?   rN   zDummyEstimatorParams.fit¹   rO   rA   c                 ó   — || _         | S r:   ©Úgot_attribute©r>   rL   r¢   s      r?   r€   zDummyEstimatorParams.predict¼   ó   € Ø*ˆÔØˆrA   c                 ó   — || _         | S r:   r¡   r£   s      r?   r„   z"DummyEstimatorParams.predict_probaÀ   r¤   rA   c                 ó   — || _         | S r:   r¡   r£   s      r?   r…   z&DummyEstimatorParams.predict_log_probaÄ   r¤   rA   NrX   )	rC   rD   rE   rF   rr   rN   r€   r„   r…   rG   rA   r?   r�   r�   ³   s   „ Ù6òòóóôrA   r�   c                  ó²  — t        dg«      } t        j                  t        «      5  | j	                  dggdg«       d d d «       d}t        dt        «       fg«      } t        j                  t        |¬«      5  | j	                  dggdg«       d d d «       t        «       }t        d|fg«      }|j                  d¬«      t        dd d |d	œ|j                  d
¬«      ¤Žk(  sJ ‚|j                  d¬«       |j                  dk(  sJ ‚|j                  �J ‚t        |«       t        «       }t        t        «      }t        d|fd|fg«      }|j                   d   |u sJ ‚|j                   d   |u sJ ‚d}t        dt        «       fd|fg«      } t        j                  t        |¬«      5  | j	                  dggdg«       d d d «       |j                  d¬«       |j"                  dk(  sJ ‚t        |«       t%        j&                  d«      }t        j                  t(        |¬«      5  |j                  d¬«       d d d «       t+        |«      }|j                   d   |j                   d   usJ ‚|j                  d¬«      }|j                  d¬«      }|j                  d
¬«      D ]  }|j-                  |«       Œ |j                  d
¬«      D ]  }|j-                  |«       Œ |j-                  d«       |j-                  d«       |j-                  d«       |j-                  d«       ||k(  sJ ‚y # 1 sw Y   �ŒëxY w# 1 sw Y   �Œ§xY w# 1 sw Y   �ŒˆxY w# 1 sw Y   �ŒxY w)N)r|   r|   r|   zRLast step of Pipeline should implement fit or be the string 'passthrough'.*NoFit.*Úclf©ÚmatchÚsvcT©rQ   )Úsvc__aÚsvc__br«   Fçš™™™™™¹?)r­   Úanovaz<All intermediate steps should be transformers.*\bNoTrans\b.*Út)Úsvc__Cz]Invalid parameter 'C' for estimator SelectKBest(). Valid parameters are: ['k', 'score_func'].)Úanova__CrG   )r!   ÚpytestÚraisesÚ	TypeErrorrN   r8   rI   rR   ÚdictrW   r<   r=   Úreprr&   r   r   Únamed_stepsÚCÚreÚescapeÚ
ValueErrorr   Úpop)	ÚpipelineÚmsgr¨   ÚpipeÚfilter1Úpipe2rV   Úparams2Úxs	            r?   Ú test_pipeline_invalid_parametersrÆ   É   s  € ô ˜˜Ó!€HÜ	�‰”yÕ	!Ø�‰�q�c�U˜Q˜CÔ ÷ 
"ð	ð ô
 ˜%¤£Ð)Ð*Ó+€HÜ	�‰”y¨Ö	,Ø�‰�q�c�U˜Q˜CÔ ÷ 
-ô ‹)€CÜ�e˜S�\�NÓ#€DØ�?‰? ˆ?Ó%¬ð *Ø˜D cñ*Ø-1¯_©_À%¨_Ó-Hñ*ò ð ð ð
 	‡O�O˜3€OÔØ�5‰5�CŠ<Ðˆ<Ø�5‰5ˆ=Ðˆ=äˆ„Jô ‹%€CÜœ)Ó$€GÜ�g˜wÐ'¨%°¨Ð6Ó7€Dð ×Ñ˜GÑ$¨Ñ/Ð/Ð/Ø×Ñ˜EÑ" cÑ)Ð)Ð)ð K€CÜ˜#œw›yÐ)¨E°3¨<Ð8Ó9€HÜ	�‰”y¨Ö	,Ø�‰�q�c�U˜Q˜CÔ ÷ 
-ð 	‡O�O˜3€OÔØ�5‰5�CŠ<Ðˆ<äˆ„Jô �)‰)ð	ó€Cô 
�‰”z¨Ö	-Ø�‰ ˆÔ%÷ 
.ô �$‹K€EØ×Ñ˜EÑ"¨%×*;Ñ*;¸EÑ*BÑBÐBÐBð �_‰_ $ˆ_Ó'€FØ×Ñ DÐÓ)€Gà�_‰_ %ˆ_Ö(ˆØ�
‰
�1�ð )ð ×Ñ 5ÐÖ)ˆØ�‰�A�ð *ð ‡J�JˆuÔØ
‡J�JˆwÔØ‡K�K�ÔØ‡K�K�ÔØ�WÒÐÑ÷[ 
"Ñ	!ú÷ 
-Ñ	,ú÷< 
-Ñ	,ú÷ 
.Ñ	-ús/   ¦L%Á7L2Æ#L?ÈMÌ%L/Ì2L<Ì?M	ÍMc                  óâ   — t         j                  } t         j                  }t        g «      }d}t	        j
                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nz(The pipeline is empty. Please add steps.r©   )ÚirisÚdataÚtargetr!   r´   rµ   r½   rN   )rL   rM   rÁ   rÀ   s       r?   Útest_empty_pipelinerË     sI   € Ü�	‰	€AÜ�‰€Aä�B‹<€DØ
4€CÜ	�‰”z¨Ö	-Ø�‰��AŒ÷ 
.×	-Ñ	-ús   Á	A%Á%A.c                  ó*  — t        j                  ddgg«      } t        dt        «       fdt	        «       ff«      }|j                  | d ¬«       |j                  | «       |j                  d¬«       |j                  | d ¬«       |j                  | «       y )Nr|   é   Útransfr¨   ©rM   Úpassthrough)rÎ   )rw   Úarrayr!   r`   rˆ   rN   rƒ   rW   ©rL   rÁ   s     r?   Útest_pipeline_init_tuplerÓ   '  sw   € ä
�‰�1�a�&�Ó€AÜ�h¤£Ð)¨E´9³;Ð+?Ð@ÓA€DØ‡H�HˆQ�$€HÔØ‡J�Jˆq„Mà‡O�O˜=€OÔ)Ø‡H�HˆQ�$€HÔØ‡J�Jˆq…MrA   c                  óJ  — t         j                  } t         j                  }t        «       }t	        t
        d¬«      }t        d|fd|fg«      }|j                  | |«       |j                  | «       |j                  | «       |j                  | «       |j                  | |«       y )NrÍ   ©Úkr°   Úlogistic)rÈ   rÉ   rÊ   r   r   r   r!   rN   r€   r„   r…   rƒ   )rL   rM   r¨   rÂ   rÁ   s        r?   Útest_pipeline_methods_anovarØ   3  sƒ   € ä�	‰	€AÜ�‰€Aä
Ó
€CÜœ) qÔ)€GÜ�g˜wÐ'¨*°cÐ):Ð;Ó<€DØ‡H�HˆQ�„NØ‡L�L�„OØ×Ñ�qÔØ×Ñ˜1ÔØ‡J�Jˆq�!ÕrA   c                  ó²  — t        dt        «       fdt        «       fg«      } | j                  d d d¬«       | j	                  d «      sJ ‚| j
                  d   j                  �J ‚| j
                  d   j                  �J ‚t        j                  d«      }t        j                  t        |¬«      5  | j                  d d d¬«       d d d «       y # 1 sw Y   y xY w)NrÎ   r¨   T)rL   rM   Úclf__should_succeedz.fit() got an unexpected keyword argument 'bad'r©   )Úclf__bad)r!   r`   rˆ   rN   r€   r¹   r<   r=   r»   r¼   r´   rµ   r¶   )rÁ   rÀ   s     r?   Útest_pipeline_fit_paramsrÜ   B  sº   € ä�h¤£Ð)¨E´9³;Ð+?Ð@ÓA€DØ‡H�Hˆt�t°€HÔ6à�<‰<˜ÔÐÐà×Ñ˜HÑ%×'Ñ'Ð/Ð/Ð/Ø×Ñ˜HÑ%×'Ñ'Ð/Ð/Ð/ô �)‰)ÐDÓ
E€CÜ	�‰”y¨Ö	,Ø�‰��t dˆÔ+÷ 
-×	,Ñ	,ús   Â/CÃCc                  ó„  — t        j                  ddgg«      } t        dt        «       fdt	        «       fg«      }|j                  | d ¬«       |j                  | «      dk(  sJ ‚|j                  | d ¬«      dk(  sJ ‚|j                  | d d ¬«      dk(  sJ ‚|j                  | t        j                  ddg«      ¬«      d	k(  sJ ‚y )
Nr|   rÍ   rÎ   r¨   rÏ   é   )rM   r”   ©r”   é   )rw   rÑ   r!   r`   rˆ   rN   rƒ   rÒ   s     r?   Ú%test_pipeline_sample_weight_supportedrá   R  s¹   € ä
�‰�1�a�&�Ó€AÜ�h¤£Ð)¨E´9³;Ð+?Ð@ÓA€DØ‡H�HˆQ�$€HÔØ�:‰:�a‹=˜AÒÐÐØ�:‰:�a˜4ˆ:Ó  AÒ%Ð%Ð%Ø�:‰:�a˜4¨tˆ:Ó4¸Ò9Ð9Ð9Ø�:‰:�a¤r§x¡x°°A°Ó'7ˆ:Ó8¸AÒ=Ð=Ñ=rA   c                  óÒ  — t        j                  ddgg«      } t        dt        «       fdt	        «       fg«      }|j                  | d ¬«       |j                  | «      dk(  sJ ‚|j                  | d ¬«      dk(  sJ ‚t        j                  d«      }t        j                  t        |¬	«      5  |j                  | t        j                  ddg«      ¬«       d d d «       y # 1 sw Y   y xY w)
Nr|   rÍ   rÎ   r¨   rÏ   rÞ   rß   z:score() got an unexpected keyword argument 'sample_weight'r©   )rw   rÑ   r!   r`   rk   rN   rƒ   r»   r¼   r´   rµ   r¶   )rL   rÁ   rÀ   s      r?   Ú'test_pipeline_sample_weight_unsupportedrã   ]  s¹   € ä
�‰�1�a�&�Ó€AÜ�h¤£Ð)¨E´4³6¨?Ð;Ó<€DØ‡H�HˆQ�$€HÔØ�:‰:�a‹=˜AÒÐÐØ�:‰:�a tˆ:Ó,°Ò1Ð1Ð1ä
�)‰)ÐPÓ
Q€CÜ	�‰”y¨Ö	,Ø�
‰
�1¤B§H¡H¨a°¨VÓ$4ˆ
Ô5÷ 
-×	,Ñ	,ús   Â+)CÃC&c                  ó  — t        dt        «       fg«      } t        j                  d«      }t	        j
                  t        |¬«      5  | j                  d¬«       d d d «       t	        j
                  t        |¬«      5  | j                  d¬«       d d d «       t        j                  d«      }t	        j
                  t        |¬«      5  | j                  d¬«       d d d «       y # 1 sw Y   Œ‹xY w# 1 sw Y   ŒaxY w# 1 sw Y   y xY w)	NÚclszžInvalid parameter 'fake' for estimator Pipeline(steps=[('cls', LinearRegression())]). Valid parameters are: ['memory', 'steps', 'transform_input', 'verbose'].r©   Únope)Úfake)Úfake__estimatorz“Invalid parameter 'invalid_param' for estimator LinearRegression(). Valid parameters are: ['copy_X', 'fit_intercept', 'n_jobs', 'positive', 'tol'].)Úcls__invalid_param)r!   r   r»   r¼   r´   rµ   r½   rW   )rÁ   Ú	error_msgs     r?   Ú$test_pipeline_raise_set_params_errorrë   j  sÊ   € ä�eÔ-Ó/Ð0Ð1Ó2€Dô —	‘	ð	*ó€Iô
 
�‰”z¨Ö	3Ø�‰˜VˆÔ$÷ 
4ô
 
�‰”z¨Ö	3Ø�‰¨ˆÔ/÷ 
4ô —	‘	ð	Uó€Iô 
�‰”z¨Ö	3Ø�‰¨6ˆÔ2÷ 
4Ð	3÷ 
4Ð	3ú÷
 
4Ð	3ú÷ 
4Ð	3ús$   ÁC$Á=C0ÃC<Ã$C-Ã0C9Ã<Dc                  óJ  — t         j                  } t         j                  }t        dd¬«      }t	        ddd¬«      }t        d|fd|fg«      }|j                  | |«       |j                  | «       |j                  | «       |j                  | «       |j                  | |«       y )	NTr   )ÚprobabilityÚrandom_stateÚfullÚmle©Ú
svd_solverÚn_componentsÚwhitenÚpcar«   )rÈ   rÉ   rÊ   r&   r   r!   rN   r€   r„   r…   rƒ   )rL   rM   r¨   rõ   rÁ   s        r?   Útest_pipeline_methods_pca_svmrö   …  s‡   € ä�	‰	€AÜ�‰€Aä
˜$¨QÔ
/€CÜ
˜¨e¸DÔ
A€CÜ�e˜S�\ E¨3 <Ð0Ó1€DØ‡H�HˆQ�„NØ‡L�L�„OØ×Ñ�qÔØ×Ñ˜1ÔØ‡J�Jˆq�!ÕrA   c                  óª  — t         j                  } t        ddd¬«      }t        d¬«      }t	        d|fd|fg«      }|j                  | «       |j                  | «      j                  | j                  d   fk(  sJ ‚|j                  |j                  | «      «       t        |j                  | «      |j                  |j                  | «      «      «       y )	Nrï   rð   Trñ   )Únoveltyrõ   Úlofr   )rÈ   rÉ   r   r   r!   rN   Úscore_samplesÚshapeÚfit_transformr1   r]   )rL   rõ   rù   rÁ   s       r?   Ú#test_pipeline_score_samples_pca_lofrý   ”  s°   € Ü�	‰	€Aô ˜¨e¸DÔ
A€CÜ
 TÔ
*€CÜ�e˜S�\ E¨3 <Ð0Ó1€DØ‡H�HˆQ„Kà×Ñ˜aÓ ×&Ñ&¨1¯7©7°1©:¨-Ò7Ð7Ð7à‡G�GˆC×Ñ˜aÓ Ô!Ü�D×&Ñ& qÓ)¨3×+<Ñ+<¸S¿]¹]È1Ó=MÓ+NÕOrA   c                  óÊ  — t        j                  dgdgg«      } t        j                  ddg«      }t        t        «       «      }|j	                  | |«       d}d}t        j                  t        |¬«      5 }|j                  | «       d d d «       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y # 1 sw Y   ŒSxY w)Nr|   rÍ   z<'LogisticRegression' object has no attribute 'score_samples'z+'Pipeline' has no attribute 'score_samples'r©   )rw   rÑ   r"   r   rN   r´   rµ   ÚAttributeErrorrú   Ú
isinstanceÚvalueÚ	__cause__Ústr)rL   rM   rÁ   Ú	inner_msgÚ	outer_msgÚ	exec_infos         r?   Ú4test_score_samples_on_pipeline_without_score_samplesr  ¤  s¶   € Ü
�‰�1�#˜�s�Ó€AÜ
�‰�!�Q�Ó€Aô Ô+Ó-Ó.€DØ‡H�HˆQ�„NàN€IØ=€IÜ	�‰”~¨YÕ	7¸9Ø×Ñ˜1Ô÷ 
8ô �i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷	 
8Ð	7ús   Á5CÃC"c                  ó„  — t         j                  } t         j                  }| j                  d   }t	        t        j                  |«      «      }t        «       }t        ddd¬«      }t        ddd¬«      }||fD ]Æ  }t        d|fd	|fg«      }|j                  | |«       |j                  | «      }	|	j                  |fk(  sJ ‚|j                  | «      }
|
j                  ||fk(  sJ ‚|j                  | «      }|j                  ||fk(  sJ ‚|j                  | «      }|j                  ||fk(  sJ ‚|j!                  | |«       ŒÈ y )
Nr   rÍ   Ú
randomizedT)ró   rò   rô   Úovr)rí   rî   Údecision_function_shapeÚ
preprocessr«   )rÈ   rÉ   rÊ   rû   Úlenrw   Úuniquer%   r   r&   r!   rN   r€   r„   r…   r†   rƒ   )rL   rM   Ú	n_samplesÚ	n_classesÚscalerrõ   r¨   ÚpreprocessingrÁ   r€   ÚprobaÚ	log_probar†   s                r?   Ú'test_pipeline_methods_preprocessing_svmr  µ  s3  € ä�	‰	€AÜ�‰€AØ—‘˜‘
€IÜ”B—I‘I˜a“LÓ!€IÜÓ€FÜ
˜1¨¸dÔ
C€CÜ
˜$¨QÈÔ
N€Cà  #›ˆÜ˜,¨Ð6¸À¸ÐEÓFˆØ�‰��AŒð —,‘,˜q“/ˆØ�}‰}  Ò,Ð,Ð,à×"Ñ" 1Ó%ˆØ�{‰{˜y¨)Ð4Ò4Ð4Ð4à×*Ñ*¨1Ó-ˆ	Ø�‰ 9¨iÐ"8Ò8Ð8Ð8à ×2Ñ2°1Ó5ÐØ ×&Ñ&¨9°iÐ*@Ò@Ð@Ð@à�
‰
�1�aÕñ# 'rA   c                  ó8  — t        «       } t        dd¬«      }t        «       }t        dd¬«      }| j                  t        j                  «      }|j                  |«      }t        d|fd|fg«      }|j                  t        j                  «      }t        ||«       y )Nr   Úauto)rî   Ún_initr  ÚKmeans)r%   r   rü   rÈ   rÉ   r’   r!   r2   )r  ÚkmÚscaler_for_pipelineÚkm_for_pipelineÚscaledÚseparate_predrÁ   Úpipeline_preds           r?   Útest_fit_predict_on_pipeliner   Ó  s�   € ô Ó€FÜ	˜Q vÔ	.€Bô )Ó*ÐÜ¨!°FÔ;€Oð ×!Ñ!¤$§)¡)Ó,€FØ—N‘N 6Ó*€Mô �hÐ 3Ð4°xÀÐ6QÐRÓS€DØ×$Ñ$¤T§Y¡YÓ/€Mä˜m¨]Õ;rA   c                  ód  — t        «       } t        d¬«      }t        d| fd|fg«      }d}d}t        j                  t
        |¬«      5 }t        |d«       d d d «       t        j                  j                  t
        «      sJ ‚|t        |j                  j                  «      v sJ ‚y # 1 sw Y   ŒSxY w)	Nrï   ©rò   r  rõ   z)'Pipeline' has no attribute 'fit_predict'z+'PCA' object has no attribute 'fit_predict'r©   r’   )r%   r   r!   r´   rµ   rÿ   Úgetattrr   r  r  r  )r  rõ   rÁ   r  r  r  s         r?   Ú0test_fit_predict_on_pipeline_without_fit_predictr$  é  s—   € ô Ó€FÜ
˜Ô
 €CÜ�h Ð'¨%°¨Ð6Ó7€Dà;€IØ=€IÜ	�‰”~¨YÕ	7¸9Ü��mÔ$÷ 
8ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷ 
8Ð	7ús   ÁB&Â&B/c                  ó  — t        dt        «       fdt        «       fg«      } | j                  d d dd¬«       | j                  d   j
                  d   sJ ‚| j                  d   j                  sJ ‚d| j                  d   j
                  vsJ ‚y )NrÎ   r¨   T)rL   rM   Útransf__should_get_thisrÚ   Úshould_get_thisr�   )r!   re   rˆ   r’   r¹   rg   r‹   ©rÁ   s    r?   Ú-test_fit_predict_with_intermediate_fit_paramsr)  ø  s™   € ô �h¤Ó 1Ð2°U¼I»KÐ4HÐIÓJ€DØ×ÑØ
�$°È$ð ô ð ×Ñ˜HÑ%×0Ñ0Ð1BÒCÐCÐCØ×Ñ˜EÑ"×-Ò-Ð-Ð-Ø 4×#3Ñ#3°HÑ#=×#HÑ#HÑHÐHÑHrA   Úmethod_name)r€   r„   r…   c                 óÌ   — t        dt        «       fdt        «       fg«      }|j                  d d «       t	        || «      } |d d¬«       |j
                  d   j                  sJ ‚y )NrÎ   r¨   T)rL   r¢   )r!   r`   r�   rN   r#  r¹   r¢   )r*  rÁ   Úmethods      r?   Ú(test_predict_methods_with_predict_paramsr-    sa   € ô �h¤£Ð)¨EÔ3GÓ3IÐ+JÐKÓL€DØ‡H�HˆT�4ÔÜ�T˜;Ó'€FÙ
ˆT Õ&à×Ñ˜EÑ"×0Ò0Ð0Ñ0rA   Úcsr_containerc                 ó(  — t         j                  j                  «       }||j                  d¬«      z  }t         j                  }t        dd¬«      }t        d¬«      }t        d|fd|fg«      }|j                  ||«       |j                  |«      }|j                  |j                  d   d	fk(  sJ ‚t        |d d …d d
…f   |j                  |«      «       t        |d d …d
f   |j                  ||«      j                  «       «       t        d|fd|fg«      } | |«      }|j                  ||«      }t        ||j                  «       «       t!        |«      }	|j"                  d   d   |	j"                  d   d   usJ ‚|j%                  d¬«       |j                  ||«      j                  |j                  d   dfk(  sJ ‚t        dt'        «       fd|fd|fg«      }|j                  ||«      }|j                  |j                  d   dfk(  sJ ‚d}
t        dt'        «       fdt)        «       fg«      }t+        j,                  t.        |
¬«      5  |j                  |«       d d d «       t        d|fd|ff«      }|j                  ||«       y # 1 sw Y   Œ-xY w)Nr   r}   rÍ   )ró   rî   r|   rÕ   ÚsvdÚselectrÞ   éÿÿÿÿ)Ú	select__ké   Úmockrà   z>All estimators should implement fit and transform.*\bNoTrans\br]   Úno_transformr©   )rÈ   rÉ   Úcopyr˜   rÊ   r   r   r    rN   r]   rû   r2   rü   r3   ÚravelÚtoarrayr   Útransformer_listrW   r`   rI   r´   rµ   r¶   )r.  rL   rM   r0  r1  ÚfsÚX_transformedÚX_spÚX_sp_transformedÚfs2rÀ   s              r?   Útest_feature_unionr@    so  € ô 	�	‰	�‰Ó€AØˆ�‰�Qˆ‹Ñ€AÜ�‰€AÜ
 A°AÔ
6€CÜ˜1Ô€FÜ	˜˜s�| h°Ð%7Ð8Ó	9€BØ‡F�Fˆ1ˆa„LØ—L‘L “O€MØ×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1ô ˜mªA¨s°¨s¨FÑ3°S×5FÑ5FÀqÓ5IÔJÜ�}¢Q¨ UÑ+¨V×-AÑ-AÀ!ÀQÓ-G×-MÑ-MÓ-OÔPô 
˜˜s�| h°Ð%7Ð8Ó	9€BÙ˜Ó€DØ×'Ñ'¨¨aÓ0ÐÜ˜mÐ-=×-EÑ-EÓ-GÔHô �‹)€CØ×Ñ˜qÑ! !Ñ$¨C×,@Ñ,@ÀÑ,CÀAÑ,FÑFÐFÐFð ‡M�M˜A€MÔØ×Ñ˜A˜qÓ!×'Ñ'¨A¯G©G°A©J¸¨?Ò:Ð:Ð:ô 
˜¤£Ð)¨E°3¨<¸(ÀFÐ9KÐLÓ	M€BØ×$Ñ$ Q¨Ó*€MØ×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1ð M€CÜ	˜¤V£XÐ.°ÄÃÐ0KÐLÓ	M€BÜ	�‰”y¨Ö	,Ø
�‰ˆqŒ	÷ 
-ô 
˜˜s�| h°Ð%7Ð8Ó	9€BØ‡F�Fˆ1ˆa…L÷ 
-Ð	,ús   É
JÊJc                  ó
  — t        «       } t        «       }t        d| fd|fg«      }|j                  d   | k(  sJ ‚|j                  d   |k(  sJ ‚|j                  j                  | k(  sJ ‚|j                  j
                  |k(  sJ ‚y)z6Check the behaviour of `named_transformers` attribute.rÎ   ÚnoinvtransfN)r`   rZ   r    Únamed_transformersrÎ   rB  )rÎ   rB  r;  s      r?   Ú%test_feature_union_named_transformersrD  B  s‘   € ä‹X€FÜ“-€KÜ	˜ &Ð)¨M¸;Ð+GÐHÓ	I€BØ× Ñ  Ñ*¨fÒ4Ð4Ð4Ø× Ñ  Ñ/°;Ò>Ð>Ð>ð × Ñ ×'Ñ'¨6Ò1Ð1Ð1Ø× Ñ ×,Ñ,°Ò;Ð;Ñ;rA   c                  ó’   — t        d¬«      } t        «       }t        | |«      }t        |j                  Ž \  }}|dk(  sJ ‚|| |fk(  sJ ‚y )Nrï   r"  )rõ   rÎ   )r   r`   r#   Úzipr:  )rõ   r5  ÚfuÚnamesÚtransformerss        r?   Útest_make_unionrJ  O  sU   € Ü
˜Ô
 €CÜ‹8€DÜ	�C˜Ó	€BÜ˜r×2Ñ2Ð3Ñ€Eˆ<ØÐ%Ò%Ð%Ð%Ø˜C ˜;Ò&Ð&Ñ&rA   c                  ód  — t        d¬«      } t        «       }t        | |d¬«      }|j                  t        | |«      j                  k(  sJ ‚d|j                  k(  sJ ‚t        j                  d«      }t        j                  t        |¬«      5  t        | |ddd	œ¬
«       d d d «       y # 1 sw Y   y xY w)Nrï   r"  rÞ   ©Ún_jobszEmake_union() got an unexpected keyword argument 'transformer_weights'r©   é
   r|   )rõ   r`   ©Útransformer_weights)
r   r`   r#   r:  rM  r»   r¼   r´   rµ   r¶   )rõ   r5  rG  rÀ   s       r?   Útest_make_union_kwargsrQ  X  s’   € Ü
˜Ô
 €CÜ‹8€DÜ	�C˜ aÔ	(€BØ×Ñ¤*¨S°$Ó"7×"HÑ"HÒHÐHÐHØ�—	‘	Š>Ðˆ>ô �)‰)ØOó€Cô 
�‰”y¨Ö	,Ü�3˜¸"ÈÑ2JÕK÷ 
-×	,Ñ	,ús   ÂB&Â&B/c                 ó4   ‡ ‡— t        «       }ˆ ˆfd„|_        |S )z>Helper to create a mock transformer with custom feature names.c                 óH   •— t        ‰«      D �cg c]  }‰› |› �‘Œ
 c}S c c}w r:   )Úrange)Úinput_featuresÚiÚ	base_nameÚ
n_featuress     €€r?   Ú<lambda>z)create_mock_transformer.<locals>.<lambda>j  s.   ø€ Ü#(¨Ô#4ó9Ù#4˜aˆ9ˆ+�a�SÒÐ#4ò9ùò 9s   �)r`   Úget_feature_names_out)rW  rX  r5  s   `` r?   Úcreate_mock_transformerr[  g  s   ù€ ä‹8€Dô"€DÔð €KrA   c                  ó  — t         j                  } t         j                  }t        «       }t	        d«      }t        ||d¬«      }|j                  rJ ‚t        ||d¬«      }|j                  | |«       t        g d¢|j                  «       «       y )NrÎ   F©Úverbose_feature_names_outT)Ú	pca__pca0Ú	pca__pca1Ú	pca__pca2Ú	pca__pca3Útransf__transf0Útransf__transf1Útransf__transf2)
rÈ   rÉ   rÊ   r   r[  r#   r^  rN   r3   rZ  )rL   rM   rõ   r5  ÚunionÚfu_unions         r?   Ú0test_make_union_passes_verbose_feature_names_outrh  p  s{   € ô 	�	‰	€AÜ�‰€Aä
‹%€CÜ" 8Ó,€DÜ�s˜D¸EÔB€Eà×.Ò.Ð.Ð.ä˜#˜t¸tÔD€HØ‡L�L��AÔäò	
ð 	×&Ñ&Ó(õrA   c                  ój  — t         j                  } t        dd¬«      }t        d|fg«      }|j	                  | «      j                  | «      }|j                  | «      }|j                  | «      }t        ||«       t        ||«       |j                  |«      }|j                  |«      }t        ||«       y )NrÍ   rï   )ró   rò   rõ   )	rÈ   rÉ   r   r!   rN   r]   rü   r2   rc   )rL   rõ   r¿   ÚX_transÚX_trans2ÚX_trans3ÚX_backÚX_back2s           r?   Útest_pipeline_transformro  �  s¡   € ô 	�	‰	€AÜ
˜1¨Ô
0€CÜ˜% ˜˜Ó'€Hð �l‰l˜1‹o×'Ñ'¨Ó*€GØ×%Ñ% aÓ(€HØ× Ñ  Ó#€HÜ˜g xÔ0Ü˜g xÔ0à×'Ñ'¨Ó0€FØ×#Ñ# GÓ,€GÜ˜f gÕ.rA   c                  óò   — t         j                  } t         j                  }t        «       }t	        d|fg«      }|j                  | |«      }|j                  | |«      j                  | «      }t        ||«       y )Nr5  )	rÈ   rÉ   rÊ   r`   r!   rü   rN   r]   r2   )rL   rM   rÎ   r¿   rj  rk  s         r?   Útest_pipeline_fit_transformrq     sf   € ä�	‰	€AÜ�‰€AÜ‹X€FÜ˜& &Ð)Ð*Ó+€Hð ×$Ñ$ Q¨Ó*€GØ�z‰z˜!˜QÓ×)Ñ)¨!Ó,€HÜ˜g xÕ0rA   z
start, end))r   r|   )r   rÍ   )r|   rÍ   )r|   rÞ   ©Nr|   )r|   NrB   c                 ó:  — t        dt        «       fdt        «       fdt        «       fgdd¬«      }|| | }t        |t         «      sJ ‚|j                  |j                  | | k(  sJ ‚t        |j                  j                  «       «      t        |j                  j                  «       «      | | k(  sJ ‚|j                  d¬«      }|j                  d¬«      }|d	= |d	= ||k(  sJ ‚d
}t        j                  t        |¬«      5  || |d…    d d d «       y # 1 sw Y   y xY w)NÚtransf1Útransf2r¨   Ú123T)ÚmemoryÚverboseFr¬   Ústepsz*Pipeline slicing only supports a step of 1r©   r2  )r!   r`   rˆ   r   ry  Úlistr¹   ÚitemsrR   r´   rµ   r½   )ÚstartÚendrÁ   Ú
pipe_sliceÚpipe_paramsÚpipe_slice_paramsrÀ   s          r?   Útest_pipeline_slicer�  ­  s'  € ô Ø
”V“XÐ	 ¬F«HÐ 5¸¼y»{Ð7KÐLØØô€Dð
 �e˜C�€Jä�j¤(Ô+Ð+Ð+à×Ñ˜tŸz™z¨%°Ð4Ò4Ð4Ð4ô 	ˆZ×#Ñ#×)Ñ)Ó+Ó,Ü�× Ñ ×&Ñ&Ó(Ó)¨%°Ð4ò	5ðð	5ð —/‘/ u�/Ó-€KØ"×-Ñ-°5Ð-Ó9ÐØ�GÐØ˜'Ð"ØÐ+Ò+Ð+Ð+à
6€CÜ	�‰”z¨Ö	-ØˆU�3�rˆ\Ò÷ 
.×	-Ñ	-ús   Ã?	DÄDc                  ój  — t        «       } t        «       }t        d| fd|fg«      }|d   | k(  sJ ‚|d   | k(  sJ ‚|d   |k(  sJ ‚|d   |k(  sJ ‚t        j                  t
        «      5  |d    d d d «       t        j                  t        «      5  |d    d d d «       y # 1 sw Y   Œ1xY w# 1 sw Y   y xY w)NrÎ   r¨   r   r2  rÞ   Úfoobar)r`   rˆ   r!   r´   rµ   Ú
IndexErrorÚKeyError)rÎ   r¨   rÁ   s      r?   Útest_pipeline_indexr†  Ì  s·   € Ü‹X€FÜ
‹+€CÜ�h Ð'¨%°¨Ð6Ó7€DØ�‰7�fÒÐÐØ�‰>˜VÒ#Ð#Ð#Ø�‰8�sŠ?Ðˆ?Ø�‰;˜#ÒÐÐô 
�‰”zÕ	"ØˆQŠ÷ 
#ô 
�‰”xÕ	 ØˆXŠ÷ 
!Ð	 ÷	 
#Ð	"ú÷ 
!Ð	 ús   Á'BÂB)ÂB&Â)B2c                  óö  — t        «       } t        «       }t        d| fg«      }|j                  d   | u sJ ‚d|fg|_        d|j                  vsJ ‚|j                  d   |u sJ ‚d|fg|j                  k(  sJ ‚|j	                  d| fg¬«       d| fg|j                  k(  sJ ‚|j	                  |¬«       d|fg|j                  k(  sJ ‚|j	                  dg¬«       t        j                  d«      }t        j                  t        |¬«      5  |j                  dggdg«       d d d «       d	}t        j                  t        |¬«      5  |j                  dggdg«       d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   y xY w)
Nr5  Úmock2©ry  ©r5  )ÚjunkrG   zJLast step of Pipeline should implement fit or be the string 'passthrough'.r©   r|   z0This 'Pipeline' has no attribute 'fit_transform')r`   r!   r¹   ry  rW   r»   r¼   r´   rµ   r¶   rN   rÿ   rü   )rt  ru  r¿   rÀ   s       r?   Útest_set_pipeline_stepsrŒ  Þ  s‰  € Ü‹h€GÜ‹h€GÜ˜& 'Ð*Ð+Ó,€HØ×Ñ Ñ'¨7Ñ2Ð2Ð2ð  Ð(Ð)€H„NØ˜×-Ñ-Ñ-Ð-Ð-Ø×Ñ Ñ(¨GÑ3Ð3Ð3Ø�gÐÐ 8§>¡>Ò1Ð1Ð1ð ×Ñ ¨Ð0Ð1ÐÔ2Ø�WÐÐ (§.¡.Ò0Ð0Ð0ð ×Ñ˜WÐÔ%Ø�WÐÐ (§.¡.Ò0Ð0Ð0ð ×Ñ˜|˜nÐÔ-Ü
�)‰)ØTó€Cô 
�‰”y¨Ö	,Ø�‰�q�c�U˜Q˜CÔ ÷ 
-ð =€CÜ	�‰”~¨SÖ	1Ø×Ñ  ˜u q cÔ*÷ 
2Ð	1÷	 
-Ð	,ú÷ 
2Ð	1ús   Ä	E#ÅE/Å#E,Å/E8c                  ó„  — t        «       } t        d¬«      }t        d| fd|fg«      }d|j                  v sJ ‚d|j                  vsJ ‚|j                  j                  | u sJ ‚|j                  j
                  |u sJ ‚t        d| fd|fg«      }|j                  j                  | usJ ‚|j                  j
                  |u sJ ‚y )NrÍ   rm   r5  rn   rˆ  Úvalues)r`   rk   r!   r¹   r5  rn   rŽ  )rÎ   Úmult2r¿   s      r?   Útest_pipeline_named_stepsr�  ÿ  sÖ   € Ü‹X€FÜ�aŒL€EÜ˜& &Ð)¨F°E¨?Ð;Ó<€Hð �X×)Ñ)Ñ)Ð)Ð)Ø˜(×.Ñ.Ñ.Ð.Ð.Ø×Ñ×$Ñ$¨Ñ.Ð.Ð.Ø×Ñ×$Ñ$¨Ñ-Ð-Ð-ô ˜( FÐ+¨f°e¨_Ð=Ó>€HØ×Ñ×&Ñ&¨fÑ4Ð4Ð4Ø×Ñ×$Ñ$¨Ñ-Ð-Ñ-rA   rÐ   c                 óV  — t        j                  dgg«      }t        j                  dg«      }t        d¬«      }t        d¬«      }t        d¬«      }t        d|fd| fd|fd	|fg«      }|j	                  ||«       g d
¢}|j
                  D ��	cg c]  \  }}	|‘Œ	 }
}}	||
k(  sJ ‚y c c}	}w )Nr|   rÍ   rm   rÞ   é   Úm2ÚbadÚm3Úm5)r“  r”  r•  r–  )rw   rÑ   rk   r!   rN   ry  )rÐ   rL   rM   r�  Úmult3Úmult5r¿   Úexpected_namesÚnameÚ_Úactual_namess              r?   Ú%test_pipeline_correctly_adjusts_stepsr�    s¨   € ä
�‰�1�#�‹€AÜ
�‰�!�‹€AÜ�aŒL€EÜ�aŒL€EÜ�aŒL€EäØ
�ˆ˜ Ð,¨t°U¨m¸dÀE¸]ÐKó€Hð ‡L�L��AÔÚ.€NØ(0¯ªÔ7©™W˜T 1’D¨€LÑ7Ø˜\Ò)Ð)Ñ)ùó 8s   ÂB%c                 ó  ‡‡‡— t        j                  dgg«      }t        j                  dg«      }t        d¬«      Št        d¬«      Št        d¬«      Šˆˆˆfd„} |«       }d}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       |j                  | ¬«       d	}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       |j                  d
¬«      |j                  ‰| ‰d ddd ddœ	k(  sJ ‚|j                  | ¬«       d}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       g d¢}|D ]  } t        ||«      |«       Œ |j                  ‰¬«       d	}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «        |«       }|j                  | ¬«       d}t        |gg|j                  ||«      j                  |«      «       t        |gg|j	                  ||«      «       t        ||j                  |gg«      «       d}d}	t        j                  t        |	¬«      5 }
t        |d«       d d d «       t!        
j"                  j$                  t        «      sJ ‚|t'        |
j"                  j$                  «      v sJ ‚d	}t)        d‰fd| fd‰fg«      }t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       y # 1 sw Y   ŒÏxY w)Nr|   rÍ   rm   rÞ   r’  c                  ó,   •— t        d‰ fd‰fd‰fg«      S )Nr“  r•  Úlast)r!   )r�  r—  r˜  s   €€€r?   Úmakez0test_set_pipeline_step_passthrough.<locals>.make*  s!   ø€ Ü˜$ ˜¨¨u¨¸À°ÐGÓHÐHrA   é   ©r•  rN  Tr¬   F)	ry  r“  r•  r   rw  Úm2__multÚ
last__multÚtransform_inputrx  ©r“  )r„   r…   r†   r]   rƒ   )r   é   z''str' object has no attribute 'predict'z*This 'Pipeline' has no attribute 'predict'r©   r€   r“  r•  r   )rw   rÑ   rk   r3   rü   rN   r€   rc   rW   rR   ry  r#  r]   r´   rµ   rÿ   r   r  r  r  r!   )rÐ   rL   rM   r¡  r¿   ÚexpÚother_methodsr,  r  r  r  r�  r—  r˜  s              @@@r?   Ú"test_set_pipeline_step_passthroughr«  "  s¢  ú€ ä
�‰�1�#�‹€AÜ
�‰�!�‹€AÜ�aŒL€EÜ�aŒL€EÜ�aŒL€EöIñ ‹v€Hà
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>à×Ñ˜;ÐÔ'Ø
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>Ø×Ñ DÐÓ)Ø—‘ØØØØØØØØñ
.ò 
ð 
ð 
ð ×Ñ˜;ÐÔ'Ø
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>ò€Mó  ˆØ!Œ�˜&Ó! !Õ$ð  ð ×Ñ˜5ÐÔ!Ø
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>á‹v€HØ×Ñ˜[ÐÔ)à
€CÜ˜˜�w §¡¨Q°Ó 2× <Ñ <¸QÓ ?Ô@Ü˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü�q˜(×4Ñ4°s°e°WÓ=Ô>à9€IØ<€IÜ	�‰”~¨YÕ	7¸9Ü�˜)Ô$÷ 
8ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ð6ð €CÜ˜$ ˜¨¨{Ð(;¸fÀe¸_ÐMÓN€HÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Õ>÷ 
8Ð	7ús   Ì#O>Ï>Pc                  ó€  — t        t        d«      «      } | j                   | j                   | j                   t        t        «       «      } t        | d«      rJ ‚| j                   | j                   t        d«      } | j                  d   dk(  sJ ‚t        | d«      rJ ‚| j                   | j                   t        t        «       t        «       «      } t        | d«      rJ ‚| j                   t        | d«      rJ ‚t        t        «       t        «       «      } t        | d«      rJ ‚| j                   t        | d«      rJ ‚y )Nr’  r€   rÐ   r   ©rÐ   rÐ   rc   )	r"   rk   r€   r]   rc   r`   Úhasattrry  rZ   )r¿   s    r?   Útest_pipeline_ducktypingr¯  s  s  € ÜœT !›WÓ%€HØ×ÒØ×ÒØ×ÒäœV›XÓ&€HÜ�x Ô+Ð+Ð+Ø×ÒØ×Òä˜]Ó+€HØ�>‰>˜!ÑÐ >Ò>Ð>Ð>Ü�x Ô+Ð+Ð+Ø×ÒØ×ÒäœV›X¤{£}Ó5€HÜ�x Ô+Ð+Ð+Ø×ÒÜ�xÐ!4Ô5Ð5Ð5äœ[›]¬F«HÓ5€HÜ�x Ô+Ð+Ð+Ø×ÒÜ�xÐ!4Ô5Ð5Ð5Ð5rA   c                  óœ  — t        «       } t        «       }t        | |«      }t        |t        «      sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        | |t        «       «      }t        |t        «      sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚y )Nr   ztransf-1r|   ztransf-2rÍ   Ú	fitparamt)r`   r"   r   r!   ry  rˆ   )Út1Út2rÁ   s      r?   Útest_make_pipeliner´  �  sÓ   € Ü	‹€BÜ	‹€BÜ˜˜RÓ €DÜ�dœHÔ%Ð%Ð%Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)ä˜˜R¤£Ó-€DÜ�dœHÔ%Ð%Ð%Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)Ø�:‰:�a‰=˜Ñ˜{Ò*Ð*Ñ*rA   zpipeline, check_estimator_typec                 ó0   — t        | «      j                  d u S r:   ©r+   Úestimator_type©Úests    r?   rY  rY  ¥  s   € œ ›×4Ñ4¸Ñ<rA   c                 ó0   — t        | «      j                  d u S r:   r¶  r¸  s    r?   rY  rY  §  s   € ¤8¨C£=×#?Ñ#?À4Ñ#GrA   c                 ó.   — t        | «        || «      sJ ‚y)zªCheck that the estimator type returned by the pipeline is correct.

    Non-regression test as part of:
    https://github.com/scikit-learn/scikit-learn/issues/30197
    N)r¸   )r¿   Úcheck_estimator_types     r?   Útest_pipeline_estimator_typer½  ž  s   € ô& 	ˆ„NÙ Ô)Ð)Ñ)rA   c                  óz   — t        g ¬«      } t        «       }|j                  «       }| j                  «       |k(  sJ ‚y)z Check that we propagate properly the tags in a Pipeline.

    Non-regression test as part of:
    https://github.com/scikit-learn/scikit-learn/issues/30197
    r‰  N)r!   r   Ú__sklearn_tags__)Úempty_pipelineÚbeÚexpected_tagss      r?   Ú%test_sklearn_tags_with_empty_pipelinerÃ  µ  s:   € ô  BÔ'€NÜ	‹€Bà×'Ñ'Ó)€MØ×*Ñ*Ó,°Ò=Ð=Ñ=rA   c                  ó:  — t         j                  } t         j                  }t        ddd¬«      }t	        d¬«      }t        d|fd|fgdd	i¬
«      }|j                  | |«       |j                  | «      }t        d|fd|fgdd	i¬
«      }|j                  | |«      }t        dt        «       fd|fd|fgdd	i¬
«      }|j                  | |«      }t        |d d …d d…f   d	|j                  | «      z  «       t        |d d …df   |j                  | |«      j                  «       «       t        |d d …d d…f   d	|j                  | «      z  «       t        |d d …df   |j                  | |«      j                  «       «       |j                  | j                  d   dfk(  sJ ‚y )NrÍ   r	  r   ©ró   rò   rî   r|   rÕ   rõ   r1  rN  rO  r5  r2  é   )rÈ   rÉ   rÊ   r   r   r    rN   r]   rü   r`   r2   r3   r8  rû   )rL   rM   rõ   r1  r;  r<  ÚX_fit_transformedÚX_fit_transformed_wo_methods           r?   Útest_feature_union_weightsrÉ  Â  s¤  € ä�	‰	€AÜ�‰€AÜ
˜1¨ÀAÔ
F€CÜ˜1Ô€Fä	Ø
�ˆ˜ &Ð)Ð*ÀÈÀô
€Bð ‡F�Fˆ1ˆa„LØ—L‘L “O€Mä	Ø
�ˆ˜ &Ð)Ð*ÀÈÀô
€Bð ×(Ñ(¨¨AÓ.Ðä	Ø
”&“(Ð	˜e S˜\¨H°fÐ+=Ð>Ø# R˜Lô
€Bð #%×"2Ñ"2°1°aÓ"8Ðô ˜mªA¨s°¨s¨FÑ3°R¸#×:KÑ:KÈAÓ:NÑ5NÔOÜ�}¢Q¨ UÑ+¨V×-AÑ-AÀ!ÀQÓ-G×-MÑ-MÓ-OÔPÜÐ/²°3°B°3°Ñ7¸¸c×>OÑ>OÐPQÓ>RÑ9RÔSÜÐ(ª¨B¨Ñ/°×1EÑ1EÀaÈÓ1K×1QÑ1QÓ1SÔTØ&×,Ñ,°·±¸±¸Q°Ò?Ð?Ñ?rA   c                  ó"  — t         } t        dt        d¬«      fdt        d¬«      fg«      }t        dt        d¬«      fdt        d¬«      fgd¬«      }t        dt        d¬«      fdt        d¬«      fgd¬«      }|j                  | «       |j	                  | «      }|j
                  d   t        | «      k(  sJ ‚|j                  | «       |j	                  | «      }|j
                  |j
                  k(  sJ ‚t        |j                  «       |j                  «       «       |j                  | «      }t        |j                  «       |j                  «       «       |j	                  | «      }t        |j                  «       |j                  «       «       y )	NÚwordsÚword©ÚanalyzerÚcharsÚcharrÍ   rL  r   )
ÚJUNK_FOOD_DOCSr    r   rN   r]   rû   r  r3   r9  rü   )rL   r;  Úfs_parallelÚfs_parallel2r<  ÚX_transformed_parallelÚX_transformed_parallel2s          r?   Útest_feature_union_parallelrÖ  å  s~  € ô 	€Aä	à”o¨vÔ6Ð7Ø”o¨vÔ6Ð7ð	
ó
€Bô à”o¨vÔ6Ð7Ø”o¨vÔ6Ð7ð	
ð ô€Kô  à”o¨vÔ6Ð7Ø”o¨vÔ6Ð7ð	
ð ô€Lð ‡F�Fˆ1„IØ—L‘L “O€MØ×Ñ˜qÑ!¤S¨£VÒ+Ð+Ð+à‡O�O�AÔØ(×2Ñ2°1Ó5ÐØ×ÑÐ"8×">Ñ">Ò>Ð>Ð>Ü�}×,Ñ,Ó.Ð0F×0NÑ0NÓ0PÔQð +×8Ñ8¸Ó;ÐÜ�}×,Ñ,Ó.Ð0G×0OÑ0OÓ0QÔRð +×4Ñ4°QÓ7ÐÜ�}×,Ñ,Ó.Ð0G×0OÑ0OÓ0QÕRrA   c                  óÞ  — t        d¬«      } t        dd¬«      }t        d|fd| fg«      }|j                  t        «       |j	                  «       }|D ]  }d|v rŒd	|v rŒJ ‚ t        |«      d
k(  sJ ‚t        dt        «       fg«      j                  dgg«      }t        j                  d«      }t        j                  t        |¬«      5  |j	                  «        d d d «       y # 1 sw Y   y xY w)NrÌ  rÍ  Úchar_wb)rÞ   rÞ   )rÎ  Úngram_rangerÏ  rË  Úchars__Úwords__é#   Útr1r|   zDTransformer tr1 (type Transf) does not provide get_feature_names_outr©   )r   r    rN   rÑ  rZ  r  r`   r»   r¼   r´   rµ   rÿ   )Ú	word_vectÚ	char_vectÚftÚfeature_namesÚfeatrÀ   s         r?   Ú test_feature_union_feature_namesrã    sÙ   € Ü¨Ô0€IÜ¨ÀÔG€IÜ	˜ Ð+¨g°yÐ-AÐBÓ	C€BØ‡F�FŒ>ÔØ×,Ñ,Ó.€MÛˆØ˜DÒ  I°Ò$5Ð5Ð5ð äˆ}Ó Ò#Ð#Ð#ä	˜œv›xÐ(Ð)Ó	*×	.Ñ	.°°¨uÓ	5€Bä
�)‰)ØNó€Cô 
�‰”~¨SÖ	1Ø
× Ñ Ô"÷ 
2×	1Ñ	1ús   Ã	C#Ã#C,c                  óB  — t         j                  } t         j                  }t        t	        d¬«      t        «       «      }|j                  | |«       t        j                  t        «      5  t        |d«       d d d «       t        t	        d¬«      t        d¬«      «      }t        j                  t        «      5  t        |d«       d d d «       |j                  | |«       t        |j                  t        j                  |«      «       y # 1 sw Y   Œ“xY w# 1 sw Y   ŒQxY w)Nr|   rÕ   Úclasses_r   ©rî   )rÈ   rÉ   rÊ   r"   r   r   rN   r´   rµ   rÿ   r#  r   r3   rå  rw   r  )rL   rM   Úregr¨   s       r?   Útest_classes_propertyrè  &  sº   € Ü�	‰	€AÜ�‰€Aä
œ aÔ(Ô*:Ó*<Ó
=€CØ‡G�GˆAˆq„MÜ	�‰”~Õ	&Ü��ZÔ ÷ 
'ô œ aÔ(Ô*<È!Ô*LÓ
M€CÜ	�‰”~Õ	&Ü��ZÔ ÷ 
'à‡G�GˆAˆq„MÜ�s—|‘|¤R§Y¡Y¨q£\Õ2÷ 
'Ð	&ú÷ 
'Ð	&ús   Á*D	Â8DÄ	DÄDc                  óf  — t        d«      } t        d«      }t        d«      }d„ |_        d„ | _        d„ |_        t        d| fd|fg«      }t        ddgg|j	                  t        j                  d	gg«      «      «       t        d
dg|j                  «       «       d|fg|_        t        dgg|j	                  t        j                  d	gg«      «      «       t        dg|j                  «       «       |j                  d|fg¬«       t        dgg|j	                  t        j                  d	gg«      «      «       t        dg|j                  «       «       |j                  |¬«       t        dgg|j	                  t        j                  d	gg«      «      «       t        dg|j                  «       «       y )NrÍ   rÞ   r’  c                 ó   — dgS ©NÚx3rG   ©rU  s    r?   rY  z.test_set_feature_union_steps.<locals>.<lambda>;  ó   € ¸$¹rA   c                 ó   — dgS ©NÚx2rG   rí  s    r?   rY  z.test_set_feature_union_steps.<locals>.<lambda><  rî  rA   c                 ó   — dgS )NÚx5rG   rí  s    r?   rY  z.test_set_feature_union_steps.<locals>.<lambda>=  rî  rA   r“  r•  r|   Úm2__x2Úm3__x3r–  Úm5__x5r5  )r:  Úmock__x3rŠ  Úmock__x5)	rk   rZ  r    r3   r]   rw   rx   r:  rW   )r�  r—  r˜  rà  s       r?   Útest_set_feature_union_stepsrù  6  sl  € Ü�‹G€EÜ�‹G€EÜ�‹G€Eá"?€EÔÙ"?€EÔÙ"?€EÔä	˜˜e�} t¨U mÐ4Ó	5€BÜ˜˜A˜�x §¡¬b¯j©j¸1¸#¸Ó.?Ó!@ÔAÜ˜ (Ð+¨R×-EÑ-EÓ-GÔHð ! %˜=˜/€BÔÜ˜˜�u˜bŸl™l¬2¯:©:¸°s°eÓ+<Ó=Ô>Ü˜�z 2×#;Ñ#;Ó#=Ô>ð ‡M�M V¨U OÐ#4€MÔ5Ü˜˜�u˜bŸl™l¬2¯:©:¸°s°eÓ+<Ó=Ô>Ü˜
�| R×%=Ñ%=Ó%?Ô@ð ‡M�M�u€MÔÜ˜˜�u˜bŸl™l¬2¯:©:¸°s°eÓ+<Ó=Ô>Ü˜
�| R×%=Ñ%=Ó%?Õ@rA   c                  ó¢  — t        d«      } t        d«      }d„ | _        d„ |_        t        j                  dgg«      }t	        d| fd|fg«      }t        ddgg|j                  |«      j                  |«      «       t        ddgg|j                  |«      «       t        dd	g|j                  «       «       |j                  d
¬«       t        dgg|j                  |«      j                  |«      «       t        dgg|j                  |«      «       t        d	g|j                  «       «       |j                  d
¬«       t        g g|j                  |«      j                  |«      «       t        g g|j                  |«      «       t        g |j                  «       «       |j                  |¬«       t        dgg|j                  |«      j                  |«      «       t	        dd|fg«      }t        dgg|j                  |«      j                  |«      «       t        dgg|j                  |«      «       t        d	g|j                  «       «       y )NrÍ   rÞ   c                 ó   — dgS rð  rG   rí  s    r?   rY  z2test_set_feature_union_step_drop.<locals>.<lambda>W  rî  rA   c                 ó   — dgS rë  rG   rí  s    r?   rY  z2test_set_feature_union_step_drop.<locals>.<lambda>X  rî  rA   r|   r“  r•  rô  rõ  Údropr§  r£  )r“  rý  )
rk   rZ  rw   rx   r    r3   rN   r]   rü   rW   )r�  r—  rL   rà  s       r?   Ú test_set_feature_union_step_droprþ  S  sì  € Ü�‹G€EÜ�‹G€Eá"?€EÔÙ"?€EÔä
�
‰
�Q�C�5Ó€Aä	˜˜e�} t¨U mÐ4Ó	5€BÜ˜˜A˜�x §¡¨£×!4Ñ!4°QÓ!7Ô8Ü˜˜A˜�x ×!1Ñ!1°!Ó!4Ô5Ü˜ (Ð+¨R×-EÑ-EÓ-GÔHà‡M�M�V€MÔÜ˜˜�u˜bŸf™f Q›i×1Ñ1°!Ó4Ô5Ü˜˜�u˜b×.Ñ.¨qÓ1Ô2Ü˜�z 2×#;Ñ#;Ó#=Ô>à‡M�M�V€MÔÜ˜�t˜RŸV™V A›Y×0Ñ0°Ó3Ô4Ü˜�t˜R×-Ñ-¨aÓ0Ô1Ü�r˜2×3Ñ3Ó5Ô6ð ‡M�M�U€MÔÜ˜˜�u˜bŸf™f Q›i×1Ñ1°!Ó4Ô5ô 
�~¨¨e }Ð5Ó	6€BÜ˜˜�u˜bŸf™f Q›i×1Ñ1°!Ó4Ô5Ü˜˜�u˜b×.Ñ.¨qÓ1Ô2Ü˜�z 2×#;Ñ#;Ó#=Õ>rA   c                  ó
  — t        d«      } t        d«      }d„ | _        d„ |_        t        j                  dgg«      }t	        d| fd|fg«      }t        ddgg|j                  |«      j                  |«      «       t        ddgg|j                  |«      «       t        dd	g|j                  «       «       |j                  d
¬«       t        ddgg|j                  |«      j                  |«      «       t        ddgg|j                  |«      «       t        dd	g|j                  dg«      «       |j                  d
¬«       t        ddgg|j                  |«      j                  |«      «       t        ddgg|j                  |«      «       t        ddg|j                  dg«      «       |j                  |¬«       t        ddgg|j                  |«      j                  |«      «       t        ddgg|j                  |«      «       t        dd	g|j                  dg«      «       t	        dd|fg«      }t        ddgg|j                  |«      j                  |«      «       t        ddgg|j                  |«      «       t        dd	g|j                  dg«      «       t        j                  }|j                  d   }t        ddd¬«      }t	        dd|fg«      }t        ||j                  |«      j                  |«      dd…d|…f   «       t        ||j                  |«      dd…d|…f   «       t        g d¢|j                  g d¢«      «       |j                  d
¬«       |j                  |«      j                  |«      }t        |t        j                  ||g«      «       |j                  |«      }t        |t        j                  ||g«      «       t        g d¢|j                  g d¢«      «       |j                  |¬«       t        ||j                  |«      j                  |«      dd…| d…f   «       t        ||j                  |«      dd…| d…f   «       t        g d¢|j                  g d¢«      «       t	        dd|fgd
di¬«      }t        |dz  |j                  |«      j                  |«      dd…d|…f   «       t        |dz  |j                  |«      dd…d|…f   «       t        g d¢|j                  g d¢«      «       y)z@Check the behaviour of setting a transformer to `"passthrough"`.rÍ   rÞ   c                 ó   — dgS rð  rG   rí  s    r?   rY  z4test_set_feature_union_passthrough.<locals>.<lambda>}  rî  rA   c                 ó   — dgS rë  rG   rí  s    r?   rY  z4test_set_feature_union_passthrough.<locals>.<lambda>~  rî  rA   r|   r“  r•  rô  rõ  rÐ   r§  Ú
m2__myfeatÚmyfeatr£  Ú
m3__myfeat)r“  rÐ   r	  r   rÅ  r­  rõ   N)Úpassthrough__f0Úpassthrough__f1Úpassthrough__f2Úpassthrough__f3r_  r`  )Úf0Úf1Úf2Úf3)rõ   )r  r  r  r  Úpca__f0Úpca__f1Úpca__f2Úpca__f3)rÐ   )Úpassthrough__pca0Úpassthrough__pca1r  r  r  r  rO  )rk   rZ  rw   rx   r    r3   rN   r]   rü   rW   rÈ   rÉ   rû   r   Úhstack)r�  r—  rL   rà  Úcolumnsrõ   ÚX_fts          r?   Ú"test_set_feature_union_passthroughr  v  s‡  € ä�‹G€EÜ�‹G€Eñ #@€EÔÙ"?€EÔä
�
‰
�Q�C�5Ó€Aä	˜˜e�} t¨U mÐ4Ó	5€BÜ˜˜A˜�x §¡¨£×!4Ñ!4°QÓ!7Ô8Ü˜˜A˜�x ×!1Ñ!1°!Ó!4Ô5Ü˜ (Ð+¨R×-EÑ-EÓ-GÔHà‡M�M�]€MÔ#Ü˜˜A˜�x §¡¨£×!4Ñ!4°QÓ!7Ô8Ü˜˜A˜�x ×!1Ñ!1°!Ó!4Ô5Ü˜ hÐ/°×1IÑ1IÈ8È*Ó1UÔVà‡M�M�]€MÔ#Ü˜˜A˜�x §¡¨£×!4Ñ!4°QÓ!7Ô8Ü˜˜A˜�x ×!1Ñ!1°!Ó!4Ô5ÜØ	�|Ð$ b×&>Ñ&>À¸zÓ&Jôð
 ‡M�M�U€MÔÜ˜˜A˜�x §¡¨£×!4Ñ!4°QÓ!7Ô8Ü˜˜A˜�x ×!1Ñ!1°!Ó!4Ô5Ü˜ hÐ/°×1IÑ1IÈ8È*Ó1UÔVô 
Ð,¨t°U¨mÐ<Ó	=€BÜ˜˜A˜�x §¡¨£×!4Ñ!4°QÓ!7Ô8Ü˜˜A˜�x ×!1Ñ!1°!Ó!4Ô5Ü˜ hÐ/°×1IÑ1IÈ8È*Ó1UÔVä�	‰	€AØ�g‰g�a‰j€GÜ
˜1¨ÀAÔ
F€Cä	Ð5¸¸s°|ÐDÓ	E€BÜ�q˜"Ÿ&™& ›)×-Ñ-¨aÓ0²°H°W°H°Ñ=Ô>Ü�q˜"×*Ñ*¨1Ó-ªa°°'°¨kÑ:Ô;Üò	
ð 	× Ñ Ò!9Ó:ô
ð ‡M�M�m€MÔ$Ø�6‰6�!‹9×Ñ˜qÓ!€DÜ�tœRŸY™Y¨¨1 vÓ.Ô/Ø×Ñ˜AÓ€DÜ�tœRŸY™Y¨¨1 vÓ.Ô/Üò		
ð 	× Ñ Ò!9Ó:ôð ‡M�M˜c€MÔ"Ü�q˜"Ÿ&™& ›)×-Ñ-¨aÓ0²°W°H±I°Ñ>Ô?Ü�q˜"×*Ñ*¨1Ó-ªa°'°±¨lÑ;Ô<Üò	
ð 	× Ñ Ò!9Ó:ô
ô 
Ø	'¨%°¨Ð6Ø*¨AÐ.ô
€Bô �q˜1‘u˜bŸf™f Q›i×1Ñ1°!Ó4²Q¸¸¸°[ÑAÔBÜ�q˜1‘u˜b×.Ñ.¨qÓ1²!°X°g°X°+Ñ>Ô?Üò	
ð 	× Ñ Ò!9Ó:õ
rA   c                  ó¸   — t         j                  } t        ddd¬«      }t        d|fdg«      }|j	                  | «       t        g d¢|j                  «       «       y)	zDCheck feature_names_out for verbose_feature_names_out=True (default)rÍ   r	  r   rÅ  rõ   r­  )r_  r`  Úpassthrough__x0Úpassthrough__x1Úpassthrough__x2Úpassthrough__x3N©rÈ   rÉ   r   r    rN   r3   rZ  ©rL   rõ   rà  s      r?   Ú9test_feature_union_passthrough_get_feature_names_out_truer  ç  sS   € ä�	‰	€AÜ
˜1¨ÀAÔ
F€Cä	˜˜s�|Ð%CÐDÓ	E€BØ‡F�Fˆ1„IÜò	
ð 	× Ñ Ó"õ
rA   c                  ó¼   — t         j                  } t        ddd¬«      }t        d|fdgd¬«      }|j	                  | «       t        g d	¢|j                  «       «       y
)z;Check feature_names_out for verbose_feature_names_out=FalserÍ   r	  r   rÅ  rõ   r­  Fr]  )Úpca0Úpca1Úx0Úx1rñ  rì  Nr  r  s      r?   Ú:test_feature_union_passthrough_get_feature_names_out_falser$  û  s[   € ä�	‰	€AÜ
˜1¨ÀAÔ
F€Cä	Ø
�ˆÐ5Ð6ÐRWô
€Bð ‡F�Fˆ1„IÜò	
ð 	× Ñ Ó"õ
rA   c                  ó„  — t        j                  d«      } | j                  ddgddggddg¬«      }t        d„ d	„ ¬
«      }t	        dt        «       fd|fgd¬«      }|j                  |«       t        j                  d«      }t        j                  t        |¬«      5  |j                  «        ddd«       y# 1 sw Y   yxY w)zFCheck get_feature_names_out and non-verbose names and colliding names.Úpandasr|   rÍ   rÞ   r<   r=   ©r  c                 ó   — | dg   S rT   rG   ©rL   s    r?   rY  zStest_feature_union_passthrough_get_feature_names_out_false_errors.<locals>.<lambda>  s
   € �!�S�E’(rA   c                 ó.   — t        j                  dg«      S rT   )rw   rx   )r>   r›  s     r?   rY  zStest_feature_union_passthrough_get_feature_names_out_false_errors.<locals>.<lambda>  s   € ¼b¿j¹jÈ#ÈÔ>OrA   )Úfeature_names_outr²  r³  Fr]  zvOutput feature names: ['a'] are not unique. Please set verbose_feature_names_out=True to add prefixes to feature namesr©   N)r´   ÚimportorskipÚ	DataFramer$   r    r%   rN   r»   r¼   rµ   r½   rZ  )ÚpdrL   Úselect_arf  rÀ   s        r?   ÚAtest_feature_union_passthrough_get_feature_names_out_false_errorsr0    s²   € ä	×	Ñ	˜XÓ	&€BØ
�‰�q˜!�f˜q !˜fÐ%°°S¨zˆÓ:€Aä"ÙÑ.Oô€Hô Ø
”Ó Ð	! D¨(Ð#3Ð4Ø"'ô€Eð 
‡I�Iˆa„Lä
�)‰)ð	Uó€Cô
 
�‰”z¨Ö	-Ø×#Ñ#Ô%÷ 
.×	-Ñ	-ús   ÂB6Â6B?c                  ó¢  — t        j                  d«      } | j                  t        t	        d«      «      gt	        d«      D �cg c]  }d|› �‘Œ	 c}¬«      }t        ddgd¬«      }|j                  |«       t        j                  d	«      }t        j                  t        |¬
«      5  |j                  «        ddd«       yc c}w # 1 sw Y   yxY w)zLCheck get_feature_names_out with non-verbose names and >= 5 colliding names.r&  rN  Úfr'  )r²  rÐ   )r³  rÐ   Fr]  z”Output feature names: ['f0', 'f1', 'f2', 'f3', 'f4', ...] are not unique. Please set verbose_feature_names_out=True to add prefixes to feature namesr©   N)r´   r,  r-  rz  rT  r    rN   r»   r¼   rµ   r½   rZ  )r.  rV  rL   rf  rÀ   s        r?   ÚPtest_feature_union_passthrough_get_feature_names_out_false_errors_overlap_over_5r3  (  s±   € ä	×	Ñ	˜XÓ	&€BØ
�‰”dœ5 ›9“oÐ&Ä%ÈÄ)Ó0LÁ)¸Q°1°Q°C²À)Ñ0LˆÓM€AäØ	Ð 5Ð6Ø"'ô€Eð
 
‡I�Iˆa„Lä
�)‰)ð	ó€Cô 
�‰”z¨Ö	-Ø×#Ñ#Ô%÷ 
.Ð	-ùò 1M÷ 
.Ð	-ús   ÁC 
Â&CÃCc                  óp  — d} d}d}dt        d«      fdt        d«      fg}dt        d«      fdt        d«      fg}t        d	ft        d
ffD �]ª  \  }}dt        d«      f|t        d«      fg}|| f||f|||z  ffD �]x  \  }}	t        j                  t
        |	¬«      5   |di ||i¤Žj                  dggdg«       d d d «        |di |dt        d«      fgi¤Ž}
t        |
||«       t        j                  t
        |	¬«      5  |
j                  dggdg«       d d d «       t        j                  t
        |	¬«      5  |
j                  dggdg«       d d d «        |di |dt        d«      fgi¤Ž}
 |
j                  di ||i¤Ž t        j                  t
        |	¬«      5  |
j                  dggdg«       d d d «       t        j                  t
        |	¬«      5  |
j                  dggdg«       d d d «       �Œ{ �Œ­ y # 1 sw Y   �ŒBxY w# 1 sw Y   ŒòxY w# 1 sw Y   ŒÅxY w# 1 sw Y   ŒnxY w# 1 sw Y   �Œ»xY w)Nz3Estimator names must not contain __: got \['a__q'\]z+Names provided are not unique: \['a', 'a'\]z=Estimator names conflict with constructor arguments: \['%s'\]Úa__qrÍ   r=   rÞ   r<   ry  r:  r©   r|   rG   )
rk   r!   r    r´   rµ   r½   rN   Úsetattrrü   rW   )Úerror_message_1Úerror_message_2Úerror_message_3Ú
bad_steps1Ú
bad_steps2rå   ÚparamÚ
bad_steps3Ú	bad_stepsÚmessager¹  s              r?   Útest_step_name_validationr@  >  s  € ØL€OØD€OØV€OØœ4 ›7Ð# c¬4°«7 ^Ð4€JØœ˜Q›�. 3¬¨Q« .Ð1€JÜ  'Ð*¬\Ð;MÐ,NÔO‰
ˆˆUàœD ›G�n u¬d°1«gÐ&6Ð7ˆ
à˜Ð)Ø˜Ð)Ø˜¨5Ñ0Ð1ô#
ÑˆI�wô —‘œz°Ö9ÙÑ)�u˜iÐ(Ñ)×-Ñ-°¨s¨e°a°SÔ9÷ :ñ Ñ2˜ #¤t¨A£w Ð 0Ð1Ñ2ˆCÜ�C˜ 	Ô*Ü—‘œz°Ö9Ø—‘˜!˜˜ ˜sÔ#÷ :ô —‘œz°Ö9Ø×!Ñ! A 3 %¨!¨Ô-÷ :ñ Ñ2˜ #¤t¨A£w Ð 0Ð1Ñ2ˆCØˆC�N‰NÑ0˜e YÐ/Ò0Ü—‘œz°Ö9Ø—‘˜!˜˜ ˜sÔ#÷ :ô —‘œz°Ö9Ø×!Ñ! A 3 %¨!¨Ô-÷ :Ñ9ò3#
ñ P÷ :Ñ9ú÷ :Ð9ú÷ :Ð9ú÷ :Ð9ú÷ :Ñ9ús<   ÂG:Ä HÄ9HÆHÇH+Ç:HÈHÈHÈH(È+H5c                  óº   — t        dt        dt        «       fg«      fg«      } | j                  dt        «       ¬«       | j                  dt	        «       fgd¬«       y )Nr<   r=   gü©ñÒMbP?)Úa__b__alphaÚa__br’  )Úa__stepsÚa__b__C)r!   r   rW   r   r   )Ú	estimators    r?   Útest_set_params_nested_pipelinerG  d  sX   € Ü˜3¤¨3´Ó0@Ð*AÐ)BÓ CÐDÐEÓF€IØ×Ñ U´³ÐÔ9Ø×Ñ CÔ);Ó)=Ð#>Ð"?ÈÐÕKrA   c                  ón  — t         j                  } t         j                  }t        «       }	 t	        j
                  |d¬«      }t        d¬«      }t        «       }t        dt        |«      fd|fg«      }t        d|fd|fg|¬«      }|j                  | |«       |j                  | |«       |j                  d   j                  }t        |j                  | «      |j                  | «      «       t        |j                  | «      |j                  | «      «       t        |j!                  | «      |j!                  | «      «       t        |j#                  | |«      |j#                  | |«      «       t        |j                  d   j$                  |j                  d   j$                  «       t'        |d«      rJ ‚|j                  | |«       t        |j                  | «      |j                  | «      «       t        |j                  | «      |j                  | «      «       t        |j!                  | «      |j!                  | «      «       t        |j#                  | |«      |j#                  | |«      «       t        |j                  d   j$                  |j                  d   j$                  «       ||j                  d   j                  k(  sJ ‚t        d¬«      }	t        «       }
t        d	|
fd|	fg|¬«      }|j                  | |«       t        |j                  | «      |j                  | «      «       t        |j                  | «      |j                  | «      «       t        |j!                  | «      |j!                  | «      «       t        |j#                  | |«      |j#                  | |«      «       t        |j                  d   j$                  |j                  d	   j$                  «       ||j                  d	   j                  k(  sJ ‚	 t)        j*                  |«       y # t)        j*                  |«       w xY w)
NrN  ©Úlocationrx  r   ræ  rÎ   Úlogreg©rw  r™   Útransf_2)rÈ   rÉ   rÊ   r   ÚjoblibÚMemoryr   r–   r!   r   rN   r¹   r›   r3   r€   r„   r…   rƒ   r™   r®  ÚshutilÚrmtree)rL   rM   Úcachedirrw  r¨   rÎ   rÁ   Úcached_pipeÚtsÚclf_2rM  Úcached_pipe_2s               r?   Útest_pipeline_memoryrW  j  s~  € Ü�	‰	€AÜ�‰€AÜ‹y€Hð8 Ü—‘¨¸"Ô=ˆä ¨aÔ0ˆÜ“ˆÜ˜(¤E¨&£MÐ2°X¸s°OÐDÓEˆÜ ¨6Ð 2°X¸s°OÐDÈVÔTˆð 	�‰˜˜1ÔØ�‰��AŒà×$Ñ$ XÑ.×9Ñ9ˆä˜4Ÿ<™<¨›?¨K×,?Ñ,?ÀÓ,BÔCÜ˜4×-Ñ-¨aÓ0°+×2KÑ2KÈAÓ2NÔOÜ˜4×1Ñ1°!Ó4°k×6SÑ6SÐTUÓ6VÔWÜ˜4Ÿ:™: a¨Ó+¨[×->Ñ->¸qÀ!Ó-DÔEÜØ×Ñ˜XÑ&×-Ñ-¨{×/FÑ/FÀxÑ/P×/WÑ/Wô	
ô ˜6 8Ô,Ð,Ð,ð 	�‰˜˜1Ôä˜4Ÿ<™<¨›?¨K×,?Ñ,?ÀÓ,BÔCÜ˜4×-Ñ-¨aÓ0°+×2KÑ2KÈAÓ2NÔOÜ˜4×1Ñ1°!Ó4°k×6SÑ6SÐTUÓ6VÔWÜ˜4Ÿ:™: a¨Ó+¨[×->Ñ->¸qÀ!Ó-DÔEÜØ×Ñ˜XÑ&×-Ñ-¨{×/FÑ/FÀxÑ/P×/WÑ/Wô	
ð �[×,Ñ,¨XÑ6×AÑAÒAÐAÐAô #°Ô2ˆÜ“=ˆÜ Ø˜(Ð# h°Ð%6Ð7Àô
ˆð 	×Ñ˜!˜QÔô 	˜4Ÿ<™<¨›?¨M×,AÑ,AÀ!Ó,DÔEÜ˜4×-Ñ-¨aÓ0°-×2MÑ2MÈaÓ2PÔQÜØ×"Ñ" 1Ó% }×'FÑ'FÀqÓ'Iô	
ô 	˜4Ÿ:™: a¨Ó+¨]×-@Ñ-@ÀÀAÓ-FÔGÜØ×Ñ˜XÑ&×-Ñ-Ø×%Ñ% jÑ1×8Ñ8ô	
ð �]×.Ñ.¨zÑ:×EÑEÒEÐEÑEä�‰�hÕøŒ�‰�hÕús   ¬OP ÐP4c                  ó@  — t        «       } t        j                  | d¬«      }t        t	        «       t        «       |¬«      }|j                  |u sJ ‚t        t	        «       t        «       «      }|j                  �J ‚t        |«      dk(  sJ ‚t        j                  | «       y )NrN  rI  rL  rÍ   )
r   rN  rO  r"   r–   r&   rw  r  rP  rQ  )rR  rw  r¿   s      r?   Útest_make_pipeline_memoryrY  ©  s{   € Ü‹y€HÜ�]‰] H°bÔ9€FÜœ[›]¬C«E¸&ÔA€HØ�?‰?˜fÑ$Ð$Ð$Üœ[›]¬C«EÓ2€HØ�?‰?Ð"Ð"Ð"Üˆx‹=˜AÒÐÐä
‡M�M�(ÕrA   c                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚFeatureNameSaverNc                 ó"   — t        | |d¬«       | S )NT)Úreset)r5   rK   s      r?   rN   zFeatureNameSaver.fit¶  s   € Ü˜T 1¨DÕ1ØˆrA   c                 ó   — |S r:   rG   rK   s      r?   r]   zFeatureNameSaver.transformº  r^   rA   c                 ó   — |S r:   rG   )r>   rU  s     r?   rZ  z&FeatureNameSaver.get_feature_names_out½  s   € ØÐrA   r:   )rC   rD   rE   rN   r]   rZ  rG   rA   r?   r[  r[  µ  s   „ óóôrA   r[  c                  ó  — t        dt        «       fddt        «       fg¬«      } t        «       }| j	                  |j
                  |j                  «       t        | dd j                  |j                  «      |j                  «       y)z5Check pipeline.get_feature_names_out with passthroughrH  ©ÚpassrÐ   r¨   r‰  Nr2  )
r!   r[  r   r   rN   rÉ   rÊ   r3   rZ  rá  )rÁ   rÈ   s     r?   Útest_features_names_passthroughrc  Á  su   € äàÔ&Ó(Ð)Ø#ØÔ&Ó(Ð)ð
ô€Dô ‹;€DØ‡H�HˆT�Y‰Y˜Ÿ™Ô$ÜØˆSˆbˆ	×'Ñ'¨×(:Ñ(:Ó;¸T×=OÑ=OõrA   c                  ó&  — t        dt        «       fdt        «       fg¬«      } t        D �cg c]  }d|v ‘Œ }}| j	                  t        |«       t        | dd j                  «       g d¢«       t        | dd j                  d«      g d¢«       yc c}w )	z5Check pipeline.get_feature_names_out with vectorizersÚvectr¨   r‰  ÚpizzaNr2  )ÚbeerÚburgerÚcokeÚ	copyrightrf  ÚtheÚnonsense_is_ignored)r!   r   r   rÑ  rN   r3   rZ  )rÁ   rÅ   rM   s      r?   Ú#test_feature_names_count_vectorizerrm  Ñ  sŒ   € ä˜F¤OÓ$5Ð6¸Ô@RÓ@TÐ8UÐVÔW€DÝ-Ó.™~˜!ˆ�AŠ˜~€AÐ.Ø‡H�HŒ^˜QÔÜØˆSˆbˆ	×'Ñ'Ó)Ú?ôô ØˆSˆbˆ	×'Ñ'Ð(=Ó>Ú?õùò 	/s   «Bc                  ó  — t        dt        «       fg¬«      } t        «       }| j                  |j                  |j
                  «       d}t        j                  t        |¬«      5  | j                  «        ddd«       y# 1 sw Y   yxY w)zZCheck that error is raised when a transformer does not define
    `get_feature_names_out`.Únotransr‰  z&does not provide get_feature_names_outr©   N)
r!   rI   r   rN   rÉ   rÊ   r´   rµ   rÿ   rZ  )rÁ   rÈ   rÀ   s      r?   Ú8test_pipeline_feature_names_out_error_without_definitionrp  à  s`   € ô ˜I¤w£yÐ1Ð2Ô3€DÜ‹;€DØ‡H�HˆT�Y‰Y˜Ÿ™Ô$à
2€CÜ	�‰”~¨SÖ	1Ø×"Ñ"Ô$÷ 
2×	1Ñ	1ús   Á%A?Á?Bc                  óÂ   — t        t        «       «      } t        j                  t        d¬«      5  | j                  dgdggddgddg¬«       d d d «       y # 1 sw Y   y xY w)Nz8Pipeline.fit does not accept the sample_weight parameterr©   r   r|   rß   )r"   r   r´   rµ   r½   rN   )r¨   s    r?   Útest_pipeline_param_errorrr  ì  sV   € Ü
Ô*Ó,Ó
-€CÜ	�‰ÜÐTö
ð 	�‰�!��q�c�
˜Q ˜F°1°a°&ˆÔ9÷
÷ 
ñ 
ús   ¯AÁAc              #   ó¬   K  — | ]L  \  \  }}}t        ||«      r8|d k(  r,t        |d«      r t        |j                  d   d   t        «      s|||f–— ŒN y­w)rü   ry  r2  r|   N)r®  r   ry  rˆ   )Ú.0r¹  Úpatternr,  s       r?   Ú	<genexpr>rv  ô  sc   è ø€ ð <ñ3#Ñ‰ˆˆg˜ôh ˆs�FÔà�/Ò!Ü�C˜Ô!Ü�s—y‘y ‘} QÑ'¬Ô3ðs 	ˆ'�6Ôñ3#ùs   ‚AArÎ   r¨   zv\[Pipeline\].*\(step 1 of 2\) Processing transf.* total=.*\n\[Pipeline\].*\(step 2 of 2\) Processing clf.* total=.*\n$)ÚnoopNz°\[Pipeline\].*\(step 1 of 3\) Processing transf.* total=.*\n\[Pipeline\].*\(step 2 of 3\) Processing noop.* total=.*\n\[Pipeline\].*\(step 3 of 3\) Processing clf.* total=.*\n$)rw  rÐ   )r¨   N)rÎ   Nrn   zw\[Pipeline\].*\(step 1 of 2\) Processing transf.* total=.*\n\[Pipeline\].*\(step 2 of 2\) Processing mult.* total=.*\n$)rÎ   rÐ   Úmult1r�  z\[FeatureUnion\].*\(step 1 of 2\) Processing mult1.* total=.*\n\[FeatureUnion\].*\(step 2 of 2\) Processing mult2.* total=.*\n$)rx  rý  )r—  rý  z@\[FeatureUnion\].*\(step 1 of 1\) Processing mult2.* total=.*\n$)rN   rü   r’   zest, pattern, methodc                 óF  — t        | |«      }g d¢g d¢g}dgdgg}| j                  d¬«        |||«       |j                  «       j                  rJ d«       ‚| j                  d¬«        |||«       t	        j
                  ||j                  «       j                  «      sJ ‚y )	N©r|   rÍ   rÞ   )r4  r’  r¨  rÆ  rà   F)rx  zGot output for verbose=FalseT)r#  rW   Ú
readouterrÚoutr»   rª   )r¹  r,  ru  ÚcapsysÚfuncrL   rM   s          r?   Útest_verboser  3  s”   € ä�3˜Ó€Dâ	’IÐ€AØ
ˆˆqˆcˆ
€Aà‡N�N˜5€NÔ!ÙˆˆA„JØ× Ñ Ó"×&Ò&ÐFÐ(FÓFÐ&à‡N�N˜4€NÔ ÙˆˆA„JÜ�8‰8�G˜V×.Ñ.Ó0×4Ñ4Ô5Ð5Ñ5rA   c                  ó²  — ddgddgddgg} g d¢}t        «       }t        «       }t        ||«      }t        |d«      rJ ‚|j	                  | |«       |j
                  |j
                  cxk(  rdk(  sJ ‚ J ‚t        «       }t        «       }t        ||«      }|j	                  | |«       |j
                  |j
                  cxk(  rdk(  sJ ‚ J ‚t        |d«      rJ ‚y ©	Nr|   rÍ   rÞ   r4  r’  r¨  ©r   r|   rÍ   Ún_features_in_)r%   r   r"   r®  rN   rƒ  )rL   rM   ÚssÚgbdtrÁ   s        r?   Útest_n_features_in_pipeliner†  C  sä   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€Aä	Ó	€BÜ)Ó+€DÜ˜˜TÓ"€DÜ�tÐ-Ô.Ð.Ð.Ø‡H�HˆQ�„NØ×Ñ "×"3Ñ"3Ô8°qÒ8Ð8Ñ8Ð8Ð8ô 
Ó	€BÜ)Ó+€DÜ˜˜TÓ"€DØ‡F�Fˆ1ˆa„LØ×Ñ "×"3Ñ"3Ô8°qÒ8Ð8Ñ8Ð8Ð8Ü�tÐ-Ô.Ð.Ð.Ð.rA   c                  ój  — ddgddgddgg} g d¢}t        «       }t        |«      }t        |d«      rJ ‚|j                  | |«       |j                  |j                  cxk(  rdk(  sJ ‚ J ‚t        «       }t        |«      }|j                  | |«       |j                  |j                  cxk(  rdk(  sJ ‚ J ‚y r�  )r%   r#   r®  rN   rƒ  )rL   rM   r„  rG  s       r?   Ú test_n_features_in_feature_unionrˆ  Z  sº   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€Aä	Ó	€BÜ	�B‹€BÜ�rÐ+Ô,Ð,Ð,Ø‡F�Fˆ1ˆa„LØ×Ñ × 1Ñ 1Ô6°QÒ6Ð6Ñ6Ð6Ð6ô 
Ó	€BÜ	�B‹€BØ‡F�Fˆ1ˆa„LØ×Ñ × 1Ñ 1Ô6°QÒ6Ð6Ñ6Ð6Ñ6rA   c                  óò  —  G d„ dt         t        «      } t        j                  t        j                  }}t        d | «       fd | «       fg«      }t        j                  t        «      5  |j                  ||«       d d d «       t        j                  t        «      5  |j                  ||«       d d d «       |j                  ||d¬«       |j                  ||d¬«       y # 1 sw Y   ŒfxY w# 1 sw Y   Œ>xY w)Nc                   ó   — e Zd Zdd„Zdd„Zy)ú7test_feature_union_fit_params.<locals>.DummyTransformerNc                 ó    — |ddik7  rt         ‚| S )Nr<   r   ©r½   rh   s       r?   rN   z;test_feature_union_fit_params.<locals>.DummyTransformer.fitq  s   € Ø˜c 1˜XÒ%Ü Ð ØˆKrA   c                 ó   — |S r:   rG   rK   s      r?   r]   zAtest_feature_union_fit_params.<locals>.DummyTransformer.transformv  ó   € ØˆHrA   r:   ©rC   rD   rE   rN   r]   rG   rA   r?   ÚDummyTransformerr‹  p  s   „ ó	ô
	rA   r‘  Údummy0Údummy1r   rU   )r   r   rÈ   rÉ   rÊ   r    r´   rµ   r½   rN   rü   ©r‘  rL   rM   r±   s       r?   Útest_feature_union_fit_paramsr•  n  s¼   € ôÔ+¬]ô ô �9‰9”d—k‘k€q€AÜ�xÑ!1Ó!3Ð4°xÑAQÓASÐ6TÐUÓV€AÜ	�‰”zÕ	"Ø	�‰ˆa�Œ÷ 
#ô 
�‰”zÕ	"Ø	�‰˜˜1Ô÷ 
#ð ‡E�Eˆ!ˆQ�!€EÔØ‡O�O�A�q˜A€OÕ÷ 
#Ð	"ú÷ 
#Ð	"ús   Á)C!ÂC-Ã!C*Ã-C6c                  óD  —  G d„ dt         «      } t        j                  t        j                  }}t	        d | «       fd | «       fg«      }t        j                  t        «      5  |j                  ||d¬«       d d d «       |j                  ||d¬«       y # 1 sw Y   ŒxY w)Nc                   ó   — e Zd Zdd„Zy)úMtest_feature_union_fit_params_without_fit_transform.<locals>.DummyTransformerNc                 ó    — |ddik7  rt         ‚| S )NÚmetadatar|   r�  rh   s       r?   rN   zQtest_feature_union_fit_params_without_fit_transform.<locals>.DummyTransformer.fitŠ  s   € Ø˜j¨!˜_Ò,Ü Ð ØˆKrA   r:   ri   rG   rA   r?   r‘  r˜  ‰  s   „ ô	rA   r‘  Únofittransform0Únofittransform1r   )rš  r|   )	r'   rÈ   rÉ   rÊ   r    r´   rµ   r½   rü   r”  s       r?   Ú3test_feature_union_fit_params_without_fit_transformr�  …  s‹   € ôÔ=ô ô �9‰9”d—k‘k€q€AÜàÑ 0Ó 2Ð3ØÑ 0Ó 2Ð3ð	
ó	€Aô 
�‰”zÕ	"Ø	�‰˜˜1 qˆÔ)÷ 
#ð ‡O�O�A�q 1€OÕ%÷ 
#Ð	"ús   Á$BÂBc                  ó®  — t         j                  j                  «       t         j                  j                  «       }} t        j
                  j                  ddg| j                  ddg¬«      j                  t        «      }t        j                  | |<   t        t        «       t        «       «      }|j                  | |«      j                  | |«      dkD  sJ ‚y )Nr|   r   r¯   gÍÌÌÌÌÌì?)Úpgš™™™™™Ù?)rÈ   rÉ   r7  rÊ   rw   ÚrandomÚchoicerû   ÚastypeÚboolÚnanr"   r   r   rN   rƒ   )rL   rM   ÚmaskrÁ   s       r?   Ú%test_pipeline_missing_values_leniencyr¦  �  s›   € ô �9‰9�>‰>ÓœTŸ[™[×-Ñ-Ó/€q€AÜ�9‰9×Ñ˜Q ˜F A§G¡G°°S¨zÐÓ:×AÑAÄ$ÓG€DÜ�f‰f€A€d�GÜœ›Ô*<Ó*>Ó?€DØ�8‰8�A�q‹>×Ñ  1Ó%¨Ò+Ð+Ñ+rA   c                  óæ   — ddgddgddgg} g d¢}dt        «       fg}d	di}d
}t        ||¬«      }t        j                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr|   rÍ   rÞ   r4  r’  r¨  r‚  rÎ   ÚtransformerzZAttempting to weight transformer "transformer", but it is not present in transformer_list.rO  r©   )r`   r    r´   rµ   r½   rN   )rL   rM   r:  ÚweightsÚexpected_msgrf  s         r?   Ú3test_feature_union_warns_unknown_transformer_weightr«  §  s{   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€Aà!¤6£8Ð,Ð-Ðà˜aÐ €Gð	5ð ô Ð)¸wÔG€EÜ	�‰”z¨Ö	6Ø�	‰	�!�QŒ÷ 
7×	6Ñ	6ús   ÁA'Á'A0c                 óx   — t        | t        «       «      }|j                  «       j                  j                  rJ ‚y r:   )r"   r&   r¿  Ú
input_tagsÚpairwise)rÐ   rÁ   s     r?   Útest_pipeline_get_tags_noner¯  ¹  s3   € ô ˜¤c£eÓ,€DØ×$Ñ$Ó&×1Ñ1×:Ò:Ð:Ð:Ð:rA   Ú	Predictorc                 ó\  — t         j                  j                  d«      }|j                  dd«      t        j                  dgdz  dgdz  z   «      }}t        dt        «       fd | «       fg«      }|j                  ||«       |j                  |«      }t        |«      rAt        |d«       |j                  ||«      t        j                  t        ||«      «      k(  sJ ‚y t        ||j!                  «       «       |j                  ||«      t        j                  t#        ||«      «      k(  sJ ‚y )	Nr   é   rÍ   r’  r|   é   r¨  Ú	predictor)rw   r   ÚRandomStateÚrandnrÑ   r!   r0   rN   r€   r	   r3   rƒ   r´   Úapproxr   r1   r˜   r   )r°  ÚrngrL   rM   ÚmodelÚy_preds         r?   Ú1test_search_cv_using_minimal_compatible_estimatorr»  Å  sù   € ô �)‰)×
Ñ
 Ó
"€CØ�9‰9�R˜ÓœRŸX™X q c¨A¡g°°°b±Ñ&8Ó9€q€AäØ
Ô+Ó-Ð	.°¹i»kÐ0JÐKó€Eð 
‡I�Iˆa�„Oà�]‰]˜1Ó€FÜ�UÔÜ˜6 1Ô%Ø�{‰{˜1˜aÓ ¤F§M¡M´.ÀÀFÓ2KÓ$LÒLÐLÑLä˜ §¡£Ô)Ø�{‰{˜1˜aÓ ¤F§M¡M´(¸1¸fÓ2EÓ$FÒFÐFÑFrA   c                  ó,  —  G d„ dt         «      } t        d | «       fg«      }t        j                  t        «      5  t        |«       d d d «       |j                  t        j                  t        j                  «       t        |«       y # 1 sw Y   ŒCxY w)Nc                   ó   — e Zd Zd„ Zy)ú0test_pipeline_check_if_fitted.<locals>.Estimatorc                 ó   — d| _         | S rp   ©r�   rK   s      r?   rN   z4test_pipeline_check_if_fitted.<locals>.Estimator.fitÜ  ó   € ØˆDŒLØˆKrA   Nri   rG   rA   r?   Ú	Estimatorr¾  Û  s   „ ó	rA   rÂ  r¨   )
r   r!   r´   rµ   r   r6   rN   rÈ   rÉ   rÊ   )rÂ  r¿   s     r?   Útest_pipeline_check_if_fittedrÃ  Ú  sd   € ô”Mô ô
 ˜%¡£Ð-Ð.Ó/€HÜ	�‰”~Õ	&Ü˜Ô!÷ 
'à‡L�L”—‘œDŸK™KÔ(Ü�HÕ÷ 
'Ð	&ús   ¼B
Â
Bc                  ó  — ddgddgddgg} g d¢}t        dt        «       fg«      }t        j                  t        «      5  t        |«       d	d	d	«       |j                  | |«       t        |«       t        d
g«      }t        |«       t        dt        «       fd
g«      }t        j                  t        «      5  t        |«       d	d	d	«       |j                  | |«       t        |«       y	# 1 sw Y   ŒŸxY w# 1 sw Y   Œ3xY w)z1Check __sklearn_is_fitted__ is defined correctly.r|   rÍ   rÞ   r4  r’  r¨  r‚  r¨   Nra  )r    r0   r´   rµ   r   r6   rN   )rL   rM   rf  s      r?   Ú"test_feature_union_check_if_fittedrÅ  ç  sÚ   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€Aä˜5Ô"4Ó"6Ð7Ð8Ó9€EÜ	�‰”~Õ	&Ü˜Ô÷ 
'ð 
‡I�Iˆa�„OÜ�EÔô Ð1Ð2Ó3€EÜ�EÔä˜5Ô"4Ó"6Ð7Ð9PÐQÓR€EÜ	�‰”~Õ	&Ü˜Ô÷ 
'ð 
‡I�Iˆa�„OÜ�EÕ÷ 
'Ð	&ú÷ 
'Ð	&ús   ¿C)Â7C5Ã)C2Ã5C>c                  ó>  — t         j                  t         j                  }}  G d„ dt        «      }t	         |«       t        «       «      }|j                  | |«       t         j                  }|j                  |«      }t        ||D �cg c]  }d|› �‘Œ	 c}«       yc c}w )zRCheck that pipeline passes names through.

    Non-regresion test for #21349.
    c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )úYtest_pipeline_get_feature_names_out_passes_names_through.<locals>.AddPrefixStandardScalarc                 ó†   •— t         ‰| �  |¬«      }t        j                  |D �cg c]  }d|› �‘Œ	 c}t        ¬«      S c c}w )Nrí  Ú
my_prefix_)Údtype)ÚsuperrZ  rw   rx   Úobject)r>   rU  rH  rš  Ú	__class__s       €r?   rZ  zotest_pipeline_get_feature_names_out_passes_names_through.<locals>.AddPrefixStandardScalar.get_feature_names_out  s?   ø€ Ü‘GÑ1ÀÐ1ÓPˆEÜ—:‘:¹uÓE¹u°t ¨D¨6Ò2¸uÑEÌVÔTÐTùÒEs   ¥>r:   )rC   rD   rE   rZ  Ú__classcell__)rÎ  s   @r?   ÚAddPrefixStandardScalarrÈ    s   ø„ ÷	Uñ 	UrA   rÐ  rÊ  N)	rÈ   rÉ   rÊ   r%   r"   rN   rá  rZ  r3   )rL   rM   rÐ  rÁ   Úinput_namesr+  rš  s          r?   Ú8test_pipeline_get_feature_names_out_passes_names_throughrÒ     s…   € ô
 �9‰9”d—k‘k€q€AôU¤.ô Uô
 Ñ0Ó2´NÓ4DÓE€DØ‡H�HˆQ�„Nä×$Ñ$€KØ×2Ñ2°;Ó?ÐäÐ(É;Ó*WÉ;À4¨Z¸°vÒ+>È;Ñ*WÕXùÒ*Ws   ÂB
c                  ó*  — t        j                  d«       t        dd¬«      \  } }t        t	        «       t        «       «      }|j                  d¬«       |j                  | |«       |dd j                  «       }|d   j                  }t        ||«       y)z.Test pipeline's set_output with feature names.r&  T©Úas_frameÚ
return_X_y©r]   Nr2  )r´   r,  r   r"   r%   r   Ú
set_outputrN   rZ  Úfeature_names_in_r3   )rL   rM   rÁ   rÙ  Úlog_reg_feature_namess        r?   Ú$test_pipeline_set_output_integrationrÛ    s   € ä
×Ñ˜Ô!ä˜d¨tÔ4�D€A€qäœÓ)Ô+=Ó+?Ó@€DØ‡O�O˜h€OÔ'Ø‡H�HˆQ�„Nà˜S˜b˜	×7Ñ7Ó9ÐØ  ™H×6Ñ6ÐäÐ(Ð*?Õ@rA   c                  óÐ  — t        j                  d«      } t        dd¬«      \  }}t        |d¬«      \  }}t	        dt        «       fdt        «       fg«      }|j                  d¬«       |j                  |«       |j                  |«      }t        || j                  «      sJ ‚t        |j                  |j                  «       «       t        |j                  |j                  «       y	)
z'Test feature union with set_output API.r&  TrÔ  r   ræ  Úscalarrõ   r×  N)r´   r,  r   r   r    r%   r   rØ  rN   r]   r   r-  r3   r  rZ  Úindex)r.  rL   r›  ÚX_trainÚX_testrf  rj  s          r?   Útest_feature_union_set_outputrá  %  s·   € ä	×	Ñ	˜XÓ	&€Bä˜d¨tÔ4�D€A€qÜ& q°qÔ9�O€GˆVÜ˜8¤^Ó%5Ð6¸ÄÃ¸ÐGÓH€EØ	×Ñ˜xÐÔ(Ø	‡I�IˆgÔà�o‰o˜fÓ%€GÜ�g˜rŸ|™|Ô,Ð,Ð,Ü�w—‘¨×(CÑ(CÓ(EÔFÜ�w—}‘} f§l¡lÕ3rA   c                  óž   — t        «       } t        «       }t        d| fd|fddg«      }|d   | u sJ ‚|d   |u sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚y	)
z8Check FeatureUnion.__getitem__ returns expected results.rÝ  rõ   ra  )Údrop_merý  rb  rÐ   rã  rý  N)r%   r   r    )rÝ  rõ   rf  s      r?   Útest_feature_union_getitemrä  5  s€   € äÓ€FÜ
‹%€CÜà�vÐØ�CˆLØ#Øð		
ó€Eð �‰?˜fÑ$Ð$Ð$Ø�‰<˜3ÑÐÐØ�‰=˜MÒ)Ð)Ð)Ø�Ñ˜vÒ%Ð%Ñ%rA   ÚkeyrÍ   c                 ó´   — t        dt        «       fdt        «       fg«      }d}t        j                  t
        |¬«      5  ||     ddd«       y# 1 sw Y   yxY w)z5Raise error when __getitem__ gets a non-string input.rÝ  rõ   zOnly string keys are supportedr©   N)r    r%   r   r´   rµ   r…  )rå  rf  rÀ   s      r?   Ú test_feature_union_getitem_errorrç  G  sG   € ô ˜8¤^Ó%5Ð6¸ÄÃ¸ÐGÓH€Eà
*€CÜ	�‰”x sÖ	+ØˆcŠ
÷ 
,×	+Ñ	+ús   ¿AÁAc                  óH  — t        j                  d«       t        dd¬«      \  } }t        «       }|j	                  | «       t        d|fg«      }t        |d«      sJ ‚t        | j                  |j                  «       t        |j                  |j                  «       t        dg«      }|j	                  | «       t        |d«      sJ ‚t        | j                  |j                  «       | j                  «       }t        dg«      }|j	                  |«       t        |d«      rJ ‚y)zxEnsure feature union has `.feature_names_in_` attribute if `X` has a
    `columns` attribute.

    Test for #24754.
    r&  TrÔ  ÚscalerÙ  ra  N)r´   r,  r   r%   rN   r    r®  r3   r  rÙ  Úto_numpy)rL   r›  r  rf  ÚX_arrays        r?   Ú$test_feature_union_feature_names_in_rì  R  sÿ   € ô ×Ñ˜Ô!ä˜d¨tÔ4�D€A€qô Ó€FØ
‡J�Jˆq„MÜ˜7 FÐ+Ð,Ó-€EÜ�5Ð-Ô.Ð.Ð.Ü�q—y‘y %×"9Ñ"9Ô:Ü�v×/Ñ/°×1HÑ1HÔIô Ð1Ð2Ó3€EØ	‡I�Iˆa„LÜ�5Ð-Ô.Ð.Ð.Ü�q—y‘y %×"9Ñ"9Ô:ð �j‰j‹l€GÜÐ1Ð2Ó3€EØ	‡I�IˆgÔÜ�uÐ1Ô2Ð2Ð2Ð2rA   c                  ó  — t        j                  d«      j                  dd«      } t        j                  t
        d¬«      5  t        dt        d„ «      fdt        d	„ «      fg«      j                  | «       d
d
d
«       y
# 1 sw Y   y
xY w)z?Test that FeatureUnion raises error for 1D transformer outputs.r¨  rÞ   rÍ   z@Transformer 'b' returned an array or dataframe with 1 dimensionsr©   r<   c                 ó   — | S r:   rG   r)  s    r?   rY  z.test_feature_union_1d_output.<locals>.<lambda>|  s   € ±ArA   r=   c                 ó   — | d d …df   S rr  rG   r)  s    r?   rY  z.test_feature_union_1d_output.<locals>.<lambda>}  s   € °A²a¸°d²GrA   N)	rw   ÚarangeÚreshaper´   rµ   r½   r    r$   rü   r)  s    r?   Útest_feature_union_1d_outputrò  r  sv   € ä
�	‰	�!‹×Ñ˜Q Ó"€Aä	�‰ÜØPö
ô 	àÔ)©+Ó6Ð7ØÔ)Ñ*;Ó<Ð=ðó	
÷
 ‰-˜Ô
÷
÷ 
ñ 
ús   Á5A?Á?BT)Úenable_metadata_routingr,  rN   rü   c                 óæ  ‡— d„ Šˆfd„}d„ }t        j                  ddgddgg«      }t        j                  ddg«      }t        j                  ddgg«      }t        j                  d	d
gg«      }t        j                  ddgg«      } |«       \  }}	}
}}|j                  |||||¬«        ||	ddg||¬«        ||
ddg«        ||ddg|dz   |¬«        ||| j                  d«      |dz   |¬«       y)zLTest that with transform_input, data is correctly transformed for each step.c                 ó^   — t        | ¬«      j                  ||¬«      j                  ||¬«      S )z$Get a transformer with requests set.©Úregistry©r”   rš  )r(   Úset_fit_requestÚset_transform_request)r÷  r”   rš  s      r?   Úget_transformerz6test_transform_input_pipeline.<locals>.get_transformer‹  s/   € ô !¨(Ô3ß‰_¨=À8ˆ_ÓLß"Ñ"°ÈÐ"ÓRð	
rA   c            
      óÒ   •— t        «       t        «       t        «       t        «       f\  } }}}t         ‰| dd¬«       ‰|dd¬«       ‰|dd¬«       ‰|dd¬«      dg¬«      }|| |||fS )z«Get a pipeline and corresponding registries.

        The pipeline has 4 steps, with different request values set to test different
        cases. One is aliased.
        Trø  FÚother_weightsr”   ©r¦  )r)   r"   )Ú
registry_1Ú
registry_2Ú
registry_3Ú
registry_4rÁ   rû  s        €r?   Úget_pipelinez3test_transform_input_pipeline.<locals>.get_pipeline“  s   ø€ ô ‹KÜ‹KÜ‹KÜ‹Kð	:
Ñ6ˆ
�J 
¨Jô Ù˜J°dÀTÔJÙ˜J°eÀeÔLÙ˜J°dÀTÔJÙ˜J°oÐPTÔUØ,Ð-ô
ˆð �Z ¨Z¸ÐCÐCrA   c                 óF   — | sJ ‚| D ]  }|D ]  }t        |f||dœ|¤Ž Œ Œ y)zACheck that the right metadata was recorded for the given methods.)r,  ÚparentN)r*   )r÷  Úmethodsrš  rF  r,  s        r?   Úcheck_metadataz5test_transform_input_pipeline.<locals>.check_metadata¨  s=   € áˆˆxÛ!ˆIÛ!�Ü'Øðà!Ø!ñð ó	ñ "ñ "rA   r|   rÍ   rÞ   r4  r   r¢  é(   éd   éÈ   )r”   rý  rš  rN   r]   rø  r›  N)rw   rÑ   rN   Úsplit)r,  r  r  rL   rM   r”   rý  rš  rÁ   rÿ  r   r  r  rû  s                @r?   Útest_transform_input_pipeliner  †  s  ø€ ò

ôDò*
ô 	�‰�1�a�&˜1˜a˜&Ð!Ó"€AÜ
�‰�!�Q�Ó€AÜ—H‘H˜q !˜f˜XÓ&€MÜ—H‘H˜r 2˜h˜ZÓ(€MÜ�x‰x˜#˜s˜˜Ó%€Há;G»>Ñ8€Dˆ*�j *¨jØ‡H�HØ	Ø	Ø#Ø#Øð ô ñ Ø�U˜KÐ(¸ÐPXõñ �:  {Ð3Ô4ÙØØ	�ÐØ# aÑ'Øõ	ñ ØØ�‰�SÓØ# aÑ'Øö	rA   c                  ó˜  —  G d„ dt         t        «      }  G d„ dt        t        «      }t        j                  ddgg«      }t        j                  ddg«      }t        j                  ddgg«      }t        j                  ddg«      }t        d | «       fd	 |«       j                  d
d
¬«      fgdg¬«      }|j                  ||||¬«       y)z;Test that the right transformed values are passed to `fit`.c                   ó   — e Zd Zd„ Zd„ Zy)ú>test_transform_input_explicit_value_check.<locals>.Transformerc                 ó   — d| _         | S rp   rÀ  rK   s      r?   rN   zBtest_transform_input_explicit_value_check.<locals>.Transformer.fitÚ  rÁ  rA   c                 ó   — |dz   S rr  rG   r\   s     r?   r]   zHtest_transform_input_explicit_value_check.<locals>.Transformer.transformÞ  ó   € Ø�q‘5ˆLrA   Nr�  rG   rA   r?   ÚTransformerr  Ù  ó   „ ò	ó	rA   r  c                   ó   — e Zd Zdd„Zy)ú<test_transform_input_explicit_value_check.<locals>.EstimatorNc                 ó  — t        |t        j                  ddgg«      «       t        |t        j                  ddg«      «       t        |t        j                  ddgg«      «       t        |t        j                  ddg«      «       | S )Nr|   rÍ   r   rÞ   )r3   rw   rÑ   ©r>   rL   rM   ÚX_valÚy_vals        r?   rN   z@test_transform_input_explicit_value_check.<locals>.Estimator.fitâ  sg   € Ü˜q¤"§(¡(¨Q°¨F¨8Ó"4Ô5Ü˜q¤"§(¡(¨A¨q¨6Ó"2Ô3Ü˜u¤b§h¡h°°A°¨xÓ&8Ô9Ü˜u¤b§h¡h°°1¨vÓ&6Ô7ØˆKrA   rB   ri   rG   rA   r?   rÂ  r  á  s   „ ô	rA   rÂ  r   r|   rÍ   r¨  rF  T©r  r  r  rþ  N)r   r   r   rw   rÑ   r!   rù  rN   )r  rÂ  rL   rM   r  r  rÁ   s          r?   Ú)test_transform_input_explicit_value_checkr  Õ  s½   € ôÔ&¬ô ô”O¤]ô ô 	�‰�1�a�&�Ó€AÜ
�‰�!�Q�Ó€AÜ�H‰H�q˜!�f�XÓ€EÜ�H‰H�a˜�VÓ€EÜà™K›MÐ*Ø™)›+×5Ñ5¸DÈÐ5ÓMÐNð	
ð !˜	ô€Dð 	‡H�HˆQ�˜ e€HÕ,rA   c                  ó  — t        j                  ddgddgg«      } t        j                  ddg«      }d}t        j                  t        |¬«      5  t        t        «       dg¬	«      j                  | |«       d
d
d
«       y
# 1 sw Y   y
xY w)z<Make sure the right error is raised if slep6 is not enabled.r|   rÍ   rÞ   r4  r   z;The `transform_input` parameter can only be set if metadatar©   Úblahrþ  N)rw   rÑ   r´   rµ   r½   r"   r–   rN   )rL   rM   rÀ   s      r?   Útest_transform_input_no_slep6r  ÷  si   € ä
�‰�1�a�&˜1˜a˜&Ð!Ó"€AÜ
�‰�!�Q�Ó€AØ
G€CÜ	�‰”z¨Ö	-Ü”k“m°f°XÔ>×BÑBÀ1ÀaÔH÷ 
.×	-Ñ	-ús   Á'B Â B	c                  óþ  —  G d„ dt         t        «      }  G d„ dt        t        «      }t        j                  ddgg«      }t        j                  ddg«      }t        j                  ddgg«      }t        j                  ddg«      }t        j                  dd	gg«      }t        j                  ddg«      }t        d
 |«       fd | «       j                  dd¬«      fgdg¬«      }|j                  ||||f||f¬«       y)zHTest that if metadata is a tuple of arrays, both arrays are transformed.c                   ó   — e Zd Zdd„Zy)ú-test_transform_tuple_input.<locals>.EstimatorNc                 ó€  — t        |t        «      sJ ‚t        |t        «      sJ ‚t        |d   t        j                  ddgg«      «       t        |d   t        j                  ddg«      «       t        |d   t        j                  ddgg«      «       t        |d   t        j                  ddg«      «       d| _        | S )Nr   rÍ   rÞ   r|   é   é   T)r   Útupler3   rw   rÑ   r�   r  s        r?   rN   z1test_transform_tuple_input.<locals>.Estimator.fit  sž   € Ü˜e¤UÔ+Ð+Ð+Ü˜e¤UÔ+Ð+Ð+ä˜u Q™x¬¯©°A°q°6°(Ó);Ô<Ü˜u Q™x¬¯©°1°a°&Ó)9Ô:Ü˜u Q™x¬¯©°B¸°8°*Ó)=Ô>Ü˜u Q™x¬¯©°1°a°&Ó)9Ô:ØˆDŒLØˆKrA   rB   ri   rG   rA   r?   rÂ  r"    s   „ ô		rA   rÂ  c                   ó   — e Zd Zd„ Zd„ Zy)ú/test_transform_tuple_input.<locals>.Transformerc                 ó   — d| _         | S rp   rÀ  rK   s      r?   rN   z3test_transform_tuple_input.<locals>.Transformer.fit  rÁ  rA   c                 ó   — |dz   S rr  rG   r\   s     r?   r]   z9test_transform_tuple_input.<locals>.Transformer.transform  r  rA   Nr�  rG   rA   r?   r  r(    r  rA   r  r|   rÍ   r   rN  r$  r¨  rF  Tr  r  rþ  N)r   r   r   rw   rÑ   r!   rù  rN   )	rÂ  r  rL   rM   ÚX_val0Úy_val0ÚX_val1Úy_val1rÁ   s	            r?   Útest_transform_tuple_inputr/     sí   € ô
”O¤]ô 
ôÔ&¬ô ô 	�‰�1�a�&�Ó€AÜ
�‰�!�Q�Ó€AÜ�X‰X˜˜1�v�hÓ€FÜ�X‰X�q˜!�fÓ€FÜ�X‰X˜˜B�x�jÓ!€FÜ�X‰X�q˜!�fÓ€FÜà™K›MÐ*Ø™)›+×5Ñ5¸DÈÐ5ÓMÐNð	
ð !˜	ô€Dð 	‡H�HˆQ�˜& &Ð)°&¸&Ð1A€HÕBrA   )r€   r„   r…   r†   rƒ   rú   r]   rc   c                 óÌ   —  G d„ dt         «      }t        d |«       fg«      }t        j                  t        «      5   t        || «      dgg«       d d d «       y # 1 sw Y   y xY w)Nc                   óF   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ú:test_pipeline_warns_not_fitted.<locals>.StatelessEstimatorzñStateless estimator that doesn't check if it's fitted.

        Stateless estimators that don't require fit, should properly set the
        `requires_fit` flag and implement a `__sklearn_check_is_fitted__` returning
        `True`.
        c                 ó   — | S r:   rG   rK   s      r?   rN   z>test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.fitB  s   € ØˆKrA   c                 ó   — |S r:   rG   r\   s     r?   r]   zDtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.transformE  r�  rA   c                 ó>   — t        j                  t        |«      «      S r:   ©rw   Úonesr  r\   s     r?   r€   zBtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predictH  ó   € Ü—7‘7œ3˜q›6“?Ð"rA   c                 ó>   — t        j                  t        |«      «      S r:   r6  r\   s     r?   r„   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_probaK  r8  rA   c                 ó>   — t        j                  t        |«      «      S r:   ©rw   Úzerosr  r\   s     r?   r…   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_log_probaN  s   € Ü—8‘8œC ›FÓ#Ð#rA   c                 ó>   — t        j                  t        |«      «      S r:   r6  r\   s     r?   r†   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.decision_functionQ  r8  rA   c                  ó   — yrr  rG   rK   s      r?   rƒ   z@test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.scoreT  s   € ØrA   c                 ó>   — t        j                  t        |«      «      S r:   r6  r\   s     r?   rú   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score_samplesW  r8  rA   c                 ó   — |S r:   rG   r\   s     r?   rc   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.inverse_transformZ  r�  rA   N)rC   rD   rE   rF   rN   r]   r€   r„   r…   r†   rƒ   rú   rc   rG   rA   r?   ÚStatelessEstimatorr2  :  s4   „ ñ	ò	ò	ò	#ò	#ò	$ò	#ò	ò	#ó	rA   rA  rF  r|   )r   r!   r´   rµ   r   r#  )r,  rA  rÁ   s      r?   Útest_pipeline_warns_not_fittedrB  ,  sT   € ô!œ]ô !ôF �kÑ#5Ó#7Ð8Ð9Ó:€DÜ	�‰”~Õ	&ØŒ��fÓ ˜s˜eÔ$÷ 
'×	&Ñ	&ús   ¼AÁA#c                   ób   — e Zd Zd„ Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zy)ÚSimpleEstimatorc                  ó   — yrp   rG   rq   s    r?   rr   z%SimpleEstimator.__sklearn_is_fitted__i  rs   rA   Nc                 ó*   — |€J |«       ‚|€J |«       ‚| S r:   rG   ©r>   rL   rM   r”   Úprops        r?   rN   zSimpleEstimator.fitl  s)   € ØÐ(Ð7¨-Ó7Ð(ØÐÐ% Ó%ÐØˆrA   c                 ó   — |€J ‚|€J ‚|dz   S rr  rG   rG  s        r?   rü   zSimpleEstimator.fit_transformq  ó#   € ØÐ(Ð(Ð(ØÐÐÐØ�1‰uˆrA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r6  rG  s        r?   r’   zSimpleEstimator.fit_predictv  ó,   € ØÐ(Ð(Ð(ØÐÐÐÜ�w‰w”s˜1“v‹ÐrA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r6  ©r>   rL   r”   rH  s       r?   r€   zSimpleEstimator.predict{  rL  rA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r6  rN  s       r?   r„   zSimpleEstimator.predict_proba€  rL  rA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r;  rN  s       r?   r…   z!SimpleEstimator.predict_log_proba…  s-   € ØÐ(Ð(Ð(ØÐÐÐÜ�x‰xœ˜A›ÓÐrA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r6  rN  s       r?   r†   z!SimpleEstimator.decision_functionŠ  rL  rA   c                 ó   — |€J ‚|€J ‚yrr  rG   rG  s        r?   rƒ   zSimpleEstimator.score�  s   € ØÐ(Ð(Ð(ØÐÐÐØrA   c                 ó   — |€J ‚|€J ‚|dz   S rr  rG   rN  s       r?   r]   zSimpleEstimator.transform”  rJ  rA   c                 ó   — |€J ‚|€J ‚|dz
  S rr  rG   rN  s       r?   rc   z!SimpleEstimator.inverse_transform™  rJ  rA   rB   )rC   rD   rE   rr   rN   rü   r’   r€   r„   r…   r†   rƒ   r]   rc   rG   rA   r?   rD  rD  f  s9   „ òóó
ó
ó
ó
ó
 ó
ó
ó
ô
rA   rD  r  Úpartial_fitc                 ó>  — d„ }t        j                  dgg«      t        j                  dg«      }}dgdd}}}t        «       } ||| dd¬«      } ||ddd¬«      }t        «       j	                  dd¬«      j                  dd¬«      j                  dd¬«      }t        d	|fd
|fg«      }	d| vr|	j                  ||||¬«      }		  t        |	| «      |||||¬«       t        |dd||¬«       t        |dd||¬«       y# t        $ r  t        |	| «      ||||¬«       Y ŒBw xY w)z5Test that metadata is routed correctly for pipelines.c                 ój   — |t         v r
t         |   }n|g}|D ]  } t        | d|› d�«      di |¤Ž Œ | S )z Set requests for a given method.

        If the given method is a composite method, set the same requests for
        all the methods that compose it.
        Úset_Ú_requestrG   )r,   r#  )r¹  r,  Úkwargr  s       r?   Úset_requestz7test_metadata_routing_for_pipeline.<locals>.set_request¥  sJ   € ð Ô&Ñ&Ü'¨Ñ/‰Gà�hˆGãˆFØ1ŒG�C˜4 ˜x xÐ0Ó1Ñ:°EÓ:ð àˆ
rA   r|   r<   r=   T©r”   rH  rN   rø  ÚtrsrF  )r”   rH  rš  )Úobjr,  r  r”   rš  r]   N)rw   rÑ   rD  r(   rù  rú  Úset_inverse_transform_requestr!   rN   r#  r¶   r*   )
r,  r[  rL   rM   r”   rH  rš  r¹  r]  r¿   s
             r?   Ú"test_metadata_routing_for_pipeliner`     sP  € ò
ô �8‰8�a�S�E‹?œBŸH™H a S›M€q€AØ%& C¨¨c˜�4€Mô Ó
€CÙ
�c˜6°¸DÔ
A€CÙ
�c˜5°¸4Ô
@€CäÓß	‰ t°dˆÓ	;ß	Ñ	¨T¸DÐ	Ó	Aß	&Ñ	&°TÀDÐ	&Ó	Ið	 ô ˜% ˜¨°SÐ'9Ð:Ó;€Hà�FÑØ—<‘<  1°MÈ�<ÓMˆð
Ø!Œ�˜&Ó!Øˆq °DÀ8õ	
ô ØØØØ#Øõô ØØØØ#Øöøô ò 
à!Œ�˜&Ó!Ø˜]°À÷	
ð
ús   ÃC: Ã:DÄDc                 óR  — dggdg}}dgd}}t        «       }t        d|fg«      }d| › �}t        j                  t        t        j                  |«      ¬«      5  	  t        || «      ||||¬«       ddd«       y# t        $ r  t        || «      |||¬«       Y Œ)w xY w# 1 sw Y   yxY w)zBTest that metadata is not routed for pipelines when not requested.r|   r<   rF  zn[sample_weight, prop] are passed but are not explicitly set as requested or not requested for SimpleEstimator.r©   r\  N)	rD  r!   r´   rµ   r½   r»   r¼   r#  r¶   )r,  rL   rM   r”   rH  r¹  r¿   Úerror_messages           r?   Ú(test_metadata_routing_error_for_pipelinerc  å  s¿   € ð ˆCˆ5�1�#€q€AØ˜#˜s�4€MÜ
Ó
€Cä˜+ sÐ+Ð,Ó-€Hð	1Ø17°ð	:ð ô 
�‰”z¬¯©°=Ó)AÖ	Bð	Qà%ŒG�H˜fÓ% a¨¸-ÈdÕS÷ 
CÐ	Bøô ò 	Qð &ŒG�H˜fÓ% a°}È4×Pð	Qú÷	 
CÐ	Bús*   ÁBÁA9Á9BÂBÂBÂBÂB&)r†   r]   rc   c                 óÀ   — t        dt        «       fg«      }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`.rF  z1is only supported if enable_metadata_routing=Truer©   r|   r<   r\  N)r!   rD  r´   rµ   r½   r#  )r,  rÁ   s     r?   Ú*test_routing_passed_metadata_not_supportedre  ü  sX   € ô �k¤?Ó#4Ð5Ð6Ó7€Dä	�‰ÜÐMö
ð 	Œ��fÓ ˜s˜e°A°3¸SÕA÷
÷ 
ñ 
ús   ²AÁAc                  ó–   — t        dt        «       fdt        «       fg«      } | j                  dggdg«       | j	                  dgg«       y)zFTest that pipeline works with estimators that have a `__len__` method.r]  rF  r|   N)r!   r   r   rN   r€   r(  s    r?   Ú%test_pipeline_with_estimator_with_lenrg  	  sN   € ô Ø
Ô%Ó'Ð	(¨;Ô8NÓ8PÐ*QÐRó€Dð 	‡H�HˆqˆcˆU�Q�CÔØ‡L�L�1�#�ÕrA   Ú	last_stepc                 ó    — t        dt        «       fd| fg«      }|j                  dggdg«      j                  dgdgdgg«      dgdgdggk(  sJ ‚y)z�Test that the pipeline works when there is not last step.

    It should just ignore and pass through the data on transform.
    r]  rF  r|   rÍ   rÞ   N)r!   r$   rN   r]   )rh  rÁ   s     r?   Útest_pipeline_with_no_last_steprj  	  sc   € ô �eÔ0Ó2Ð3°kÀ9Ð5MÐNÓO€DØ�8‰8�a�S�E˜A˜3Ó×)Ñ)¨A¨3°°°a°S¨/Ó:À¸sÀQÀCÈ!È¸oÒMÐMÑMrA   c                  ó¢  — t        j                  ddgddgddgg«      } g d¢}g d¢d}}t        d	t        «       fg«      }d
t        j                  › d�}t        j                  t        t        j                  |«      ¬«      5  |j                  | |||¬«       ddd«       t        d	t        «       j                  dd¬«      fg«      }d
t        j                  › d�}t        j                  t        t        j                  |«      ¬«      5  |j                  | |||¬«      j                  | ||¬«       ddd«       y# 1 sw Y   Œ£xY w# 1 sw Y   yxY w)zCTest that the right error is raised when metadata is not requested.r   r|   rÍ   r4  r¨  rz  ©r|   r|   r|   r<   Úsub_transformerzb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr©   rø  NTz
.transform)rw   rÑ   r    r(   rC   r´   rµ   r   r»   r¼   rN   rù  r]   )rL   rM   r”   rš  Úfeature_unionrb  s         r?   Ú)test_feature_union_metadata_routing_errorro   	  sX  € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AÚ'¨�8€Mô !Ð#4Ô6JÓ6LÐ"MÐ!NÓO€Mð	!Ü!5×!>Ñ!>Ð ?¸tð	Eð ô
 
�‰Ô/´r·y±yÀÓ7OÖ	PØ×Ñ˜!˜Q¨mÀhÐÔO÷ 
Qô !ð "Ü$Ó&×6Ñ6Ø"&°ð 7ó ðð	
ó	€Mð	 Ü 4× =Ñ =Ð>¸jð	Jð ô
 
�‰Ô/´r·y±yÀÓ7OÖ	PØ×ÑØˆq ¸ð 	ó 	
ç
‰)�A ]¸Xˆ)Ô
F÷ 
QÐ	P÷) 
QÐ	Pú÷( 
QÐ	Pús   ÂD9Ä(EÄ9EÅEc                  óP   — t        dt        «       fg«      } | j                  «        y)zaTest that get_metadata_routing() works regardless of the Child's
    consumption of any metadata.rm  N)r    r(   Úget_metadata_routing)rn  s    r?   Ú3test_feature_union_get_metadata_routing_without_fitrr  I	  s'   € ô !Ð#4Ô6JÓ6LÐ"MÐ!NÓO€MØ×&Ñ&Õ(rA   r¨  c           	      ód  — t        j                  ddgddgddgg«      }g d¢}g d¢d}}t        d	 | t        «       ¬
«      j	                  dd¬«      j                  dd¬«      fd | t        «       ¬
«      j	                  dd¬«      j                  dd¬«      fg«      }||dœ} |j                  ||fi |¤Ž  |j                  ||fi |¤Ž   |j                  ||fi |¤Žj                  |fi |¤Ž |j                  D ]4  } | d   j                  }t        |«      sJ ‚|D ]  }t        d|dddœ|¤Ž Œ Œ6 y)z8Test that metadata is routed correctly for FeatureUnion.r   r|   rÍ   r4  r¨  rz  rl  r<   Ú
sub_trans1rö  Trø  Ú
sub_trans2rN   )r^  r,  r  NrG   )rw   rÑ   r    r)   rù  rú  rN   rü   r]   r:  r÷  r  r*   )	r¨  rL   rM   r”   rš  rn  Úkwargsr÷  Ú	sub_transs	            r?   Ú#test_feature_union_metadata_routingrx  Q	  s_  € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AÚ'¨�8€Mä ð Ù¤Y£[Ô1ß ‘¨t¸d�ÓCß&Ñ&°TÀDÐ&ÓIð	ð Ù¤Y£[Ô1ß ‘¨t¸d�ÓCß&Ñ&°TÀDÐ&ÓIð	ð	
ó€Mð"  -¸(ÑC€FØ€M×Ñ�a˜Ñ%˜fÒ%Ø€M×Ñ  1Ñ/¨Ò/Ø/Ð€M×Ñ�a˜Ñ%˜fÑ%×/Ñ/°Ñ<°VÒ<à$×5Ô5ˆà˜q‘>×*Ñ*ˆÜ�8Œ}Ðˆ}Û!ˆIÜ#ð ØØØñð ó	ñ "ñ	 6rA   )rÞ   )ÃrF   Ú	itertoolsr»   rP  rš   Útempfiler   rN  Únumpyrw   r´   Úsklearnr   Úsklearn.baser   r   r   r   r	   r
   Úsklearn.clusterr   Úsklearn.datasetsr   Úsklearn.decompositionr   r   Úsklearn.dummyr   Úsklearn.ensembler   r   r   Úsklearn.exceptionsr   r   Úsklearn.feature_extraction.textr   Úsklearn.feature_selectionr   r   Úsklearn.imputer   Úsklearn.linear_modelr   r   r   Úsklearn.metricsr   r   Úsklearn.model_selectionr   Úsklearn.neighborsr   Úsklearn.pipeliner    r!   r"   r#   Úsklearn.preprocessingr$   r%   Úsklearn.svmr&   Ú%sklearn.tests.metadata_routing_commonr'   r(   r)   r*   Úsklearn.utilsr+   Ú sklearn.utils._metadata_requestsr,   r-   Úsklearn.utils._testingr.   r/   r0   r1   r2   r3   Úsklearn.utils.fixesr4   Úsklearn.utils.validationr5   r6   rÈ   rÉ   ÚflagsÚ	writeablerÊ   rÑ  r8   rI   rZ   r`   re   rk   rˆ   r–   r�   rÆ   rË   rÓ   rØ   rÜ   rá   rã   rë   rö   rý   r  r  r   r$  r)  ÚmarkÚparametrizer-  r@  rD  rJ  rQ  r[  rh  ro  rq  r�  r†  rŒ  r�  r�  r«  r¯  r´  r½  rÃ  rÉ  Úthread_unsaferÖ  rã  rè  rù  rþ  r  r  r$  r0  r3  r@  rG  rW  rY  r[  rc  rm  rp  rr  ÚproductÚparameter_grid_test_verboser  r†  rˆ  r•  r�  r¦  r«  r¯  r»  rÃ  rÅ  rÒ  rÛ  rá  rä  Úslicerç  rì  rò  r  r  r  r/  rB  rD  ÚsortedÚsetr`  rc  re  rg  rj  ro  rr  rx  rG   rA   r?   Ú<module>rž     s(  ðñó Û 	Û Û Ý ã Û Û å "÷÷ õ #Ý &ß 3Ý (÷ñ ÷
 HÝ ;ß <Ý (ß LÑ Lß 4Ý 4Ý 0ß NÓ Nß EÝ ÷ó õ #ß G÷÷ õ /ß Jñ
 ƒ{€Ø!€‡	�	‡�Ô Ø#€‡�× Ñ Ô ð€ôˆMô ô	ˆeô 	ôÐ" Gô ô
ˆ[ô ô�fô ôÐ˜]ô ô2�ô ô.�&ô ô˜=ô ò,Qòhò	òò,ò >ò
6ò3ò6òPò 7ò"ò<<ò,7ò	Ið ‡�×ÑØÒDóñ1óð1ð ‡�×Ñ˜¨.Ó9ñ,ó :ð,ò^
<ò'òLóòò:/ò&
1ð ‡�×ÑØÒVóñóðò8ò$+òB.ð" ‡�×Ñ˜¨¨}Ð(=Ó>ñ*ó ?ð*ð" ‡�×Ñ˜¨¨}Ð(=Ó>ñM?ó ?ðM?ò`6ò8+ð ‡�×ÑØ$á	‘~Ó'Ñ);Ó)=Ó	>ÀÐNÙ	‘~Ó'Ñ)9Ó);Ó	<¸lÐKá™.Ó*Ó+Ù<ð	
ñ 
�"‹ÑGÐHðóñ*óð*ò
>ò@ðF ‡�×Òñ*Só ð*SòZ#ò&3ò Aò: ?òFnòbò(ò,&ò.&ò,#.òLLò< ò~	ô	�}ô 	òò ò	%ò:ñ<à"3 )×"3Ò"3ñ ˜8¡V£XÐ.°¹	»Ð0DÐEÓFðNðñ ˜8¡V£XÐ.°ÀÉ	ËÐ@TÐUÓVðNðñ à!¡6£8Ð,Ø/Ø¡	£Ð,ðóðNðñ ˜8¡V£XÐ.°Ð>Ó?ðNðñ Ð*¨V±T³VÐ,<Ð=Ó>ðOðñ Ð3°f¹d»fÐ5EÐFÓGðOðñ ˜w©«Ð/°'¹4»6Ð1BÐCÓDðTðñ Ð/°'¹4»6Ð1BÐDUÐVÓWØSððY0	
òb 	0ôe3#ó<Ð ð~ ‡�×ÑÐ/Ð1LÓMñ6ó Nð6ò/ò.7ò(ò.&ò0,òð$ ‡�×Ñ˜¨¨}Ð(=Ó>ñ;ó ?ð;ð ‡�×Ñ˜Ð'7Ð9JÐ&KÓLñGó MðGò(
òò2Yò*Aò 4ò &ð$ ‡�×Ñ˜ ¡E¨!¨Q£KÐ 0Ó1ñó 2ðò3ò@ñ( ¨Ô-Ø‡�×Ñ˜ E¨?Ð#;Ó<ñJó =ó .ðJñZ ¨Ô-ñ-ó .ð-òBIñ ¨Ô-ñ$Có .ð$CðV ‡�×ÑØò	óñ&%óð&%ôZ6�mô 6ðt ‡�×Ñ˜¡6©#¨g«,¸'À=Ð9QÑ*QÓ#RÓSÙ¨Ô-ñ=ó .ó Tð=ðF ‡�×Ñ˜¡6©#¨g«,¸'À=Ð9QÑ*QÓ#RÓSÙ¨Ô-ñQó .ó TðQð* ‡�×ÑØÒEóñ	Bóð	Bñ ¨Ô-ñó .ðð ‡�×Ñ˜ t¨]Ð&;Ó<Ù¨Ô-ñNó .ó =ðNñ ¨Ô-ñ%Gó .ð%GñP ¨Ô-ñ)ó .ð)ñ ¨Ô-Ø‡�×ÑØÐ(Ð*LÐMóñ&óó .ñ&rA   