§
    Øj9h ã                   ór  — d Z ddlZddlZddlZddlZddlmZ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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/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z?m@Z@mAZAmBZBmCZC ddlDmEZEmFZF ddlGmHZH ddlImJZJmKZKmLZLmMZM ddlNmOZO ddlPmQZQmRZRmSZSmTZT ddlUmVZVmWZW ddlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_ ddl`maZa ddlbmcZcmdZd  e¦   «         Zedeejf        jg        _h        deeji        jg        _h        d Zj G d!„ d"e¦  «        Zk G d#„ d$ek¦  «        Zl G d%„ d&eel¦  «        Zm G d'„ d(em¦  «        Zn G d)„ d*en¦  «        Zo G d+„ d,ee¦  «        Zp G d-„ d.e¦  «        Zq G d/„ d0en¦  «        Zr G d1„ d2e¦  «        Zsd3„ Zteju         v                    d4 e@d5efg¦  «        d6f e@d5efd7g¦  «        d6f e@d8d5efg¦  «        d6f e@d9d5efg¦  «        d6f e@d:eFfd5 e¦   «         fg¦  «        d;f e?d5efd< e ¦   «         fg¦  «        d6f e?d5 e¦   «         fd<e fg¦  «        d=f e?d>d<e fg¦  «        d=f e?d5efd8g¦  «        d6fg	¦  «        d?„ ¦   «         Zwd@„ ZxdA„ ZydB„ ZzdC„ Z{dD„ Z|dE„ Z}dF„ Z~dG„ ZdH„ Z€dI„ Z�dJ„ Z‚dK„ ZƒdL„ Z„dM„ Z…dN„ Z†eju         v                    dOg dP¢¦  «        dQ„ ¦   «         Z‡eju         v                    dRea¦  «        dS„ ¦   «         ZˆdT„ Z‰dU„ ZŠdV„ Z‹d×dX„ZŒdY„ Z�dZ„ ZŽd[„ Z�eju         v                    d\g d]¢¦  «        d^„ ¦   «         Z�d_„ Z‘d`„ Z’da„ Z“eju         v                    dbddbg¦  «        dc„ ¦   «         Z”eju         v                    dbddbg¦  «        dd„ ¦   «         Z•de„ Z–df„ Z—eju         v                    dg eB eF¦   «          e6¦   «         ¦  «        ef eB eF¦   «          e5¦   «         ¦  «        ef eB eF¦   «         ¦  «        dh„ f e@g ¦  «        di„ fg¦  «        dj„ ¦   «         Z˜dk„ Z™dl„ Zšeju        j›        dm„ ¦   «         Zœdn„ Z�do„ Zždp„ ZŸdq„ Z dr„ Z¡ds„ Z¢dt„ Z£du„ Z¤dv„ Z¥ G dw„ dxe¦  «        Z¦eju         v                    dydzd{g¦  «        eju         v                    d| eF¦   «          e¦¦   «         dbgg d}¢¬~¦  «        d„ ¦   «         ¦   «         Z§d€„ Z¨d�„ Z©d‚„ Zªdƒ„ Z« G d„„ d…e¦  «        Z¬d†„ Z­d‡„ Z®dˆ„ Z¯d‰„ Z°dŠ„  ej±         e@d‹ en¦   «         fdŒ eq¦   «         fg¦  «        d�f e@d‹ en¦   «         fdŽdŒ eq¦   «         fg¦  «        d�f e@d‹ en¦   «         fd�dŒ eq¦   «         fg¦  «        d�f e@d‹ en¦   «         fd‘g¦  «        d�f e@d’d“ ep¦   «         fg¦  «        d”f e@d•d“ ep¦   «         fg¦  «        d”f e?d– ep¦   «         fd— ep¦   «         fg¦  «        d˜f e?d™d— ep¦   «         fdšg¦  «        d›fgg dœ¢¦  «        D ¦   «         Z²eju         v                    d�e²¦  «        dž„ ¦   «         Z³dŸ„ Z´d „ Zµd¡„ Z¶d¢„ Z·d£„ Z¸d¤„ Z¹eju         v                    dbddbg¦  «        d¥„ ¦   «         Zºeju         v                    d¦eZeYg¦  «        d§„ ¦   «         Z»d¨„ Z¼d©„ Z½dª„ Z¾d«„ Z¿eju         v                    d¬dzd{g¦  «        d­„ ¦   «         ZÀd®„ ZÁeju         v                    d¯d eÂdd°¦  «        g¦  «        d±„ ¦   «         ZÃd²„ ZÄd³„ ZÅeju         v                    d´ eT¦   «         ¦  «        dµ„ ¦   «         ZÆd¶„ ZÇ ed·¬¸¦  «        eju         v                    d¹dºd»g¦  «        d¼„ ¦   «         ¦   «         ZÈ ed·¬¸¦  «        d½„ ¦   «         ZÉd¾„ ZÊ ed·¬¸¦  «        d¿„ ¦   «         ZËeju         v                    dÀg dÁ¢¦  «        dÂ„ ¦   «         ZÌ G dÃ„ dÄe¦  «        ZÍeju         v                    dÅ eÎ eÏeW¦  «        dÆdÇhz
  ¦  «        ¦  «         ed·¬¸¦  «        dÈ„ ¦   «         ¦   «         ZÐeju         v                    dÀ eÎ eÏeW¦  «        dÆdÇhz
  ¦  «        ¦  «         ed·¬¸¦  «        dÉ„ ¦   «         ¦   «         ZÑeju         v                    dÀg dÊ¢¦  «        dË„ ¦   «         ZÒ ed·¬¸¦  «        dÌ„ ¦   «         ZÓeju         v                    dÍddbg¦  «         ed·¬¸¦  «        dÎ„ ¦   «         ¦   «         ZÔ ed·¬¸¦  «        dÏ„ ¦   «         ZÕ ed·¬¸¦  «        dÐ„ ¦   «         ZÖ ed·¬¸¦  «        eju         v                    dÑeKeJg¦  «        dÒ„ ¦   «         ¦   «         Z×dÓ„ ZØedÔ„ ¦   «         ZÙedÕ„ ¦   «         ZÚedÖ„ ¦   «         ZÛdS )Øz
Test the pipeline module.
é    N)ÚTemporaryDirectoryÚmkdtemp)Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚTransformerMixinÚcloneÚis_classifierÚis_regressor)ÚMaxIterEstimatorÚRecordingAutoPropagatedCallbackÚRecordingCallbackÚskip_callback_test_if_wasm)ÚKMeans)Ú	load_iris)ÚPCAÚTruncatedSVD)ÚDummyRegressor)ÚHistGradientBoostingClassifierÚRandomForestClassifierÚRandomTreesEmbedding)ÚNotFittedErrorÚUnsetMetadataPassedError)ÚCountVectorizer)ÚSelectKBestÚ	f_classif)ÚSimpleImputer)ÚNystroem)ÚLassoÚLinearRegressionÚLogisticRegression)Úaccuracy_scoreÚr2_score)Útrain_test_split)ÚLocalOutlierFactor)ÚFeatureUnionÚPipelineÚ_transform_oneÚmake_pipelineÚ
make_union)ÚFunctionTransformerÚStandardScaler)ÚSVC)Ú"ConsumingNoFitTransformTransformerÚConsumingTransformerÚ	_RegistryÚcheck_recorded_metadata)Úget_tags)Ú_atol_for_typeÚget_namespace_and_deviceÚmove_toÚ)yield_namespace_device_dtype_combinations)ÚCOMPOSITE_METHODSÚMETHODS)ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚ_array_api_for_testsÚ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dS )ÚNoFitz*Small class to test parameter dispatching.Nc                 ó"   — || _         || _        d S ©N©ÚaÚb)ÚselfrH   rI   s      ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/sklearn/tests/test_pipeline.pyÚ__init__zNoFit.__init__h   s   € ØˆŒØˆŒˆˆó    ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rL   © rM   rK   rD   rD   e   s.   € € € € € Ø4Ð4ðð ð ð ð ð rM   rD   c                   ó$   — e Zd Zdd„Zdd„Zd„ ZdS )ÚNoTransNc                 ó   — | S rF   rS   ©rJ   ÚXÚys      rK   ÚfitzNoTrans.fitn   ó   € ØˆrM   Fc                 ó    — | j         | j        dœS )NrG   rG   )rJ   Údeeps     rK   Ú
get_paramszNoTrans.get_paramsq   s   € Ø”V $¤&Ð)Ð)Ð)rM   c                 ó    — |d         | _         | S ©NrH   ©rH   )rJ   Úparamss     rK   Ú
set_paramszNoTrans.set_paramst   s   € Ø˜”ˆŒØˆrM   rF   ©F)rO   rP   rQ   rZ   r^   rc   rS   rM   rK   rU   rU   m   sK   € € € € € ðð ð ð ð*ð *ð *ð *ðð ð ð ð rM   rU   c                   ó   — e Zd Zd„ ZdS )ÚNoInvTransfc                 ó   — |S rF   rS   ©rJ   rX   s     rK   Ú	transformzNoInvTransf.transformz   ó   € ØˆrM   N)rO   rP   rQ   ri   rS   rM   rK   rf   rf   y   s#   € € € € € ðð ð ð ð rM   rf   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTransfc                 ó   — |S rF   rS   rh   s     rK   ri   zTransf.transform   rj   rM   c                 ó   — |S rF   rS   rh   s     rK   Úinverse_transformzTransf.inverse_transform‚   rj   rM   N)rO   rP   rQ   ri   ro   rS   rM   rK   rl   rl   ~   s2   € € € € € ðð ð ðð ð ð ð rM   rl   c                   ó   — e Zd Zdd„ZdS )ÚTransfFitParamsNc                 ó   — || _         | S rF   )Ú
fit_params©rJ   rX   rY   rs   s       rK   rZ   zTransfFitParams.fit‡   s   € Ø$ˆŒØˆrM   rF   ©rO   rP   rQ   rZ   rS   rM   rK   rq   rq   †   s(   € € € € € ðð ð ð ð ð rM   rq   c                   óJ   — 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dS )ÚMulté   c                 ó   — || _         d S rF   ©Úmult)rJ   r{   s     rK   rL   zMult.__init__�   s   € ØˆŒ	ˆ	ˆ	rM   c                 ó   — dS ©NTrS   ©rJ   s    rK   Ú__sklearn_is_fitted__zMult.__sklearn_is_fitted__�   ó   € ØˆtrM   Nc                 ó   — | S rF   rS   rW   s      rK   rZ   zMult.fit“   r[   rM   c                 ó:   — t          j        |¦  «        | j        z  S rF   ©ÚnpÚasarrayr{   rh   s     rK   ri   zMult.transform–   ó   € ÝŒz˜!‰}Œ}˜tœyÑ(Ð(rM   c                 ó:   — t          j        |¦  «        | j        z  S rF   rƒ   rh   s     rK   ro   zMult.inverse_transform™   r†   rM   c                 ób   — t          j        |¦  «        | j        z                       d¬¦  «        S )Nrx   ©Úaxis)r„   r…   r{   Úsumrh   s     rK   ÚpredictzMult.predictœ   s(   € Ý”
˜1‘” ¤	Ñ)×.Ò.°AÐ.Ñ6Ô6Ð6rM   c                 ó*   — t          j        |¦  «        S rF   ©r„   r‹   rW   s      rK   Úscorez
Mult.score¡   s   € ÝŒv�a‰yŒyÐrM   )rx   rF   )rO   rP   rQ   rL   r   rZ   ri   ro   rŒ   Úpredict_probaÚpredict_log_probaÚdecision_functionr�   rS   rM   rK   rw   rw   Œ   s    € € € € € ðð ð ð ðð ð ðð ð ð ð)ð )ð )ð)ð )ð )ð7ð 7ð 7ð =DÐC€MÐCÐ%Ð(9ðð ð ð ð ð rM   rw   c                   ó6   — e Zd ZdZd„ Zd	d„Zd„ Zd	d„Zd
d„ZdS )Ú	FitParamTzMock classifierc                 ó   — d| _         d S )NF©Ú
successfulr~   s    rK   rL   zFitParamT.__init__¨   s   € ØˆŒˆˆrM   Fc                 ó"   — || _         d| _        d S r}   )r—   Úfitted_©rJ   rX   rY   Úshould_succeeds       rK   rZ   zFitParamT.fit«   s   € Ø(ˆŒØˆŒˆˆrM   c                 ó   — | j         S rF   r–   rh   s     rK   rŒ   zFitParamT.predict¯   s
   € ØŒÐrM   c                 ó\   — |                       |||¬¦  «         |                      |¦  «        S )N)r›   )rZ   rŒ   rš   s       rK   Úfit_predictzFitParamT.fit_predict²   s*   € Ø�Š��A nˆÑ5Ô5Ð5Ø�|Š|˜A‰ŒÐrM   Nc                 ó8   — |�||z  }t          j        |¦  «        S rF   rŽ   )rJ   rX   rY   Úsample_weights       rK   r�   zFitParamT.score¶   s    € ØÐ$Ø�MÑ!ˆAÝŒv�a‰yŒyÐrM   rd   rN   )	rO   rP   rQ   rR   rL   rZ   rŒ   rž   r�   rS   rM   rK   r”   r”   ¥   st   € € € € € ØÐð ð  ð  ðð ð ð ðð ð ðð ð ð ðð ð ð ð ð rM   r”   c                   ó   — e Zd ZdZd„ ZdS )ÚDummyTransfz(Transformer which store the column meansc                 ól   — t          j        |d¬¦  «        | _        t          j        ¦   «         | _        | S )Nr   r‰   )r„   ÚmeanÚmeans_ÚtimeÚ
timestamp_rW   s      rK   rZ   zDummyTransf.fit¿   s,   € Ý”g˜a aÐ(Ñ(Ô(ˆŒõ œ)™+œ+ˆŒØˆrM   N)rO   rP   rQ   rR   rZ   rS   rM   rK   r¢   r¢   ¼   s)   € € € € € Ø2Ð2ðð ð ð ð rM   r¢   c                   ó6   — e Zd ZdZd„ Zd„ Zd	d„Zd	d„Zd	d„ZdS )
ÚDummyEstimatorParamsz,Mock classifier that takes params on predictc                 ó   — dS r}   rS   r~   s    rK   r   z*DummyEstimatorParams.__sklearn_is_fitted__Ê   r€   rM   c                 ó   — | S rF   rS   rW   s      rK   rZ   zDummyEstimatorParams.fitÍ   r[   rM   Fc                 ó   — || _         | S rF   ©Úgot_attribute©rJ   rX   r®   s      rK   rŒ   zDummyEstimatorParams.predictÐ   ó   € Ø*ˆÔØˆrM   c                 ó   — || _         | S rF   r­   r¯   s      rK   r�   z"DummyEstimatorParams.predict_probaÔ   r°   rM   c                 ó   — || _         | S rF   r­   r¯   s      rK   r‘   z&DummyEstimatorParams.predict_log_probaØ   r°   rM   Nrd   )	rO   rP   rQ   rR   r   rZ   rŒ   r�   r‘   rS   rM   rK   r©   r©   Ç   st   € € € € € Ø6Ð6ðð ð ðð ð ðð ð ð ðð ð ð ðð ð ð ð ð rM   r©   c                  ó�  — t          dg¦  «        } t          j        t          ¦  «        5  |                      dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          dt          ¦   «         fg¦  «        } t          j        t          |¬¦  «        5  |                      dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         }t          d|fg¦  «        }|                     d¬¦  «        t          dd d |d	œ|                     d
¬¦  «        ¤Žk    s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  |                      dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    d¬¦  «         |j        dk    sJ ‚t          |¦  «         t%          j        d¦  «        }t          j        t(          |¬¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t+          |¦  «        }|j        d         |j        d         usJ ‚|                     d¬¦  «        }|                     d¬¦  «        }|                     d
¬¦  «        D ]}|                     |¦  «         Œ|                     d
¬¦  «        D ]}|                     |¦  «         Œ|                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         ||k    sJ ‚d S )N)rx   rx   rx   zRLast step of Pipeline should implement fit or be the string 'passthrough'.*NoFit.*Úclf©ÚmatchÚsvcT©r]   )Ú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__CrS   )r'   ÚpytestÚraisesÚ	TypeErrorrZ   rD   rU   r^   Údictrc   rH   rI   Úreprr-   r   r   Únamed_stepsÚCÚreÚescapeÚ
ValueErrorr	   Úpop)	ÚpipelineÚmsgr´   ÚpipeÚfilter1Úpipe2rb   Úparams2Úxs	            rK   Ú 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Ô-Hð*ð *ò ð ð ð ð
 	‡O‚O˜3€OÑÔÐØŒ5�CŠ<ˆ<ˆ<ˆ<ØŒ5ˆ=ˆ=ˆ=åˆ�J„J€Jõ ‰%Œ%€CÝ�)Ñ$Ô$€GÝ�g˜wÐ'¨%°¨Ð6Ñ7Ô7€Dð Ô˜GÔ$¨Ð/Ð/Ð/Ð/ØÔ˜EÔ" cÐ)Ð)Ð)Ð)ð K€CÝ˜#�w™yœyÐ)¨E°3¨<Ð8Ñ9Ô9€HÝ	Œ•y¨Ð	,Ñ	,Ô	,ð !ð !Ø�Š�q�c�U˜Q˜CÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð 	‡O‚O˜3€OÑÔÐØŒ5�CŠ<ˆ<ˆ<ˆ<åˆ�J„J€Jõ Œ)ð	ñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð &ð &Ø�Š ˆÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ �$‰KŒK€EØÔ˜EÔ"¨%Ô*;¸EÔ*BÐBÐBÐBÐBð �_Š_ $ˆ_Ñ'Ô'€FØ×Ò DÐÑ)Ô)€Gà�_Š_ %ˆ_Ñ(Ô(ð ð ˆØ�
Š
�1‰Œˆˆà×Ò 5ÐÑ)Ô)ð ð ˆØ�Š�A‰Œˆˆð ‡J‚JˆuÑÔÐØ
‡J‚JˆwÑÔÐØ‡K‚K�ÑÔÐØ‡K‚K�ÑÔÐØ�WÒÐÐÐÐÐsG   ªAÁAÁAÂB<Â<C ÃC Ç7HÈH!È$H!Ê	J,Ê,J0Ê3J0zmeta_estimators, class_nameÚpcar   )ÚidentN©ÚpassthroughrÖ   )rÖ   NÚscaler,   Úsvdr   )ÚdroprÙ   c                 óð   — t          | ¦  «        } t          j        d|› d|› d�¦  «        }t          j        t
          |¬¦  «        5  |                      dgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz Expected an estimator instance (z"()), got estimator class instead (z).rµ   rx   )r	   rÇ   rÈ   rÀ   rÁ   rÂ   rZ   )Úmeta_estimatorsÚ
class_namerÌ   s      rK   Ú3test_meta_estimator_raises_class_not_instance_errorrÝ   1  sØ   € õ  ˜OÑ,Ô,€OÝ
Œ)ð	7¨:ð 	7ð 	7Ø(2ð	7ð 	7ð 	7ñô €Cõ 
Œ•y¨Ð	,Ñ	,Ô	,ð #ð #Ø×Ò˜a˜S˜EÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ÁA+Á+A/Á2A/c                  óì   — t           j        } t           j        }t          g ¦  «        }d}t	          j        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz(The pipeline is empty. Please add steps.rµ   )ÚirisÚdataÚtargetr'   rÀ   rÁ   rÉ   rZ   )rX   rY   rÍ   rÌ   s       rK   Útest_empty_pipelinerâ   J  sª   € ÝŒ	€AÝŒ€Aå�B‰<Œ<€DØ
4€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š��A‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA)Á)A-Á0A-c                  óN   — t          g ¦  «        } t          | ¦  «        }d|v sJ ‚dS )z+Check that dir() works on an empty pipelineÚstepsN)r'   Údir)rÍ   Úattrss     rK   Útest_empty_pipeline_dirrç   T  s/   € å�B‰<Œ<€DÝ�‰IŒI€EØ�eÐÐÐÐÐÐrM   c                  ój  — t          j        ddgg¦  «        } t          dt          ¦   «         fdt	          ¦   «         ff¦  «        }|                     | d ¬¦  «         |                     | ¦  «         |                     d¬¦  «         |                     | d ¬¦  «         |                     | ¦  «         d S )Nrx   é   Útransfr´   ©rY   rÖ   )rê   )r„   Úarrayr'   rl   r”   rZ   r�   rc   ©rX   rÍ   s     rK   Útest_pipeline_init_tuplerî   [  s�   € å
Œ�1�a�&�ÑÔ€AÝ�h¥¡¤Ð)¨Eµ9±;´;Ð+?Ð@ÑAÔA€DØ‡H‚HˆQ�$€HÑÔÐØ‡J‚Jˆq�M„M€Mà‡O‚O˜=€OÑ)Ô)Ð)Ø‡H‚HˆQ�$€HÑÔÐØ‡J‚Jˆq�M„M€M€M€MrM   c                  ó~  — t           j        } t           j        }t          ¦   «         }t	          t
          d¬¦  «        }t          d|fd|fg¦  «        }|                     | |¦  «         |                     | ¦  «         | 	                    | ¦  «         | 
                    | ¦  «         |                     | |¦  «         d S )Nré   ©Úkr¼   Úlogistic)rß   rà   rá   r!   r   r   r'   rZ   rŒ   r�   r‘   r�   )rX   rY   r´   rÎ   rÍ   s        rK   Útest_pipeline_methods_anovaró   g  s«   € åŒ	€AÝŒ€Aå
Ñ
Ô
€CÝ�) qÐ)Ñ)Ô)€GÝ�g˜wÐ'¨*°cÐ):Ð;Ñ<Ô<€DØ‡H‚HˆQ��N„N€NØ‡L‚L��O„O€OØ×Ò�qÑÔÐØ×Ò˜1ÑÔÐØ‡J‚Jˆq�!ÑÔÐÐÐrM   c                  óÎ  — t          dt          ¦   «         fdt          ¦   «         fg¦  «        } |                      d d d¬¦  «         |                      d ¦  «        sJ ‚| j        d         j        �J ‚| j        d         j        �J ‚t          j	        d¦  «        }t          j        t          |¬¦  «        5  |                      d d d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrê   r´   T)rX   rY   Úclf__should_succeedz.fit() got an unexpected keyword argument 'bad'rµ   )Úclf__bad)r'   rl   r”   rZ   rŒ   rÅ   rH   rI   rÇ   rÈ   rÀ   rÁ   rÂ   )rÍ   rÌ   s     rK   Útest_pipeline_fit_paramsr÷   v  s'  € å�h¥¡¤Ð)¨Eµ9±;´;Ð+?Ð@ÑAÔA€DØ‡H‚Hˆt�t°€HÑ6Ô6Ð6à�<Š<˜ÑÔÐÐÐàÔ˜HÔ%Ô'Ð/Ð/Ð/ØÔ˜HÔ%Ô'Ð/Ð/Ð/õ Œ)ÐDÑ
EÔ
E€CÝ	Œ•y¨Ð	,Ñ	,Ô	,ð ,ð ,Ø�Š��t dˆÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   Â4CÃCÃ!Cc                  óÊ  — t          j        ddgg¦  «        } t          dt          ¦   «         fdt	          ¦   «         fg¦  «        }|                     | d ¬¦  «         |                     | ¦  «        dk    sJ ‚|                     | d ¬¦  «        dk    sJ ‚|                     | d d ¬¦  «        dk    sJ ‚|                     | t          j        ddg¦  «        ¬¦  «        d	k    sJ ‚d S )
Nrx   ré   rê   r´   rë   é   )rY   r    ©r    é   )r„   rì   r'   rl   r”   rZ   r�   rí   s     rK   Ú%test_pipeline_sample_weight_supportedrü   †  så   € å
Œ�1�a�&�ÑÔ€AÝ�h¥¡¤Ð)¨Eµ9±;´;Ð+?Ð@ÑAÔA€DØ‡H‚HˆQ�$€HÑÔÐØ�:Š:�a‰=Œ=˜AÒÐÐÐØ�:Š:�a˜4ˆ:Ñ Ô  AÒ%Ð%Ð%Ð%Ø�:Š:�a˜4¨tˆ:Ñ4Ô4¸Ò9Ð9Ð9Ð9Ø�:Š:�a¥r¤x°°A°Ñ'7Ô'7ˆ:Ñ8Ô8¸AÒ=Ð=Ð=Ð=Ð=Ð=rM   c                  ó  — t          j        ddgg¦  «        } t          dt          ¦   «         fdt	          ¦   «         fg¦  «        }|                     | d ¬¦  «         |                     | ¦  «        dk    sJ ‚|                     | d ¬¦  «        dk    sJ ‚t          j        d¦  «        }t          j
        t          |¬	¦  «        5  |                     | t          j        ddg¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nrx   ré   rê   r´   rë   rù   rú   z:score() got an unexpected keyword argument 'sample_weight'rµ   )r„   rì   r'   rl   rw   rZ   r�   rÇ   rÈ   rÀ   rÁ   rÂ   )rX   rÍ   rÌ   s      rK   Ú'test_pipeline_sample_weight_unsupportedrþ   ‘  s9  € å
Œ�1�a�&�ÑÔ€AÝ�h¥¡¤Ð)¨Eµ4±6´6¨?Ð;Ñ<Ô<€DØ‡H‚HˆQ�$€HÑÔÐØ�:Š:�a‰=Œ=˜AÒÐÐÐØ�:Š:�a tˆ:Ñ,Ô,°Ò1Ð1Ð1Ð1å
Œ)ÐPÑ
QÔ
Q€CÝ	Œ•y¨Ð	,Ñ	,Ô	,ð 6ð 6Ø�
Š
�1¥B¤H¨a°¨VÑ$4Ô$4ˆ
Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6s   Ã,C<Ã<D ÄD c                  óJ  — t          dt          ¦   «         fg¦  «        } t          j        d¦  «        }t	          j        t          |¬¦  «        5  |                      d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          |¬¦  «        5  |                      d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        }t	          j        t          |¬¦  «        5  |                      d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	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É   rc   )rÍ   Ú	error_msgs     rK   Ú$test_pipeline_raise_set_params_errorr  ž  sÞ  € å�eÕ-Ñ/Ô/Ð0Ð1Ñ2Ô2€Dõ ”	ð	*ñô €Iõ
 
Œ•z¨Ð	3Ñ	3Ô	3ð %ð %Ø�Š˜VˆÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ
 
Œ•z¨Ð	3Ñ	3Ô	3ð 0ð 0Ø�Š¨ˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ ”	ð	Uñô €Iõ 
Œ•z¨Ð	3Ñ	3Ô	3ð 3ð 3Ø�Š¨6ˆÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s6   ÁA1Á1A5Á8A5ÂB:Â:B>ÃB>Ã4DÄDÄDc                  óv  — t           j        } t           j        }t          ¦   «         }t	          ddd¬¦  «        }t          d|fd|fg¦  «        }|                     | |¦  «         |                     | ¦  «         |                     | ¦  «         | 	                    | ¦  «         | 
                    | |¦  «         d S )NÚfullÚmleT©Ú
svd_solverÚn_componentsÚwhitenrÓ   Ú
classifier)rß   rà   rá   r!   r   r'   rZ   rŒ   r�   r‘   r�   )rX   rY   r´   rÓ   rÍ   s        rK   Ú$test_pipeline_methods_pca_classifierr  ¹  s¬   € åŒ	€AÝŒ€Aå
Ñ
Ô
€CÝ
˜¨e¸DÐ
AÑ
AÔ
A€CÝ�e˜S�\ L°#Ð#6Ð7Ñ8Ô8€DØ‡H‚HˆQ��N„N€NØ‡L‚L��O„O€OØ×Ò�qÑÔÐØ×Ò˜1ÑÔÐØ‡J‚Jˆq�!ÑÔÐÐÐrM   c                  óð  — t           j        } t          ddd¬¦  «        }t          d¬¦  «        }t	          d|fd|fg¦  «        }|                     | ¦  «         |                     | ¦  «        j        | j        d         fk    sJ ‚|                     |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | 
                    | ¦  «        ¦  «        ¦  «         d S )	Nr  r	  Tr
  )ÚnoveltyrÓ   Úlofr   )rß   rà   r   r%   r'   rZ   Úscore_samplesÚshapeÚfit_transformr=   ri   )rX   rÓ   r  rÍ   s       rK   Ú#test_pipeline_score_samples_pca_lofr  È  sà   € ÝŒ	€Aõ ˜¨e¸DÐ
AÑ
AÔ
A€CÝ
 TÐ
*Ñ
*Ô
*€CÝ�e˜S�\ E¨3 <Ð0Ñ1Ô1€DØ‡H‚HˆQ�K„K€Kà×Ò˜aÑ Ô Ô&¨1¬7°1¬:¨-Ò7Ð7Ð7Ð7à‡G‚GˆC×Ò˜aÑ Ô Ñ!Ô!Ð!Ý�D×&Ò& qÑ)Ô)¨3×+<Ò+<¸S¿]º]È1Ñ=MÔ=MÑ+NÔ+NÑOÔOÐOÐOÐOrM   c                  óØ  — t          j        dgdgg¦  «        } t          j        ddg¦  «        }t          t          ¦   «         ¦  «        }|                     | |¦  «         d}d}t          j        t          |¬¦  «        5 }|                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j
        j        t          ¦  «        sJ ‚|t          |j
        j        ¦  «        v sJ ‚d S )Nrx   ré   z<'LogisticRegression' object has no attribute 'score_samples'z+'Pipeline' has no attribute 'score_samples'rµ   )r„   rì   r)   r!   rZ   rÀ   rÁ   ÚAttributeErrorr  Ú
isinstanceÚvalueÚ	__cause__Ústr)rX   rY   rÍ   Ú	inner_msgÚ	outer_msgÚ	exec_infos         rK   Ú4test_score_samples_on_pipeline_without_score_samplesr   Ø  s  € Ý
Œ�1�#˜�s�ÑÔ€AÝ
Œ�!�Q�ÑÔ€Aõ Õ+Ñ-Ô-Ñ.Ô.€DØ‡H‚HˆQ��N„N€NàN€IØ=€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð ¸9Ø×Ò˜1ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s   Á?B!Â!B%Â(B%c                  óœ  — t           j        } t           j        }| j        d         }t	          t          j        |¦  «        ¦  «        }t          ¦   «         }t          ddd¬¦  «        }t          ¦   «         }||fD ]Ò}t          d|fd|fg¦  «        }|                     | |¦  «         |                     | ¦  «        }	|	j        |fk    sJ ‚|                     | ¦  «        }
|
j        ||fk    sJ ‚|                     | ¦  «        }|j        ||fk    sJ ‚|                     | ¦  «        }|j        ||fk    sJ ‚|                     | |¦  «         ŒÓd S )Nr   ré   Ú
randomizedT)r  r  r  Ú
preprocessr·   )rß   rà   rá   r  Úlenr„   Úuniquer,   r   r!   r'   rZ   rŒ   r�   r‘   r’   r�   )rX   rY   Ú	n_samplesÚ	n_classesÚscalerrÓ   r´   ÚpreprocessingrÍ   rŒ   ÚprobaÚ	log_probar’   s                rK   Ú.test_pipeline_methods_preprocessing_classifierr,  é  sc  € åŒ	€AÝŒ€AØ”˜”
€IÝ•B”I˜a‘L”LÑ!Ô!€IÝÑÔ€FÝ
˜1¨¸dÐ
CÑ
CÔ
C€CÝ
Ñ
Ô
€Cà  #˜ð ð ˆÝ˜,¨Ð6¸À¸ÐEÑFÔFˆØ�Š��A‰Œˆð —,’,˜q‘/”/ˆØŒ}  Ò,Ð,Ð,Ð,à×"Ò" 1Ñ%Ô%ˆØŒ{˜y¨)Ð4Ò4Ð4Ð4Ð4à×*Ò*¨1Ñ-Ô-ˆ	ØŒ 9¨iÐ"8Ò8Ð8Ð8Ð8à ×2Ò2°1Ñ5Ô5ÐØ Ô&¨9°iÐ*@Ò@Ð@Ð@Ð@à�
Š
�1�aÑÔÐÐð#ð rM   c                  ór  — t          ¦   «         } t          dd¬¦  «        }t          ¦   «         }t          dd¬¦  «        }|                      t          j        ¦  «        }|                     |¦  «        }t          d|fd|fg¦  «        }|                     t          j        ¦  «        }t          ||¦  «         d S )Nr   Úauto)Úrandom_stateÚn_initr(  ÚKmeans)r,   r   r  rß   rà   rž   r'   r>   )r(  ÚkmÚscaler_for_pipelineÚkm_for_pipelineÚscaledÚseparate_predrÍ   Úpipeline_preds           rK   Útest_fit_predict_on_pipeliner8    s³   € õ ÑÔ€FÝ	˜Q vÐ	.Ñ	.Ô	.€Bõ )Ñ*Ô*ÐÝ¨!°FÐ;Ñ;Ô;€Oð ×!Ò!¥$¤)Ñ,Ô,€FØ—N’N 6Ñ*Ô*€Mõ �hÐ 3Ð4°xÀÐ6QÐRÑSÔS€DØ×$Ò$¥T¤YÑ/Ô/€Må˜m¨]Ñ;Ô;Ð;Ð;Ð;rM   c                  óv  — t          ¦   «         } t          d¬¦  «        }t          d| fd|fg¦  «        }d}d}t          j        t
          |¬¦  «        5 }t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j	        t
          ¦  «        sJ ‚|t          |j        j	        ¦  «        v sJ ‚d S )	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         rK   Ú0test_fit_predict_on_pipeline_without_fit_predictr<    sú   € õ ÑÔ€FÝ
˜Ð
 Ñ
 Ô
 €CÝ�h Ð'¨%°¨Ð6Ñ7Ô7€Dà;€IØ=€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð %¸9Ý��mÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %å�i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s   ÁA0Á0A4Á7A4c                  ó  — t          dt          ¦   «         fdt          ¦   «         fg¦  «        } |                      d d dd¬¦  «         | j        d         j        d         sJ ‚| j        d         j        sJ ‚d| j        d         j        vsJ ‚d S )Nrê   r´   T)rX   rY   Útransf__should_get_thisrõ   Úshould_get_thisr›   )r'   rq   r”   rž   rÅ   rs   r—   ©rÍ   s    rK   Ú-test_fit_predict_with_intermediate_fit_paramsrA  ,  s¨   € õ �h¥Ñ 1Ô 1Ð2°U½I¹K¼KÐ4HÐIÑJÔJ€DØ×ÒØ
�$°È$ð ñ ô ð ð Ô˜HÔ%Ô0Ð1BÔCÐCÐCÐCØÔ˜EÔ"Ô-Ð-Ð-Ð-Ø 4Ô#3°HÔ#=Ô#HÐHÐHÐHÐHÐHÐHrM   Úmethod_name)rŒ   r�   r‘   c                 óî   — t          dt          ¦   «         fdt          ¦   «         fg¦  «        }|                     d d ¦  «         t	          || ¦  «        } |d d¬¦  «         |j        d         j        sJ ‚d S )Nrê   r´   T)rX   r®   )r'   rl   r©   rZ   r;  rÅ   r®   )rB  rÍ   Úmethods      rK   Ú(test_predict_methods_with_predict_paramsrE  8  s€   € õ �h¥¡¤Ð)¨EÕ3GÑ3IÔ3IÐ+JÐKÑLÔL€DØ‡H‚HˆT�4ÑÔÐÝ�T˜;Ñ'Ô'€FØ
€FˆT Ð&Ñ&Ô&Ð&àÔ˜EÔ"Ô0Ð0Ð0Ð0Ð0Ð0rM   Úcsr_containerc                 óò  — t           j                             ¦   «         }||                     d¬¦  «        z  }t           j        }t          dd¬¦  «        }t          d¬¦  «        }t          d|fd|fg¦  «        }|                     ||¦  «         | 	                    |¦  «        }|j
        |j
        d         d	fk    sJ ‚t          |d d …d d
…f         |                     |¦  «        ¦  «         t          |d d …d
f         |                     ||¦  «                             ¦   «         ¦  «         t          d|fd|fg¦  «        } | |¦  «        }|                     ||¦  «        }t          ||                     ¦   «         ¦  «         t!          |¦  «        }	|j        d         d         |	j        d         d         usJ ‚|                     d¬¦  «         |                     ||¦  «        j
        |j
        d         dfk    sJ ‚t          dt'          ¦   «         fd|fd|fg¦  «        }|                     ||¦  «        }|j
        |j
        d         dfk    sJ ‚d}
t          dt'          ¦   «         fdt)          ¦   «         fg¦  «        }t+          j        t.          |
¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          d|fd|ff¦  «        }|                     ||¦  «         d S )Nr   r‰   ré   ©r  r/  rx   rð   rØ   Úselectrù   éÿÿÿÿ)Ú	select__ké   Úmockrû   z>All estimators should implement fit and transform.*\bNoTrans\bri   Úno_transformrµ   )rß   rà   Úcopyr¤   rá   r   r   r&   rZ   ri   r  r>   r  r?   ÚravelÚtoarrayr	   Útransformer_listrc   rl   rU   rÀ   rÁ   rÂ   )rF  rX   rY   rØ   rI  ÚfsÚX_transformedÚX_spÚX_sp_transformedÚfs2rÌ   s              rK   Útest_feature_unionrX  F  s$  € õ 	Œ	�ŠÑÔ€AØˆ�Š�Qˆ‰ŒÑ€AÝŒ€AÝ
 A°AÐ
6Ñ
6Ô
6€CÝ˜1ÐÑÔ€FÝ	˜˜s�| h°Ð%7Ð8Ñ	9Ô	9€BØ‡F‚Fˆ1ˆa�L„L€LØ—L’L ‘O”O€MØÔ 1¤7¨1¤:¨q /Ò1Ð1Ð1Ð1õ ˜m¨A¨A¨A¨s°¨s¨FÔ3°S×5FÒ5FÀqÑ5IÔ5IÑJÔJÐJÝ�} Q Q Q¨ UÔ+¨V×-AÒ-AÀ!ÀQÑ-GÔ-G×-MÒ-MÑ-OÔ-OÑPÔPÐPõ 
˜˜s�| h°Ð%7Ð8Ñ	9Ô	9€BØˆ=˜ÑÔ€DØ×'Ò'¨¨aÑ0Ô0ÐÝ˜mÐ-=×-EÒ-EÑ-GÔ-GÑHÔHÐHõ �‰)Œ)€CØÔ˜qÔ! !Ô$¨CÔ,@ÀÔ,CÀAÔ,FÐFÐFÐFÐFð ‡M‚M˜A€MÑÔÐØ×Ò˜A˜qÑ!Ô!Ô'¨A¬G°A¬J¸¨?Ò:Ð:Ð:Ð:õ 
˜¥¡¤Ð)¨E°3¨<¸(ÀFÐ9KÐLÑ	MÔ	M€BØ×$Ò$ Q¨Ñ*Ô*€MØÔ 1¤7¨1¤:¨q /Ò1Ð1Ð1Ð1ð M€CÝ	˜¥V¡X¤XÐ.°ÅÁÄÐ0KÐLÑ	MÔ	M€BÝ	Œ•y¨Ð	,Ñ	,Ô	,ð ð Ø
�Šˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
˜˜s�| h°Ð%7Ð8Ñ	9Ô	9€BØ‡F‚Fˆ1ˆa�L„L€L€L€Ls   ÊKËKËK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 ‚dS )z6Check the behaviour of `named_transformers` attribute.rê   ÚnoinvtransfN)rl   rf   r&   Únamed_transformersrê   rZ  )rê   rZ  rS  s      rK   Ú%test_feature_union_named_transformersr\  v  s˜   € å‰XŒX€FÝ‘-”-€KÝ	˜ &Ð)¨M¸;Ð+GÐHÑ	IÔ	I€BØÔ  Ô*¨fÒ4Ð4Ð4Ð4ØÔ  Ô/°;Ò>Ð>Ð>Ð>ð Ô Ô'¨6Ò1Ð1Ð1Ð1ØÔ Ô,°Ò;Ð;Ð;Ð;Ð;Ð;rM   c                  ó¨   — t          d¬¦  «        } t          ¦   «         }t          | |¦  «        }t          |j        Ž \  }}|dk    sJ ‚|| |fk    sJ ‚d S )Nr  r:  )rÓ   rê   )r   rl   r*   ÚziprR  )rÓ   rM  ÚfuÚnamesÚtransformerss        rK   Útest_make_unionrb  ƒ  si   € Ý
˜Ð
 Ñ
 Ô
 €CÝ‰8Œ8€DÝ	�C˜Ñ	Ô	€BÝ˜rÔ2Ð3Ñ€Eˆ<ØÐ%Ò%Ð%Ð%Ð%Ø˜C ˜;Ò&Ð&Ð&Ð&Ð&Ð&rM   c                  óz  — 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 ¦  «         d S # 1 swxY w Y   d S )Nr  r:  rù   ©Ún_jobszEmake_union() got an unexpected keyword argument 'transformer_weights'rµ   é
   rx   )rÓ   rl   ©Útransformer_weights)
r   rl   r*   rR  re  rÇ   rÈ   rÀ   rÁ   rÂ   )rÓ   rM  r_  rÌ   s       rK   Útest_make_union_kwargsri  Œ  s!  € Ý
˜Ð
 Ñ
 Ô
 €CÝ‰8Œ8€DÝ	�C˜ aÐ	(Ñ	(Ô	(€BØÔ¥*¨S°$Ñ"7Ô"7Ô"HÒHÐHÐHÐHØ�”	Š>ˆ>ˆ>ˆ>õ Œ)ØOñô €Cõ 
Œ•y¨Ð	,Ñ	,Ô	,ð Lð LÝ�3˜¸"ÈÐ2JÐ2JÐKÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls   ÂB0Â0B4Â7B4rù   c                 ó<   ‡ ‡— t          ¦   «         }ˆ ˆfd„|_        |S )z>Helper to create a mock transformer with custom feature names.c                 ó:   •— ˆfd„t          ‰¦  «        D ¦   «         S )Nc                 ó   •— g | ]}‰› |› �‘Œ	S rS   rS   )Ú.0ÚiÚ	base_names     €rK   ú
<listcomp>z=create_mock_transformer.<locals>.<lambda>.<locals>.<listcomp>ž  s1   ø€ ð 9ð 9ð 9Øˆ9Ð�aÐÐð9ð 9ð 9rM   )Úrange)Úinput_featuresro  Ú
n_featuress    €€rK   ú<lambda>z)create_mock_transformer.<locals>.<lambda>ž  s3   ø€ ð 9ð 9ð 9ð 9Ý#(¨Ñ#4Ô#4ð9ñ 9ô 9€ rM   )rl   Úget_feature_names_out)ro  rs  rM  s   `` rK   Úcreate_mock_transformerrv  ›  s2   øø€ å‰8Œ8€Dð"ð "ð "ð "ð "€DÔð €KrM   c                  ó>  — t           j        } t           j        }t          ¦   «         }t	          d¦  «        }t          ||d¬¦  «        }|j        rJ ‚t          ||d¬¦  «        }|                     | |¦  «         t          g d¢| 	                    ¦   «         ¦  «         d S )Nrê   F©Úverbose_feature_names_outT)Ú	pca__pca0Ú	pca__pca1Ú	pca__pca2Ú	pca__pca3Útransf__transf0Útransf__transf1Útransf__transf2)
rß   rà   rá   r   rv  r*   ry  rZ   r?   ru  )rX   rY   rÓ   rM  ÚunionÚfu_unions         rK   Ú0test_make_union_passes_verbose_feature_names_outrƒ  ¤  s¯   € õ 	Œ	€AÝŒ€Aå
‰%Œ%€CÝ" 8Ñ,Ô,€DÝ�s˜D¸EÐBÑBÔB€EàÔ.Ð.Ð.Ð.å˜#˜t¸tÐDÑDÔD€HØ‡L‚L��AÑÔÐåð	
ð 	
ð 	
ð 	×&Ò&Ñ(Ô(ñô ð ð ð rM   c                  ó¼  — t           j        } t          dd¬¦  «        }t          d|fg¦  «        }|                     | ¦  «                             | ¦  «        }|                     | ¦  «        }|                     | ¦  «        }t          ||¦  «         t          ||¦  «         |                     |¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nré   r  )r  r  rÓ   )	rß   rà   r   r'   rZ   ri   r  r>   ro   )rX   rÓ   rË   ÚX_transÚX_trans2ÚX_trans3ÚX_backÚX_back2s           rK   Útest_pipeline_transformrŠ  Á  sÑ   € õ 	Œ	€AÝ
˜1¨Ð
0Ñ
0Ô
0€CÝ˜% ˜˜Ñ'Ô'€Hð �lŠl˜1‰oŒo×'Ò'¨Ñ*Ô*€GØ×%Ò% aÑ(Ô(€HØ× Ò  Ñ#Ô#€HÝ˜g xÑ0Ô0Ð0Ý˜g xÑ0Ô0Ð0à×'Ò'¨Ñ0Ô0€FØ×#Ò# GÑ,Ô,€GÝ˜f gÑ.Ô.Ð.Ð.Ð.rM   c                  ó  — t           j        } t           j        }t          ¦   «         }t	          d|fg¦  «        }|                     | |¦  «        }|                     | |¦  «                             | ¦  «        }t          ||¦  «         d S )NrM  )	rß   rà   rá   rl   r'   r  rZ   ri   r>   )rX   rY   rê   rË   r…  r†  s         rK   Útest_pipeline_fit_transformrŒ  Ô  s|   € åŒ	€AÝŒ€AÝ‰XŒX€FÝ˜& &Ð)Ð*Ñ+Ô+€Hð ×$Ò$ Q¨Ñ*Ô*€GØ�zŠz˜!˜QÑÔ×)Ò)¨!Ñ,Ô,€HÝ˜g xÑ0Ô0Ð0Ð0Ð0rM   z
start, end))r   rx   )r   ré   )rx   ré   )rx   rù   ©Nrx   )rx   NrN   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                             ¦   «         ¦  «        t          |j                             ¦   «         ¦  «        | |…         k    sJ ‚|                     d¬¦  «        }|                     d¬¦  «        }|d	= |d	= ||k    sJ ‚d
}t          j
        t          |¬¦  «        5  || |d…          d d d ¦  «         d S # 1 swxY w Y   d S )NÚtransf1Útransf2r´   Ú123T)ÚmemoryÚverboseFr¸   rä   z*Pipeline slicing only supports a step of 1rµ   rJ  )r'   rl   r”   r  rä   ÚlistrÅ   Úitemsr^   rÀ   rÁ   rÉ   )ÚstartÚendrÍ   Ú
pipe_sliceÚpipe_paramsÚpipe_slice_paramsrÌ   s          rK   Útest_pipeline_slicer›  á  s·  € õ Ø
•V‘X”XÐ	 ­F©H¬HÐ 5¸½y¹{¼{Ð7KÐLØØðñ ô €Dð
 �e˜C�i”€Jå�j¥(Ñ+Ô+Ð+Ð+Ð+àÔ˜tœz¨%°¨)Ô4Ò4Ð4Ð4Ð4õ 	ˆZÔ#×)Ò)Ñ+Ô+Ñ,Ô,Ý�Ô ×&Ò&Ñ(Ô(Ñ)Ô)¨%°¨)Ô4ò	5ð 	5ð 	5ð 	5ð —/’/ u�/Ñ-Ô-€KØ"×-Ò-°5Ð-Ñ9Ô9ÐØ�GÐØ˜'Ð"ØÐ+Ò+Ð+Ð+Ð+à
6€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð ØˆU�3�rˆ\ÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ä*EÅEÅ
Ec                  ó¾  — 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 ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |d          d d d ¦  «         d S # 1 swxY w Y   d S )Nrê   r´   r   rJ  rù   Úfoobar)rl   r”   r'   rÀ   rÁ   Ú
IndexErrorÚKeyError)rê   r´   rÍ   s      rK   Útest_pipeline_indexr      sn  € Ý‰XŒX€FÝ
‰+Œ+€CÝ�h Ð'¨%°¨Ð6Ñ7Ô7€DØ�Œ7�fÒÐÐÐØ�Œ>˜VÒ#Ð#Ð#Ð#Ø�Œ8�sŠ?ˆ?ˆ?ˆ?Ø�Œ;˜#ÒÐÐÐõ 
Œ•zÑ	"Ô	"ð ð ØˆQŒˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•xÑ	 Ô	 ð ð ØˆXŒˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Â	BÂBÂBÂ<	CÃCÃC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 ‚|                     d| fg¬¦  «         d| fg|j        k    sJ ‚|                     |¬¦  «         d|fg|j        k    sJ ‚|                     dg¬¦  «         t          j        d¦  «        }t          j        t          |¬¦  «        5  | 
                    dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   d	}t          j        t          |¬¦  «        5  |                     dggdg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrM  Úmock2©rä   ©rM  )ÚjunkrS   zJLast step of Pipeline should implement fit or be the string 'passthrough'.rµ   rx   z0This 'Pipeline' has no attribute 'fit_transform')rl   r'   rÅ   rä   rc   rÇ   rÈ   rÀ   rÁ   rÂ   rZ   r  r  )r�  r�  rË   rÌ   s       rK   Útest_set_pipeline_stepsr¦    s\  € Ý‰hŒh€GÝ‰hŒh€GÝ˜& 'Ð*Ð+Ñ,Ô,€HØÔ Ô'¨7Ð2Ð2Ð2Ð2ð  Ð(Ð)€H„NØ˜Ô-Ð-Ð-Ð-Ð-ØÔ Ô(¨GÐ3Ð3Ð3Ð3Ø�gÐÐ 8¤>Ò1Ð1Ð1Ð1ð ×Ò ¨Ð0Ð1ÐÑ2Ô2Ð2Ø�WÐÐ (¤.Ò0Ð0Ð0Ð0ð ×Ò˜WÐÑ%Ô%Ð%Ø�WÐÐ (¤.Ò0Ð0Ð0Ð0ð ×Ò˜|˜nÐÑ-Ô-Ð-Ý
Œ)ØTñô €Cõ 
Œ•y¨Ð	,Ñ	,Ô	,ð !ð !Ø�Š�q�c�U˜Q˜CÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð =€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð +ð +Ø×Ò  ˜u q cÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s$   ÄD1Ä1D5Ä8D5ÅF Æ FÆFc                  óB  — 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 ‚d S )Nré   rz   rM  r{   r¢  Úvalues)rl   rw   r'   rÅ   rM  r{   r¨  )rê   Úmult2rË   s      rK   Útest_pipeline_named_stepsrª  3  sÜ   € Ý‰XŒX€FÝ�aˆL‰LŒL€EÝ˜& &Ð)¨F°E¨?Ð;Ñ<Ô<€Hð �XÔ)Ð)Ð)Ð)Ð)Ø˜(Ô.Ð.Ð.Ð.Ð.ØÔÔ$¨Ð.Ð.Ð.Ð.ØÔÔ$¨Ð-Ð-Ð-Ð-õ ˜( FÐ+¨f°e¨_Ð=Ñ>Ô>€HØÔÔ&¨fÐ4Ð4Ð4Ð4ØÔÔ$¨Ð-Ð-Ð-Ð-Ð-Ð-rM   rÖ   c                 óX  — 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¦  «        }|                     ||¦  «         g d
¢}d„ |j        D ¦   «         }||k    sJ ‚d S )Nrx   ré   rz   rù   é   Úm2ÚbadÚm3Úm5)r­  r®  r¯  r°  c                 ó   — g | ]\  }}|‘ŒS rS   rS   )rm  ÚnameÚ_s      rK   rp  z9test_pipeline_correctly_adjusts_steps.<locals>.<listcomp>R  s   € Ð7Ð7Ð7™W˜T 1�DÐ7Ð7Ð7rM   )r„   rì   rw   r'   rZ   rä   )	rÖ   rX   rY   r©  Úmult3Úmult5rË   Úexpected_namesÚactual_namess	            rK   Ú%test_pipeline_correctly_adjusts_stepsr¸  D  sÂ   € å
Œ�1�#�‰Œ€AÝ
Œ�!�‰Œ€AÝ�aˆL‰LŒL€EÝ�aˆL‰LŒL€EÝ�aˆL‰LŒL€EåØ
�ˆ˜ Ð,¨t°U¨m¸dÀE¸]ÐKñô €Hð ‡L‚L��AÑÔÐØ.Ð.Ð.€NØ7Ð7¨¬Ð7Ñ7Ô7€LØ˜\Ò)Ð)Ð)Ð)Ð)Ð)rM   c                 ó°	  ‡‡‡— t          j        dgg¦  «        }t          j        dg¦  «        }t          d¬¦  «        Št          d¬¦  «        Št          d¬¦  «        Šˆˆˆfd„} |¦   «         }d}t          |gg|                     ||¦  «        ¦  «         t          |g|                     |¦  «                             |¦  «        ¦  «         t          ||                     |gg¦  «        ¦  «         |                     | ¬¦  «         d	}t          |gg|                     ||¦  «        ¦  «         t          |g|                     |¦  «                             |¦  «        ¦  «         t          ||                     |gg¦  «        ¦  «         | 	                    d
¬¦  «        |j
        ‰| ‰d ddd ddœ	k    sJ ‚|                     | ¬¦  «         d}t          |gg|                     ||¦  «        ¦  «         t          |g|                     |¦  «                             |¦  «        ¦  «         t          ||                     |gg¦  «        ¦  «         g d¢}|D ]} t          ||¦  «        |¦  «         Œ|                     ‰¬¦  «         d	}t          |gg|                     ||¦  «        ¦  «         t          |g|                     |¦  «                             |¦  «        ¦  «         t          ||                     |gg¦  «        ¦  «          |¦   «         }|                     | ¬¦  «         d}t          |gg|                     ||¦  «                             |¦  «        ¦  «         t          |gg|                     ||¦  «        ¦  «         t          ||                     |gg¦  «        ¦  «         d}d}	t          j        t          |	¬¦  «        5 }
t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   t!          |
j        j        t          ¦  «        sJ ‚|t'          |
j        j        ¦  «        v sJ ‚d	}t)          d‰fd| fd‰fg¦  «        }t          |gg|                     ||¦  «        ¦  «         t          |g|                     |¦  «                             |¦  «        ¦  «         t          ||                     |gg¦  «        ¦  «         d S )Nrx   ré   rz   rù   r¬  c                  ó4   •— t          d‰ fd‰fd‰fg¦  «        S )Nr­  r¯  Úlast)r'   )r©  r´  rµ  s   €€€rK   Úmakez0test_set_pipeline_step_passthrough.<locals>.make^  s$   ø€ Ý˜$ ˜¨¨u¨¸À°ÐGÑHÔHÐHrM   é   ©r¯  rf  Tr¸   F)	rä   r­  r¯  r»  r’  Úm2__multÚ
last__multÚtransform_inputr“  ©r­  )r�   r‘   r’   ri   r�   )r»  é   z''str' object has no attribute 'predict'z*This 'Pipeline' has no attribute 'predict'rµ   rŒ   r­  r¯  r»  )r„   rì   rw   r?   r  rZ   rŒ   ro   rc   r^   rä   r;  ri   rÀ   rÁ   r  r  r  r  r  r'   )rÖ   rX   rY   r¼  rË   ÚexpÚother_methodsrD  r  r  r  r©  r´  rµ  s              @@@rK   Ú"test_set_pipeline_step_passthroughrÆ  V  s!  øøø€ å
Œ�1�#�‰Œ€AÝ
Œ�!�‰Œ€AÝ�aˆL‰LŒL€EÝ�aˆL‰LŒL€EÝ�aˆL‰LŒL€EðIð Ið Ið Ið Ið Ið Ið ˆt‰vŒv€Hà
€CÝ˜˜�w × 6Ò 6°q¸!Ñ <Ô <Ñ=Ô=Ð=Ý˜�u˜hŸlšl¨1™oœo×5Ò5°aÑ8Ô8Ñ9Ô9Ð9Ý�q˜(×4Ò4°s°e°WÑ=Ô=Ñ>Ô>Ð>à×Ò˜;ÐÑ'Ô'Ð'Ø
€CÝ˜˜�w × 6Ò 6°q¸!Ñ <Ô <Ñ=Ô=Ð=Ý˜�u˜hŸlšl¨1™oœo×5Ò5°aÑ8Ô8Ñ9Ô9Ð9Ý�q˜(×4Ò4°s°e°WÑ=Ô=Ñ>Ô>Ð>Ø×Ò DÐÑ)Ô)Ø”ØØØØØØØØð
.ð 
.ò 
ð 
ð 
ð 
ð ×Ò˜;ÐÑ'Ô'Ð'Ø
€CÝ˜˜�w × 6Ò 6°q¸!Ñ <Ô <Ñ=Ô=Ð=Ý˜�u˜hŸlšl¨1™oœo×5Ò5°aÑ8Ô8Ñ9Ô9Ð9Ý�q˜(×4Ò4°s°e°WÑ=Ô=Ñ>Ô>Ð>ðð ð €Mð  ð %ð %ˆØ!��˜&Ñ!Ô! !Ñ$Ô$Ð$Ð$à×Ò˜5ÐÑ!Ô!Ð!Ø
€CÝ˜˜�w × 6Ò 6°q¸!Ñ <Ô <Ñ=Ô=Ð=Ý˜�u˜hŸlšl¨1™oœo×5Ò5°aÑ8Ô8Ñ9Ô9Ð9Ý�q˜(×4Ò4°s°e°WÑ=Ô=Ñ>Ô>Ð>àˆt‰vŒv€HØ×Ò˜[ÐÑ)Ô)Ð)à
€CÝ˜˜�w §¢¨Q°Ñ 2Ô 2× <Ò <¸QÑ ?Ô ?Ñ@Ô@Ð@Ý˜˜�w × 6Ò 6°q¸!Ñ <Ô <Ñ=Ô=Ð=Ý�q˜(×4Ò4°s°e°WÑ=Ô=Ñ>Ô>Ð>à9€IØ<€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð %¸9Ý�˜)Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %å�i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6ð €CÝ˜$ ˜¨¨{Ð(;¸fÀe¸_ÐMÑNÔN€HÝ˜˜�w × 6Ò 6°q¸!Ñ <Ô <Ñ=Ô=Ð=Ý˜�u˜hŸlšl¨1™oœo×5Ò5°aÑ8Ô8Ñ9Ô9Ð9Ý�q˜(×4Ò4°s°e°WÑ=Ô=Ñ>Ô>Ð>Ð>Ð>s   ÏO1Ï1O5Ï8O5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 ‚d S )Nr¬  rŒ   rÖ   r   rÕ   ro   )	r)   rw   rŒ   ri   ro   rl   Úhasattrrä   rf   )rË   s    rK   Útest_pipeline_ducktypingrÉ  §  sW  € Ý�T !™WœWÑ%Ô%€HØÔÐØÔÐØÔÐå�V™XœXÑ&Ô&€HÝ�x Ñ+Ô+Ð+Ð+Ð+ØÔÐØÔÐå˜]Ñ+Ô+€HØŒ>˜!ÔÐ >Ò>Ð>Ð>Ð>Ý�x Ñ+Ô+Ð+Ð+Ð+ØÔÐØÔÐå�V™XœX¥{¡}¤}Ñ5Ô5€HÝ�x Ñ+Ô+Ð+Ð+Ð+ØÔÐÝ�xÐ!4Ñ5Ô5Ð5Ð5Ð5å�[™]œ]­F©H¬HÑ5Ô5€HÝ�x Ñ+Ô+Ð+Ð+Ð+ØÔÐÝ�xÐ!4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5rM   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 ‚d S )Nr   ztransf-1rx   ztransf-2ré   Ú	fitparamt)rl   r)   r  r'   rä   r”   )Út1Út2rÍ   s      rK   Útest_make_pipelinerÎ  Ã  sö   € Ý	‰Œ€BÝ	‰Œ€BÝ˜˜RÑ Ô €DÝ�d�HÑ%Ô%Ð%Ð%Ð%ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)å˜˜R¥¡¤Ñ-Ô-€DÝ�d�HÑ%Ô%Ð%Ð%Ð%ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)ØŒ:�aŒ=˜Ô˜{Ò*Ð*Ð*Ð*Ð*Ð*rM   zpipeline, check_estimator_typec                 ó.   — t          | ¦  «        j        d u S rF   ©r2   Úestimator_type©Úests    rK   rt  rt  Ù  s   € � ™œÔ4¸Ð<€ rM   c                 ó.   — t          | ¦  «        j        d u S rF   rÐ  rÒ  s    rK   rt  rt  Û  s   € ¥8¨C¡=¤=Ô#?À4Ð#G€ rM   c                 ó>   — t          | ¦  «          || ¦  «        sJ ‚dS )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     rK   Útest_pipeline_estimator_typer×  Ò  s,   € õ& 	ˆ�N„N€NØÐ Ñ)Ô)Ð)Ð)Ð)Ð)Ð)rM   c                  óž   — t          g ¬¦  «        } t          ¦   «         }|                     ¦   «         }|                      ¦   «         |k    sJ ‚dS )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      rK   Ú%test_sklearn_tags_with_empty_pipelinerÝ  é  sQ   € õ  BÐ'Ñ'Ô'€NÝ	‰Œ€Bà×'Ò'Ñ)Ô)€MØ×*Ò*Ñ,Ô,°Ò=Ð=Ð=Ð=Ð=Ð=rM   c                  óØ  — t           j        } t           j        }t          ddd¬¦  «        }t	          d¬¦  «        }t          d|fd|fgdd	i¬
¦  «        }|                     | |¦  «         |                     | ¦  «        }t          d|fd|fgdd	i¬
¦  «        }|                     | |¦  «        }t          dt          ¦   «         fd|fd|fgdd	i¬
¦  «        }|                     | |¦  «        }t          |d d …d d…f         d	|                     | ¦  «        z  ¦  «         t          |d d …df         |                     | |¦  «                             ¦   «         ¦  «         t          |d d …d d…f         d	|                     | ¦  «        z  ¦  «         t          |d d …df         |                     | |¦  «                             ¦   «         ¦  «         |j        | j        d         dfk    sJ ‚d S )Nré   r"  r   ©r  r  r/  rx   rð   rÓ   rI  rf  rg  rM  rJ  é   )rß   rà   rá   r   r   r&   rZ   ri   r  rl   r>   r?   rP  r  )rX   rY   rÓ   rI  rS  rT  ÚX_fit_transformedÚX_fit_transformed_wo_methods           rK   Útest_feature_union_weightsrã  ö  s  € åŒ	€AÝŒ€AÝ
˜1¨ÀAÐ
FÑ
FÔ
F€CÝ˜1ÐÑÔ€Få	Ø
�ˆ˜ &Ð)Ð*ÀÈÀð
ñ 
ô 
€Bð ‡F‚Fˆ1ˆa�L„L€LØ—L’L ‘O”O€Må	Ø
�ˆ˜ &Ð)Ð*ÀÈÀð
ñ 
ô 
€Bð ×(Ò(¨¨AÑ.Ô.Ðå	Ø
•&‘(”(Ð	˜e S˜\¨H°fÐ+=Ð>Ø# R˜Lð
ñ 
ô 
€Bð #%×"2Ò"2°1°aÑ"8Ô"8Ðõ ˜m¨A¨A¨A¨s°¨s¨FÔ3°R¸#×:KÒ:KÈAÑ:NÔ:NÑ5NÑOÔOÐOÝ�} Q Q Q¨ UÔ+¨V×-AÒ-AÀ!ÀQÑ-GÔ-G×-MÒ-MÑ-OÔ-OÑPÔPÐPÝÐ/°°°°3°B°3°Ô7¸¸c×>OÒ>OÐPQÑ>RÔ>RÑ9RÑSÔSÐSÝÐ(¨¨¨¨B¨Ô/°×1EÒ1EÀaÈÑ1KÔ1K×1QÒ1QÑ1SÔ1SÑTÔTÐTØ&Ô,°´¸´¸Q°Ò?Ð?Ð?Ð?Ð?Ð?rM   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        d         t          | ¦  «        k    sJ ‚|                     | ¦  «         |                     | ¦  «        }|j        |j        k    sJ ‚t          |                     ¦   «         |                     ¦   «         ¦  «         | 	                    | ¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         |                     | ¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         d S )	NÚwordsÚword©ÚanalyzerÚcharsÚcharré   rd  r   )
ÚJUNK_FOOD_DOCSr&   r   rZ   ri   r  r$  r?   rQ  r  )rX   rS  Úfs_parallelÚfs_parallel2rT  ÚX_transformed_parallelÚX_transformed_parallel2s          rK   Útest_feature_union_parallelrð    sù  € õ 	€Aå	à•o¨vÐ6Ñ6Ô6Ð7Ø•o¨vÐ6Ñ6Ô6Ð7ð	
ñ
ô 
€Bõ à•o¨vÐ6Ñ6Ô6Ð7Ø•o¨vÐ6Ñ6Ô6Ð7ð	
ð ðñ ô €Kõ  à•o¨vÐ6Ñ6Ô6Ð7Ø•o¨vÐ6Ñ6Ô6Ð7ð	
ð ðñ ô €Lð ‡F‚Fˆ1�I„I€IØ—L’L ‘O”O€MØÔ˜qÔ!¥S¨¡V¤VÒ+Ð+Ð+Ð+à‡O‚O�AÑÔÐØ(×2Ò2°1Ñ5Ô5ÐØÔÐ"8Ô">Ò>Ð>Ð>Ð>Ý�}×,Ò,Ñ.Ô.Ð0F×0NÒ0NÑ0PÔ0PÑQÔQÐQð +×8Ò8¸Ñ;Ô;ÐÝ�}×,Ò,Ñ.Ô.Ð0G×0OÒ0OÑ0QÔ0QÑRÔRÐRð +×4Ò4°QÑ7Ô7ÐÝ�}×,Ò,Ñ.Ô.Ð0G×0OÒ0OÑ0QÔ0QÑRÔRÐRÐRÐRrM   c                  ó4  — t          d¬¦  «        } t          dd¬¦  «        }t          d|fd| fg¦  «        }|                     t          ¦  «         |                     ¦   «         }|D ]}d|v sd	|v sJ ‚Œt          |¦  «        d
k    sJ ‚t          dt          ¦   «         fg¦  «                             dgg¦  «        }t          j        d¦  «        }t          j
        t          |¬¦  «        5  |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nræ  rç  Úchar_wb)rù   rù   )rè  Úngram_rangeré  rå  Úchars__Úwords__é#   Útr1rx   zDTransformer tr1 (type Transf) does not provide get_feature_names_outrµ   )r   r&   rZ   rë  ru  r$  rl   rÇ   rÈ   rÀ   rÁ   r  )Ú	word_vectÚ	char_vectÚftÚfeature_namesÚfeatrÌ   s         rK   Ú test_feature_union_feature_namesrý  G  ss  € Ý¨Ð0Ñ0Ô0€IÝ¨ÀÐGÑGÔG€IÝ	˜ Ð+¨g°yÐ-AÐBÑ	CÔ	C€BØ‡F‚F�>ÑÔÐØ×,Ò,Ñ.Ô.€MØð 6ð 6ˆØ˜DÐ Ð  I°Ð$5Ð$5Ð$5Ð5øÝˆ}ÑÔ Ò#Ð#Ð#Ð#å	˜�v™xœxÐ(Ð)Ñ	*Ô	*×	.Ò	.°°¨uÑ	5Ô	5€Bå
Œ)ØNñô €Cõ 
Œ•~¨SÐ	1Ñ	1Ô	1ð #ð #Ø
× Ò Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Ã+DÄDÄDc                  óŒ  — t           j        } t           j        }t          t	          d¬¦  «        t          ¦   «         ¦  «        }|                     | |¦  «         t          j        t          ¦  «        5  t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t	          d¬¦  «        t          d¬¦  «        ¦  «        }t          j        t          ¦  «        5  t          |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     | |¦  «         t          |j        t          j        |¦  «        ¦  «         d S )Nrx   rð   Úclasses_r   ©r/  )rß   rà   rá   r)   r   r    rZ   rÀ   rÁ   r  r;  r!   r?   rÿ  r„   r%  )rX   rY   Úregr´   s       rK   Útest_classes_propertyr  Z  s…  € ÝŒ	€AÝŒ€Aå
� aÐ(Ñ(Ô(Õ*:Ñ*<Ô*<Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MÝ	Œ•~Ñ	&Ô	&ð !ð !Ý��ZÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ � aÐ(Ñ(Ô(Õ*<È!Ð*LÑ*LÔ*LÑ
MÔ
M€CÝ	Œ•~Ñ	&Ô	&ð !ð !Ý��ZÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !à‡G‚GˆAˆq�M„M€MÝ�s”|¥R¤Y¨q¡\¤\Ñ2Ô2Ð2Ð2Ð2s$   Á2BÂBÂBÃC<Ã<D ÄD c                  ó  — t          d¦  «        } t          d¦  «        }t          d¦  «        }d„ |_        d„ | _        d„ |_        t          d| fd|fg¦  «        }t          ddgg|                     t          j        d	gg¦  «        ¦  «        ¦  «         t          d
dg|                     ¦   «         ¦  «         d|fg|_        t          dgg|                     t          j        d	gg¦  «        ¦  «        ¦  «         t          dg|                     ¦   «         ¦  «         |                     d|fg¬¦  «         t          dgg|                     t          j        d	gg¦  «        ¦  «        ¦  «         t          dg|                     ¦   «         ¦  «         |                     |¬¦  «         t          dgg|                     t          j        d	gg¦  «        ¦  «        ¦  «         t          dg|                     ¦   «         ¦  «         d S )Nré   rù   r¬  c                 ó   — dgS ©NÚx3rS   ©rr  s    rK   rt  z.test_set_feature_union_steps.<locals>.<lambda>o  ó   € ¸$¸€ rM   c                 ó   — dgS ©NÚx2rS   r  s    rK   rt  z.test_set_feature_union_steps.<locals>.<lambda>p  r  rM   c                 ó   — dgS )NÚx5rS   r  s    rK   rt  z.test_set_feature_union_steps.<locals>.<lambda>q  r  rM   r­  r¯  rx   Úm2__x2Úm3__x3r°  Úm5__x5rM  )rR  Úmock__x3r¤  Úmock__x5)	rw   ru  r&   r?   ri   r„   r…   rR  rc   )r©  r´  rµ  rú  s       rK   Útest_set_feature_union_stepsr  j  sÜ  € Ý�‰GŒG€EÝ�‰GŒG€EÝ�‰GŒG€Eà"?Ð"?€EÔØ"?Ð"?€EÔØ"?Ð"?€EÔå	˜˜e�} t¨U mÐ4Ñ	5Ô	5€BÝ˜˜A˜�x §¢­b¬j¸1¸#¸Ñ.?Ô.?Ñ!@Ô!@ÑAÔAÐAÝ˜ (Ð+¨R×-EÒ-EÑ-GÔ-GÑHÔHÐHð ! %˜=˜/€BÔÝ˜˜�u˜bŸlšl­2¬:¸°s°eÑ+<Ô+<Ñ=Ô=Ñ>Ô>Ð>Ý˜�z 2×#;Ò#;Ñ#=Ô#=Ñ>Ô>Ð>ð ‡M‚M V¨U OÐ#4€MÑ5Ô5Ð5Ý˜˜�u˜bŸlšl­2¬:¸°s°eÑ+<Ô+<Ñ=Ô=Ñ>Ô>Ð>Ý˜
�| R×%=Ò%=Ñ%?Ô%?Ñ@Ô@Ð@ð ‡M‚M�u€MÑÔÐÝ˜˜�u˜bŸlšl­2¬:¸°s°eÑ+<Ô+<Ñ=Ô=Ñ>Ô>Ð>Ý˜
�| R×%=Ò%=Ñ%?Ô%?Ñ@Ô@Ð@Ð@Ð@rM   c                  óÒ  — t          d¦  «        } t          d¦  «        }d„ | _        d„ |_        t          j        dgg¦  «        }t	          d| fd|fg¦  «        }t          ddgg|                     |¦  «                             |¦  «        ¦  «         t          ddgg|                     |¦  «        ¦  «         t          dd	g|                     ¦   «         ¦  «         | 	                    d
¬¦  «         t          dgg|                     |¦  «                             |¦  «        ¦  «         t          dgg|                     |¦  «        ¦  «         t          d	g|                     ¦   «         ¦  «         | 	                    d
¬¦  «         t          g g|                     |¦  «                             |¦  «        ¦  «         t          g g|                     |¦  «        ¦  «         t          g |                     ¦   «         ¦  «         | 	                    |¬¦  «         t          dgg|                     |¦  «                             |¦  «        ¦  «         t	          dd|fg¦  «        }t          dgg|                     |¦  «                             |¦  «        ¦  «         t          dgg|                     |¦  «        ¦  «         t          d	g|                     ¦   «         ¦  «         d S )Nré   rù   c                 ó   — dgS r
  rS   r  s    rK   rt  z2test_set_feature_union_step_drop.<locals>.<lambda>‹  r  rM   c                 ó   — dgS r  rS   r  s    rK   rt  z2test_set_feature_union_step_drop.<locals>.<lambda>Œ  r  rM   rx   r­  r¯  r  r  rÙ   rÂ  r¾  )r­  rÙ   )
rw   ru  r„   r…   r&   r?   rZ   ri   r  rc   )r©  r´  rX   rú  s       rK   Ú test_set_feature_union_step_dropr  ‡  s”  € Ý�‰GŒG€EÝ�‰GŒG€Eà"?Ð"?€EÔØ"?Ð"?€EÔå
Œ
�Q�C�5ÑÔ€Aå	˜˜e�} t¨U mÐ4Ñ	5Ô	5€BÝ˜˜A˜�x §¢¨¡¤×!4Ò!4°QÑ!7Ô!7Ñ8Ô8Ð8Ý˜˜A˜�x ×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5Ý˜ (Ð+¨R×-EÒ-EÑ-GÔ-GÑHÔHÐHà‡M‚M�V€MÑÔÐÝ˜˜�u˜bŸfšf Q™iœi×1Ò1°!Ñ4Ô4Ñ5Ô5Ð5Ý˜˜�u˜b×.Ò.¨qÑ1Ô1Ñ2Ô2Ð2Ý˜�z 2×#;Ò#;Ñ#=Ô#=Ñ>Ô>Ð>à‡M‚M�V€MÑÔÐÝ˜�t˜RŸVšV A™YœY×0Ò0°Ñ3Ô3Ñ4Ô4Ð4Ý˜�t˜R×-Ò-¨aÑ0Ô0Ñ1Ô1Ð1Ý�r˜2×3Ò3Ñ5Ô5Ñ6Ô6Ð6ð ‡M‚M�U€MÑÔÐÝ˜˜�u˜bŸfšf Q™iœi×1Ò1°!Ñ4Ô4Ñ5Ô5Ð5õ 
�~¨¨e }Ð5Ñ	6Ô	6€BÝ˜˜�u˜bŸfšf Q™iœi×1Ò1°!Ñ4Ô4Ñ5Ô5Ð5Ý˜˜�u˜b×.Ò.¨qÑ1Ô1Ñ2Ô2Ð2Ý˜�z 2×#;Ò#;Ñ#=Ô#=Ñ>Ô>Ð>Ð>Ð>rM   c                  óŠ  — t          d¦  «        } t          d¦  «        }d„ | _        d„ |_        t          j        dgg¦  «        }t	          d| fd|fg¦  «        }t          ddgg|                     |¦  «                             |¦  «        ¦  «         t          ddgg|                     |¦  «        ¦  «         t          dd	g|                     ¦   «         ¦  «         | 	                    d
¬¦  «         t          ddgg|                     |¦  «                             |¦  «        ¦  «         t          ddgg|                     |¦  «        ¦  «         t          dd	g|                     dg¦  «        ¦  «         | 	                    d
¬¦  «         t          ddgg|                     |¦  «                             |¦  «        ¦  «         t          ddgg|                     |¦  «        ¦  «         t          ddg|                     dg¦  «        ¦  «         | 	                    |¬¦  «         t          ddgg|                     |¦  «                             |¦  «        ¦  «         t          ddgg|                     |¦  «        ¦  «         t          dd	g|                     dg¦  «        ¦  «         t	          dd|fg¦  «        }t          ddgg|                     |¦  «                             |¦  «        ¦  «         t          ddgg|                     |¦  «        ¦  «         t          dd	g|                     dg¦  «        ¦  «         t          j        }|j        d         }t          ddd¬¦  «        }t	          dd|fg¦  «        }t          ||                     |¦  «                             |¦  «        dd…d|…f         ¦  «         t          ||                     |¦  «        dd…d|…f         ¦  «         t          g d¢|                     g d¢¦  «        ¦  «         | 	                    d
¬¦  «         |                     |¦  «                             |¦  «        }t          |t          j        ||g¦  «        ¦  «         |                     |¦  «        }t          |t          j        ||g¦  «        ¦  «         t          g d¢|                     g d¢¦  «        ¦  «         | 	                    |¬¦  «         t          ||                     |¦  «                             |¦  «        dd…| d…f         ¦  «         t          ||                     |¦  «        dd…| d…f         ¦  «         t          g d¢|                     g d¢¦  «        ¦  «         t	          dd|fgd
di¬¦  «        }t          |dz  |                     |¦  «                             |¦  «        dd…d|…f         ¦  «         t          |dz  |                     |¦  «        dd…d|…f         ¦  «         t          g d¢|                     g d¢¦  «        ¦  «         dS )z@Check the behaviour of setting a transformer to `"passthrough"`.ré   rù   c                 ó   — dgS r
  rS   r  s    rK   rt  z4test_set_feature_union_passthrough.<locals>.<lambda>±  r  rM   c                 ó   — dgS r  rS   r  s    rK   rt  z4test_set_feature_union_passthrough.<locals>.<lambda>²  r  rM   rx   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__f3rz  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)  rg  )rw   ru  r„   r…   r&   r?   rZ   ri   r  rc   rß   rà   r  r   Úhstack)r©  r´  rX   rú  ÚcolumnsrÓ   ÚX_fts          rK   Ú"test_set_feature_union_passthroughr/  ª  sF  € å�‰GŒG€EÝ�‰GŒG€Eð #@Ð"?€EÔØ"?Ð"?€EÔå
Œ
�Q�C�5ÑÔ€Aå	˜˜e�} t¨U mÐ4Ñ	5Ô	5€BÝ˜˜A˜�x §¢¨¡¤×!4Ò!4°QÑ!7Ô!7Ñ8Ô8Ð8Ý˜˜A˜�x ×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5Ý˜ (Ð+¨R×-EÒ-EÑ-GÔ-GÑHÔHÐHà‡M‚M�]€MÑ#Ô#Ð#Ý˜˜A˜�x §¢¨¡¤×!4Ò!4°QÑ!7Ô!7Ñ8Ô8Ð8Ý˜˜A˜�x ×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5Ý˜ hÐ/°×1IÒ1IÈ8È*Ñ1UÔ1UÑVÔVÐVà‡M‚M�]€MÑ#Ô#Ð#Ý˜˜A˜�x §¢¨¡¤×!4Ò!4°QÑ!7Ô!7Ñ8Ô8Ð8Ý˜˜A˜�x ×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5ÝØ	�|Ð$ b×&>Ò&>À¸zÑ&JÔ&Jñô ð ð
 ‡M‚M�U€MÑÔÐÝ˜˜A˜�x §¢¨¡¤×!4Ò!4°QÑ!7Ô!7Ñ8Ô8Ð8Ý˜˜A˜�x ×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5Ý˜ hÐ/°×1IÒ1IÈ8È*Ñ1UÔ1UÑVÔVÐVõ 
Ð,¨t°U¨mÐ<Ñ	=Ô	=€BÝ˜˜A˜�x §¢¨¡¤×!4Ò!4°QÑ!7Ô!7Ñ8Ô8Ð8Ý˜˜A˜�x ×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5Ý˜ hÐ/°×1IÒ1IÈ8È*Ñ1UÔ1UÑVÔVÐVåŒ	€AØŒg�aŒj€GÝ
˜1¨ÀAÐ
FÑ
FÔ
F€Cå	Ð5¸¸s°|ÐDÑ	EÔ	E€BÝ�q˜"Ÿ&š& ™)œ)×-Ò-¨aÑ0Ô0°°°°H°W°H°Ô=Ñ>Ô>Ð>Ý�q˜"×*Ò*¨1Ñ-Ô-¨a¨a¨a°°'°¨kÔ:Ñ;Ô;Ð;Ýð	
ð 	
ð 	
ð 	× Ò Ð!9Ð!9Ð!9Ñ:Ô:ñ
ô 
ð 
ð ‡M‚M�m€MÑ$Ô$Ð$Ø�6Š6�!‰9Œ9×Ò˜qÑ!Ô!€DÝ�t�RœY¨¨1 vÑ.Ô.Ñ/Ô/Ð/Ø×Ò˜AÑÔ€DÝ�t�RœY¨¨1 vÑ.Ô.Ñ/Ô/Ð/Ýð		
ð 		
ð 		
ð 	× Ò Ð!9Ð!9Ð!9Ñ:Ô:ñô ð ð ‡M‚M˜c€MÑ"Ô"Ð"Ý�q˜"Ÿ&š& ™)œ)×-Ò-¨aÑ0Ô0°°°°W°H°I°I°Ô>Ñ?Ô?Ð?Ý�q˜"×*Ò*¨1Ñ-Ô-¨a¨a¨a°'°°°¨lÔ;Ñ<Ô<Ð<Ýð	
ð 	
ð 	
ð 	× Ò Ð!9Ð!9Ð!9Ñ:Ô:ñ
ô 
ð 
õ 
Ø	'¨%°¨Ð6Ø*¨AÐ.ð
ñ 
ô 
€Bõ �q˜1‘u˜bŸfšf Q™iœi×1Ò1°!Ñ4Ô4°Q°Q°Q¸¸¸°[ÔAÑBÔBÐBÝ�q˜1‘u˜b×.Ò.¨qÑ1Ô1°!°!°!°X°g°X°+Ô>Ñ?Ô?Ð?Ýð	
ð 	
ð 	
ð 	× Ò Ð!9Ð!9Ð!9Ñ:Ô:ñ
ô 
ð 
ð 
ð 
rM   c                  óÚ   — t           j        } t          ddd¬¦  «        }t          d|fdg¦  «        }|                     | ¦  «         t          g d¢|                     ¦   «         ¦  «         dS )	zDCheck feature_names_out for verbose_feature_names_out=True (default)ré   r"  r   rß  rÓ   rÕ   )rz  r{  Úpassthrough__x0Úpassthrough__x1Úpassthrough__x2Úpassthrough__x3N©rß   rà   r   r&   rZ   r?   ru  ©rX   rÓ   rú  s      rK   Ú9test_feature_union_passthrough_get_feature_names_out_truer7    s   € åŒ	€AÝ
˜1¨ÀAÐ
FÑ
FÔ
F€Cå	˜˜s�|Ð%CÐDÑ	EÔ	E€BØ‡F‚Fˆ1�I„I€IÝð	
ð 	
ð 	
ð 	× Ò Ñ"Ô"ñ
ô 
ð 
ð 
ð 
rM   c                  óÞ   — t           j        } t          ddd¬¦  «        }t          d|fdgd¬¦  «        }|                     | ¦  «         t          g d	¢|                     ¦   «         ¦  «         d
S )z;Check feature_names_out for verbose_feature_names_out=Falseré   r"  r   rß  rÓ   rÕ   Frx  )Úpca0Úpca1Úx0Úx1r  r  Nr5  r6  s      rK   Ú:test_feature_union_passthrough_get_feature_names_out_falser=  /  sŽ   € åŒ	€AÝ
˜1¨ÀAÐ
FÑ
FÔ
F€Cå	Ø
�ˆÐ5Ð6ÐRWð
ñ 
ô 
€Bð ‡F‚Fˆ1�I„I€IÝð	
ð 	
ð 	
ð 	× Ò Ñ"Ô"ñ
ô 
ð 
ð 
ð 
rM   c                  óº  — t          j        d¦  «        } |                      ddgddggddg¬¦  «        }t          d„ d	„ ¬
¦  «        }t	          dt          ¦   «         fd|fgd¬¦  «        }|                     |¦  «         t          j        d¦  «        }t          j	        t          |¬¦  «        5  |                     ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zFCheck get_feature_names_out and non-verbose names and colliding names.Úpandasrx   ré   rù   rH   rI   ©r-  c                 ó   — | dg         S r`   rS   ©rX   s    rK   rt  zStest_feature_union_passthrough_get_feature_names_out_false_errors.<locals>.<lambda>K  s   € �!�S�E”(€ rM   c                 ó,   — t          j        dg¦  «        S r`   )r„   r…   )rJ   r³  s     rK   rt  zStest_feature_union_passthrough_get_feature_names_out_false_errors.<locals>.<lambda>K  s   € ½b¼jÈ#ÈÑ>OÔ>O€ rM   )Úfeature_names_outrÌ  rÍ  Frx  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,   rZ   rÇ   rÈ   rÁ   rÉ   ru  )ÚpdrX   Úselect_ar�  rÌ   s        rK   ÚAtest_feature_union_passthrough_get_feature_names_out_false_errorsrI  E  s>  € å	Ô	˜XÑ	&Ô	&€BØ
�Š�q˜!�f˜q !˜fÐ%°°S¨zˆÑ:Ô:€Aå"ØÐÐ.OÐ.Oðñ ô €Hõ Ø
•Ñ Ô Ð	! D¨(Ð#3Ð4Ø"'ðñ ô €Eð 
‡I‚Iˆa�L„L€Lå
Œ)ð	Uñô €Cõ
 
Œ•z¨Ð	-Ñ	-Ô	-ð &ð &Ø×#Ò#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   Â.CÃCÃCc                  óÈ  — t          j        d¦  «        } |                      t          t	          d¦  «        ¦  «        gd„ t	          d¦  «        D ¦   «         ¬¦  «        }t          ddgd¬¦  «        }|                     |¦  «         t          j        d	¦  «        }t          j	        t          |¬
¦  «        5  |                     ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zLCheck get_feature_names_out with non-verbose names and >= 5 colliding names.r?  rf  c                 ó   — g | ]}d |› �‘ŒS )ÚfrS   )rm  rn  s     rK   rp  zdtest_feature_union_passthrough_get_feature_names_out_false_errors_overlap_over_5.<locals>.<listcomp>_  s   € Ð0LÐ0LÐ0L¸Q°°Q°°Ð0LÐ0LÐ0LrM   r@  )rÌ  rÖ   )rÍ  rÖ   Frx  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À   rE  rF  r”  rq  r&   rZ   rÇ   rÈ   rÁ   rÉ   ru  )rG  rX   r�  rÌ   s       rK   ÚPtest_feature_union_passthrough_get_feature_names_out_false_errors_overlap_over_5rM  \  s  € å	Ô	˜XÑ	&Ô	&€BØ
�Š•d�5 ™9œ9‘o”oÐ&Ð0LÐ0LÅ%ÈÁ)Ä)Ð0LÑ0LÔ0LˆÑMÔM€AåØ	Ð 5Ð6Ø"'ðñ ô €Eð
 
‡I‚Iˆa�L„L€Lå
Œ)ð	ñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð &ð &Ø×#Ò#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   Â5CÃCÃCc                   ó.   — e Zd Zdd„Zdd„Zdd„Zdd„ZdS )	ÚDfOutTransformerç      ð?c                 ó   — || _         d S rF   ©Úoffset)rJ   rS  s     rK   rL   zDfOutTransformer.__init__t  s   € ØˆŒˆˆrM   Nc                 ó   — | S rF   rS   rW   s      rK   rZ   zDfOutTransformer.fitw  r[   rM   c                 ó   — || j         z
  S rF   rR  rW   s      rK   ri   zDfOutTransformer.transformz  s   € Ø�4”;‰ÐrM   c                 ó   — | S rF   rS   )rJ   ri   s     rK   Ú
set_outputzDfOutTransformer.set_output}  s	   € ð ˆrM   )rP  rF   )rO   rP   rQ   rL   rZ   ri   rW  rS   rM   rK   rO  rO  s  sd   € € € € € ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð rM   rO  Údf_lib_namer?  ÚpolarsÚT1)r,   rO  rÖ   )Úidsc                 ó,  — t          j        | ¦  «        }|                     g d¢g d¢dœ¦  «        }t          d|fdt	          ¦   «         fg¦  «        }|                     | ¬¦  «         |                     |¦  «        }t          |j        ¦  «        g d¢k    sJ ‚t          |j        ¦  «        ddgk    sJ ‚| 	                    d	¬
¦  «         t          j
        t          d¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )a8  Check FeatureUnion behavior when transformers output duplicate column names.

    Check that an error is raised when verbose_feature_names_out is False.
    Check that no error is raised and columns are correctly prefixed when
    verbose_feature_names_out is True.

    Non-regression test for issue #32104
    )rx   ré   rù   rL  rG   rÌ  rÍ  ©ri   )Út1__aÚt1__bÚt2__aÚt2__brH   rI   Frx  z%Output feature names:.*are not uniquerµ   N)rÀ   rE  rF  r&   r,   rW  r  r”  r-  rc   rÁ   rÉ   )rX  rZ  Údf_libÚdfr_  Údf_ts         rK   Ú)test_feature_union_duplicate_column_namesre  ƒ  sf  € õ Ô  Ñ-Ô-€FØ	×	Ò	   °<°<°<Ð@Ð@Ñ	AÔ	A€BÝ	˜˜b�z D­.Ñ*:Ô*:Ð#;Ð<Ñ	=Ô	=€BØ‡M‚M˜K€MÑ(Ô(Ð(ð ×Ò˜BÑÔ€DÝ�”ÑÔÐ!EÐ!EÐ!EÒEÐEÐEÐEõ �”
ÑÔ  S˜zÒ)Ð)Ð)Ð)à‡M‚M¨E€MÑ2Ô2Ð2Ý	Œ•zÐ)QÐ	RÑ	RÔ	Rð ð Ø
×Ò˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ã&D	Ä	DÄDc                  óî  — 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 �]Þ\  }}	t          j        t
          |	¬¦  «        5   |di ||i¤Ž                     dggdg¦  «         d d d ¦  «         n# 1 swxY w Y    |di |dt          d¦  «        fgi¤Ž}
t          |
||¦  «         t          j        t
          |	¬¦  «        5  |
                     dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |	¬¦  «        5  |
                     dggdg¦  «         d d d ¦  «         n# 1 swxY w Y    |di |dt          d¦  «        fgi¤Ž}
 |
j	        di ||i¤Ž t          j        t
          |	¬¦  «        5  |
                     dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |	¬¦  «        5  |
                     dggdg¦  «         d d d ¦  «         n# 1 swxY w Y   �Œà�Œd S )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é   rI   rù   rH   rä   rR  rµ   rx   rS   )
rw   r'   r&   rÀ   rÁ   rÉ   rZ   Úsetattrr  rc   )Úerror_message_1Úerror_message_2Úerror_message_3Ú
bad_steps1Ú
bad_steps2r   ÚparamÚ
bad_steps3Ú	bad_stepsÚmessagerÓ  s              rK   Útest_step_name_validationrr  £  s	  € ØL€OØD€OØV€OØ�4 ™7œ7Ð# c­4°©7¬7 ^Ð4€JØ�˜Q™œ�. 3­¨Q©¬ .Ð1€JÝ  'Ð*­\Ð;MÐ,NÐOð .ñ .‰
ˆˆUà�D ™GœG�n u­d°1©g¬gÐ&6Ð7ˆ
à˜Ð)Ø˜Ð)Ø˜¨5Ñ0Ð1ð#
ð 	.ñ 	.ÑˆI�wõ ”�z°Ð9Ñ9Ô9ð :ð :Ø�Ð)Ð)�u˜iÐ(Ð)Ð)×-Ò-°¨s¨e°a°SÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð �#Ð2Ð2˜ #¥t¨A¡w¤w Ð 0Ð1Ð2Ð2ˆCÝ�C˜ 	Ñ*Ô*Ð*Ý”�z°Ð9Ñ9Ô9ð $ð $Ø—’˜!˜˜ ˜sÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ ”�z°Ð9Ñ9Ô9ð .ð .Ø×!Ò! A 3 %¨!¨Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð �#Ð2Ð2˜ #¥t¨A¡w¤w Ð 0Ð1Ð2Ð2ˆCØˆCŒNÐ0Ð0˜e YÐ/Ð0Ð0Ð0Ý”�z°Ð9Ñ9Ô9ð $ð $Ø—’˜!˜˜ ˜sÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ ”�z°Ð9Ñ9Ô9ð .ð .Ø×!Ò! A 3 %¨!¨Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ùñ3	.ð.ð .sZ   Â4"C"Ã"C&Ã)C&Ä3EÅEÅ EÅ?F%Æ%F)Æ,F)Ç4HÈHÈ!HÉ I&É&I*É-I*c                  óô   — t          dt          dt          ¦   «         fg¦  «        fg¦  «        } |                      dt          ¦   «         ¬¦  «         |                      dt	          ¦   «         fgd¬¦  «         d S )NrH   rI   gü©ñÒMbP?)Úa__b__alphaÚa__br¬  )Úa__stepsÚa__b__C)r'   r   rc   r   r!   )Ú	estimators    rK   Útest_set_params_nested_pipelinery  É  sx   € Ý˜3¥¨3µÑ0@Ô0@Ð*AÐ)BÑ CÔ CÐDÐEÑFÔF€IØ×Ò Uµ±´ÐÑ9Ô9Ð9Ø×Ò CÕ);Ñ)=Ô)=Ð#>Ð"?ÈÐÑKÔKÐKÐKÐKrM   c                  óˆ	  — 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        d         j        }t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | |¦  «        |                     | |¦  «        ¦  «         t          |j        d         j        |j        d         j        ¦  «         t'          |d¦  «        rJ ‚| 
                    | |¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | |¦  «        |                     | |¦  «        ¦  «         t          |j        d         j        |j        d         j        ¦  «         ||j        d         j        k    sJ ‚t          d¬¦  «        }	t          ¦   «         }
t          d	|
fd|	fg|¬¦  «        }| 
                    | |¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | ¦  «        |                     | ¦  «        ¦  «         t          |                     | |¦  «        |                     | |¦  «        ¦  «         t          |j        d         j        |j        d	         j        ¦  «         ||j        d	         j        k    sJ ‚	 t)          j        |¦  «         d S # t)          j        |¦  «         w xY w)
Nrf  ©Úlocationr“  r   r   rê   Úlogreg©r’  r¥   Útransf_2)rß   rà   rá   r   ÚjoblibÚMemoryr!   r¢   r'   r	   rZ   rÅ   r§   r?   rŒ   r�   r‘   r�   r¥   rÈ  ÚshutilÚrmtree)rX   rY   Úcachedirr’  r´   rê   rÍ   Úcached_pipeÚtsÚclf_2r  Úcached_pipe_2s               rK   Útest_pipeline_memoryr‰  Ï  sV  € ÝŒ	€AÝŒ€AÝ‰yŒy€Hð8 Ý”¨¸"Ð=Ñ=Ô=ˆå ¨aÐ0Ñ0Ô0ˆÝ‘”ˆÝ˜(¥E¨&¡M¤MÐ2°X¸s°OÐDÑEÔEˆÝ ¨6Ð 2°X¸s°OÐDÈVÐTÑTÔTˆð 	�Š˜˜1ÑÔÐØ�Š��A‰ŒˆàÔ$ XÔ.Ô9ˆå˜4Ÿ<š<¨™?œ?¨K×,?Ò,?ÀÑ,BÔ,BÑCÔCÐCÝ˜4×-Ò-¨aÑ0Ô0°+×2KÒ2KÈAÑ2NÔ2NÑOÔOÐOÝ˜4×1Ò1°!Ñ4Ô4°k×6SÒ6SÐTUÑ6VÔ6VÑWÔWÐWÝ˜4Ÿ:š: a¨Ñ+Ô+¨[×->Ò->¸qÀ!Ñ-DÔ-DÑEÔEÐEÝØÔ˜XÔ&Ô-¨{Ô/FÀxÔ/PÔ/Wñ	
ô 	
ð 	
õ ˜6 8Ñ,Ô,Ð,Ð,Ð,ð 	�Š˜˜1ÑÔÐå˜4Ÿ<š<¨™?œ?¨K×,?Ò,?ÀÑ,BÔ,BÑCÔCÐCÝ˜4×-Ò-¨aÑ0Ô0°+×2KÒ2KÈAÑ2NÔ2NÑOÔOÐOÝ˜4×1Ò1°!Ñ4Ô4°k×6SÒ6SÐTUÑ6VÔ6VÑWÔWÐWÝ˜4Ÿ:š: a¨Ñ+Ô+¨[×->Ò->¸qÀ!Ñ-DÔ-DÑEÔEÐEÝØÔ˜XÔ&Ô-¨{Ô/FÀxÔ/PÔ/Wñ	
ô 	
ð 	
ð �[Ô,¨XÔ6ÔAÒAÐAÐAÐAõ #°Ð2Ñ2Ô2ˆÝ‘=”=ˆÝ Ø˜(Ð# h°Ð%6Ð7Àð
ñ 
ô 
ˆð 	×Ò˜!˜QÑÔÐõ 	˜4Ÿ<š<¨™?œ?¨M×,AÒ,AÀ!Ñ,DÔ,DÑEÔEÐEÝ˜4×-Ò-¨aÑ0Ô0°-×2MÒ2MÈaÑ2PÔ2PÑQÔQÐQÝØ×"Ò" 1Ñ%Ô% }×'FÒ'FÀqÑ'IÔ'Iñ	
ô 	
ð 	
õ 	˜4Ÿ:š: a¨Ñ+Ô+¨]×-@Ò-@ÀÀAÑ-FÔ-FÑGÔGÐGÝØÔ˜XÔ&Ô-ØÔ% jÔ1Ô8ñ	
ô 	
ð 	
ð �]Ô.¨zÔ:ÔEÒEÐEÐEÐEÐEåŒ�hÑÔÐÐÐø�Œ�hÑÔÐÐøøøs   ¨Q,R+ Ò+Sc                  ól  — t          ¦   «         } t          j        | d¬¦  «        }t          t	          ¦   «         t          ¦   «         |¬¦  «        }|j        |u sJ ‚t          t	          ¦   «         t          ¦   «         ¦  «        }|j        �J ‚t          |¦  «        dk    sJ ‚t          j	        | ¦  «         d S )Nrf  r{  r~  ré   )
r   r€  r�  r)   r¢   r-   r’  r$  r‚  rƒ  )r„  r’  rË   s      rK   Útest_make_pipeline_memoryr‹    s    € Ý‰yŒy€HÝŒ] H°bÐ9Ñ9Ô9€FÝ�[™]œ]­C©E¬E¸&ÐAÑAÔA€HØŒ?˜fÐ$Ð$Ð$Ð$Ý�[™]œ]­C©E¬EÑ2Ô2€HØŒ?Ð"Ð"Ð"Ýˆx‰=Œ=˜AÒÐÐÐå
„M�(ÑÔÐÐÐrM   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚFeatureNameSaverNc                 ó*   — t          | |d¬¦  «         | S )NT)Úreset)rA   rW   s      rK   rZ   zFeatureNameSaver.fit  s   € Ý˜T 1¨DÐ1Ñ1Ô1Ð1ØˆrM   c                 ó   — |S rF   rS   rW   s      rK   ri   zFeatureNameSaver.transform  rj   rM   c                 ó   — |S rF   rS   )rJ   rr  s     rK   ru  z&FeatureNameSaver.get_feature_names_out"  s   € ØÐrM   rF   )rO   rP   rQ   rZ   ri   ru  rS   rM   rK   r�  r�    sP   € € € € € ðð ð ð ðð ð ð ðð ð ð ð ð rM   r�  c                  ó*  — t          dt          ¦   «         fddt          ¦   «         fg¬¦  «        } t          ¦   «         }|                      |j        |j        ¦  «         t          | dd…                              |j	        ¦  «        |j	        ¦  «         dS )z5Check pipeline.get_feature_names_out with passthroughr`  ©ÚpassrÖ   r´   r£  NrJ  )
r'   r�  r!   r   rZ   rà   rá   r?   ru  rû  )rÍ   rß   s     rK   Útest_features_names_passthroughr•  &  sœ   € åàÕ&Ñ(Ô(Ð)Ø#ØÕ&Ñ(Ô(Ð)ð
ðñ ô €Dõ ‰;Œ;€DØ‡H‚HˆTŒY˜œÑ$Ô$Ð$ÝØˆSˆbˆSŒ	×'Ò'¨Ô(:Ñ;Ô;¸TÔ=Oñô ð ð ð rM   c                  ól  — t          dt          ¦   «         fdt          ¦   «         fg¬¦  «        } d„ t          D ¦   «         }|                      t          |¦  «         t          | dd…                              ¦   «         g d¢¦  «         t          | dd…                              d¦  «        g d¢¦  «         dS )	z5Check pipeline.get_feature_names_out with vectorizersÚvectr´   r£  c                 ó   — g | ]}d |v ‘ŒS )ÚpizzarS   )rm  rÑ   s     rK   rp  z7test_feature_names_count_vectorizer.<locals>.<listcomp>9  s   € Ð.Ð.Ð.˜!ˆ�AˆÐ.Ð.Ð.rM   NrJ  )ÚbeerÚburgerÚcokeÚ	copyrightr™  ÚtheÚnonsense_is_ignored)r'   r   r!   rë  rZ   r?   ru  )rÍ   rY   s     rK   Ú#test_feature_names_count_vectorizerr   6  sÈ   € å˜F¥OÑ$5Ô$5Ð6¸Õ@RÑ@TÔ@TÐ8UÐVÐWÑWÔW€DØ.Ð.�~Ð.Ñ.Ô.€AØ‡H‚H�^˜QÑÔÐÝØˆSˆbˆSŒ	×'Ò'Ñ)Ô)Ø?Ð?Ð?ñô ð õ ØˆSˆbˆSŒ	×'Ò'Ð(=Ñ>Ô>Ø?Ð?Ð?ñô ð ð ð rM   c                  ó4  — t          dt          ¦   «         fg¬¦  «        } t          ¦   «         }|                      |j        |j        ¦  «         d}t          j        t          |¬¦  «        5  |  	                    ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )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'   rU   r   rZ   rà   rá   rÀ   rÁ   r  ru  )rÍ   rß   rÌ   s      rK   Ú8test_pipeline_feature_names_out_error_without_definitionr£  E  sÑ   € õ ˜I¥w¡y¤yÐ1Ð2Ð3Ñ3Ô3€DÝ‰;Œ;€DØ‡H‚HˆTŒY˜œÑ$Ô$Ð$à
2€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð %ð %Ø×"Ò"Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   Á+BÂBÂBc                  óä   — t          t          ¦   «         ¦  «        } t          j        t          d¬¦  «        5  |                      dgdggddgddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz8Pipeline.fit does not accept the sample_weight parameterrµ   r   rx   rú   )r)   r!   rÀ   rÁ   rÉ   rZ   )r´   s    rK   Útest_pipeline_param_errorr¥  Q  sÁ   € Ý
Õ*Ñ,Ô,Ñ
-Ô
-€CÝ	ŒÝÐTð
ñ 
ô 
ð :ð :ð 	�Š�!��q�c�
˜Q ˜F°1°a°&ˆÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   ·!A%Á%A)Á,A)c              #   óÄ   K  — | ][\  \  }}}t          ||¦  «        rC|d k    r6t          |d¦  «        r&t          |j        d         d         t          ¦  «        °T|||fV — Œ\dS )r  rä   rJ  rx   N)rÈ  r  rä   r”   )rm  rÓ  ÚpatternrD  s       rK   ú	<genexpr>r¨  Y  s•   è è € ð <ð <á‰ˆˆg˜õh ˆs�FÑÔðm<ðp 	�/Ò!Ð!Ý�C˜Ñ!Ô!ð 	"å�s”y ”} QÔ'­Ñ3Ô3ð 	"ðo 	ˆ'�6Ððn 	"Ð!Ð!Ð!ðq<ð <rM   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$)r©  rÖ   )r´   N)rê   Nr{   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$)rª  rÙ   )r´  rÙ   z@\[FeatureUnion\].*\(step 1 of 1\) Processing mult2.* total=.*\n$)rZ   r  rž   zest, pattern, methodc                 ól  — t          | |¦  «        }g d¢g d¢g}dgdgg}|                      d¬¦  «          |||¦  «         |                     ¦   «         j        r
J d¦   «         ‚|                      d¬¦  «          |||¦  «         t	          j        ||                     ¦   «         j        ¦  «        sJ ‚d S )	N©rx   ré   rù   )rL  r¬  rÃ  rà  rû   F)r“  zGot output for verbose=FalseT)r;  rc   Ú
readouterrÚoutrÇ   r¶   )rÓ  rD  r§  ÚcapsysÚfuncrX   rY   s          rK   Útest_verboser±  ˜  sÇ   € å�3˜ÑÔ€Dà	ˆˆ�I�I�IÐ€AØ
ˆˆqˆcˆ
€Aà‡N‚N˜5€NÑ!Ô!Ð!Ø€DˆˆA�J„J€JØ× Ò Ñ"Ô"Ô&ÐFÐFÐ(FÑFÔFÐ&à‡N‚N˜4€NÑ Ô Ð Ø€DˆˆA�J„J€JÝŒ8�G˜V×.Ò.Ñ0Ô0Ô4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5rM   c                  óà  — ddgddgddgg} g d¢}t          ¦   «         }t          ¦   «         }t          ||¦  «        }t          |d¦  «        rJ ‚|                     | |¦  «         |j        |j        cxk    rdk    sn J ‚t          ¦   «         }t          ¦   «         }t          ||¦  «        }|                     | |¦  «         |j        |j        cxk    rdk    sn J ‚t          |d¦  «        rJ ‚d S ©	Nrx   ré   rù   rL  r¬  rÃ  ©r   rx   ré   Ún_features_in_)r,   r   r)   rÈ  rZ   rµ  )rX   rY   ÚssÚgbdtrÍ   s        rK   Útest_n_features_in_pipeliner¸  ¨  s  € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€Aå	Ñ	Ô	€BÝ)Ñ+Ô+€DÝ˜˜TÑ"Ô"€DÝ�tÐ-Ñ.Ô.Ð.Ð.Ð.Ø‡H‚HˆQ��N„N€NØÔ "Ô"3Ð8Ð8Ò8Ð8°qÒ8Ð8Ð8Ð8Ð8Ð8õ 
Ñ	Ô	€BÝ)Ñ+Ô+€DÝ˜˜TÑ"Ô"€DØ‡F‚Fˆ1ˆa�L„L€LØÔ "Ô"3Ð8Ð8Ò8Ð8°qÒ8Ð8Ð8Ð8Ð8Ð8Ý�tÐ-Ñ.Ô.Ð.Ð.Ð.Ð.Ð.rM   c                  ó€  — ddgddgddgg} g d¢}t          ¦   «         }t          |¦  «        }t          |d¦  «        rJ ‚|                     | |¦  «         |j        |j        cxk    rdk    sn J ‚t          ¦   «         }t          |¦  «        }|                     | |¦  «         |j        |j        cxk    rdk    sn J ‚d S r³  )r,   r*   rÈ  rZ   rµ  )rX   rY   r¶  r_  s       rK   Ú test_n_features_in_feature_unionrº  ¿  sè   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€Aå	Ñ	Ô	€BÝ	�B‰Œ€BÝ�rÐ+Ñ,Ô,Ð,Ð,Ð,Ø‡F‚Fˆ1ˆa�L„L€LØÔ Ô 1Ð6Ð6Ò6Ð6°QÒ6Ð6Ð6Ð6Ð6Ð6õ 
Ñ	Ô	€BÝ	�B‰Œ€BØ‡F‚Fˆ1ˆa�L„L€LØÔ Ô 1Ð6Ð6Ò6Ð6°QÒ6Ð6Ð6Ð6Ð6Ð6Ð6Ð6rM   c                  ó.  —  G d„ dt           t          ¦  «        } t          j        t          j        }}t          d | ¦   «         fd | ¦   «         fg¦  «        }t          j        t          ¦  «        5  | 	                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  | 
                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    ||d¬¦  «         | 
                    ||d¬¦  «         d S )Nc                   ó   — e Zd Zdd„Zdd„ZdS )ú7test_feature_union_fit_params.<locals>.DummyTransformerNc                 ó$   — |ddik    rt           ‚| S )NrH   r   ©rÉ   rt   s       rK   rZ   z;test_feature_union_fit_params.<locals>.DummyTransformer.fitÖ  s   € Ø˜c 1˜XÒ%Ð%Ý Ð ØˆKrM   c                 ó   — |S rF   rS   rW   s      rK   ri   zAtest_feature_union_fit_params.<locals>.DummyTransformer.transformÛ  ó   € ØˆHrM   rF   ©rO   rP   rQ   rZ   ri   rS   rM   rK   ÚDummyTransformerr½  Õ  s<   € € € € € ð	ð 	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð 	rM   rÃ  Údummy0Údummy1r   ra   )r   r   rß   rà   rá   r&   rÀ   rÁ   rÉ   rZ   r  ©rÃ  rX   rY   r½   s       rK   Útest_feature_union_fit_paramsrÇ  Ó  s—  € ðð ð ð ð Õ+­]ñ ô ð õ Œ9•d”k€q€AÝ�xÐ!1Ð!1Ñ!3Ô!3Ð4°xÐAQÐAQÑASÔASÐ6TÐUÑVÔV€AÝ	Œ•zÑ	"Ô	"ð ð Ø	�Šˆa�‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•zÑ	"Ô	"ð ð Ø	�Š˜˜1ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡E‚Eˆ!ˆQ�!€EÑÔÐØ‡O‚O�A�q˜A€OÑÔÐÐÐs$   Á0BÂBÂBÂ7CÃCÃ!Cc                  óh  —  G d„ dt           ¦  «        } t          j        t          j        }}t	          d | ¦   «         fd | ¦   «         fg¦  «        }t          j        t          ¦  «        5  |                     ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ||d¬¦  «         d S )Nc                   ó   — e Zd Zdd„ZdS )úMtest_feature_union_fit_params_without_fit_transform.<locals>.DummyTransformerNc                 ó$   — |ddik    rt           ‚| S )NÚmetadatarx   r¿  rt   s       rK   rZ   zQtest_feature_union_fit_params_without_fit_transform.<locals>.DummyTransformer.fitï  s   € Ø˜j¨!˜_Ò,Ð,Ý Ð ØˆKrM   rF   ru   rS   rM   rK   rÃ  rÊ  î  s(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	rM   rÃ  Únofittransform0Únofittransform1r   )rÌ  rx   )	r.   rß   rà   rá   r&   rÀ   rÁ   rÉ   r  rÆ  s       rK   Ú3test_feature_union_fit_params_without_fit_transformrÏ  ê  s  € ðð ð ð ð Õ=ñ ô ð õ Œ9•d”k€q€AÝàÐ 0Ð 0Ñ 2Ô 2Ð3ØÐ 0Ð 0Ñ 2Ô 2Ð3ð	
ñ	ô 	€Aõ 
Œ•zÑ	"Ô	"ð *ð *Ø	�Š˜˜1 qˆÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð ‡O‚O�A�q 1€OÑ%Ô%Ð%Ð%Ð%s   Á*BÂBÂBc                  óÒ  — t           j                             ¦   «         t           j                             ¦   «         }} t          j                             ddg| j        ddg¬¦  «                             t          ¦  «        }t          j
        | |<   t          t          ¦   «         t          ¦   «         ¦  «        }|                     | |¦  «                             | |¦  «        dk    sJ ‚d S )Nrx   r   r»   gÍÌÌÌÌÌì?)Úpgš™™™™™Ù?)rß   rà   rO  rá   r„   ÚrandomÚchoicer  ÚastypeÚboolÚnanr)   r   r!   rZ   r�   )rX   rY   ÚmaskrÍ   s       rK   Ú%test_pipeline_missing_values_leniencyrØ    s³   € õ Œ9�>Š>ÑÔ�Tœ[×-Ò-Ñ/Ô/€q€AÝŒ9×Ò˜Q ˜F A¤G°°S¨zÐÑ:Ô:×AÒAÅ$ÑGÔG€DÝŒf€A€d�GÝ�™œÕ*<Ñ*>Ô*>Ñ?Ô?€DØ�8Š8�A�q‰>Œ>×Ò  1Ñ%Ô%¨Ò+Ð+Ð+Ð+Ð+Ð+rM   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  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrx   ré   rù   rL  r¬  rÃ  r´  rê   ÚtransformerzZAttempting to weight transformer "transformer", but it is not present in transformer_list.rg  rµ   )rl   r&   rÀ   rÁ   rÉ   rZ   )rX   rY   rR  ÚweightsÚexpected_msgr�  s         rK   Ú3test_feature_union_warns_unknown_transformer_weightrÝ    sê   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€Aà!¥6¡8¤8Ð,Ð-Ðà˜aÐ €Gð	5ð õ Ð)¸wÐGÑGÔG€EÝ	Œ•z¨Ð	6Ñ	6Ô	6ð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA7Á7A;Á>A;c                 ó~   — t          | t          ¦   «         ¦  «        }|                     ¦   «         j        j        rJ ‚d S rF   )r)   r-   rÙ  Ú
input_tagsÚpairwise)rÖ   rÍ   s     rK   Útest_pipeline_get_tags_nonerá    s;   € õ ˜¥c¡e¤eÑ,Ô,€DØ×$Ò$Ñ&Ô&Ô1Ô:Ð:Ð:Ð:Ð:Ð:rM   Ú	Predictorc                 óÌ  — t           j                             d¦  «        }|                     dd¦  «        t          j        dgdz  dgdz  z   ¦  «        }}t          dt          ¦   «         fd | ¦   «         fg¦  «        }|                     ||¦  «         |                     |¦  «        }t          |¦  «        rNt          |d¦  «         |                     ||¦  «        t          j        t          ||¦  «        ¦  «        k    sJ ‚d S t          ||                     ¦   «         ¦  «         |                     ||¦  «        t          j        t#          ||¦  «        ¦  «        k    sJ ‚d S )	Nr   é   ré   r¬  rx   é   rÚ  Ú	predictor)r„   rÒ  ÚRandomStateÚrandnrì   r'   r;   rZ   rŒ   r
   r?   r�   rÀ   Úapproxr"   r=   r¤   r#   )râ  ÚrngrX   rY   ÚmodelÚy_preds         rK   Ú1test_search_cv_using_minimal_compatible_estimatorrí  *  sH  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�9Š9�R˜ÑÔ�RœX q c¨A¡g°°°b±Ñ&8Ñ9Ô9€q€AåØ
Õ+Ñ-Ô-Ð	.°¸i¸i¹k¼kÐ0JÐKñô €Eð 
‡I‚Iˆa��O„O€Oà�]Š]˜1ÑÔ€FÝ�UÑÔð GÝ˜6 1Ñ%Ô%Ð%Ø�{Š{˜1˜aÑ Ô ¥F¤Mµ.ÀÀFÑ2KÔ2KÑ$LÔ$LÒLÐLÐLÐLÐLÐLå˜ §¢¡¤Ñ)Ô)Ð)Ø�{Š{˜1˜aÑ Ô ¥F¤Mµ(¸1¸fÑ2EÔ2EÑ$FÔ$FÒFÐFÐFÐFÐFÐFrM   c                  óR  —  G d„ dt           ¦  «        } t          d | ¦   «         fg¦  «        }t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          j        t          j	        ¦  «         t          |¦  «         d S )Nc                   ó   — e Zd Zd„ ZdS )ú0test_pipeline_check_if_fitted.<locals>.Estimatorc                 ó   — d| _         | S r}   ©r™   rW   s      rK   rZ   z4test_pipeline_check_if_fitted.<locals>.Estimator.fitA  ó   € ØˆDŒLØˆKrM   Nru   rS   rM   rK   Ú	Estimatorrð  @  s#   € € € € € ð	ð 	ð 	ð 	ð 	rM   rô  r´   )
r   r'   rÀ   rÁ   r   rB   rZ   rß   rà   rá   )rô  rË   s     rK   Útest_pipeline_check_if_fittedrõ  ?  sè   € ðð ð ð ð •Mñ ô ð õ
 ˜%  ¡¤Ð-Ð.Ñ/Ô/€HÝ	Œ•~Ñ	&Ô	&ð "ð "Ý˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "à‡L‚L•”�DœKÑ(Ô(Ð(Ý�HÑÔÐÐÐs   ÁA#Á#A'Á*A'c                  óp  — 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	¦  «         n# 1 swxY w Y   |                     | |¦  «         t          |¦  «         t          d
g¦  «        }t          |¦  «         t          dt          ¦   «         fd
g¦  «        }t          j        t          ¦  «        5  t          |¦  «         d	d	d	¦  «         n# 1 swxY w Y   |                     | |¦  «         t          |¦  «         d	S )z1Check __sklearn_is_fitted__ is defined correctly.rx   ré   rù   rL  r¬  rÃ  r´  r´   Nr“  )r&   r;   rÀ   rÁ   r   rB   rZ   )rX   rY   r�  s      rK   Ú"test_feature_union_check_if_fittedr÷  L  s¯  € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€Aå˜5Õ"4Ñ"6Ô"6Ð7Ð8Ñ9Ô9€EÝ	Œ•~Ñ	&Ô	&ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 
‡I‚Iˆa��O„O€OÝ�EÑÔÐõ Ð1Ð2Ñ3Ô3€EÝ�EÑÔÐå˜5Õ"4Ñ"6Ô"6Ð7Ð9PÐQÑRÔR€EÝ	Œ•~Ñ	&Ô	&ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 
‡I‚Iˆa��O„O€OÝ�EÑÔÐÐÐs$   ÁA#Á#A'Á*A'Ã*DÄD
ÄD
c                  óF  — t           j        t           j        }}  G d„ dt          ¦  «        }t	           |¦   «         t          ¦   «         ¦  «        }|                     | |¦  «         t           j        }|                     |¦  «        }t          |d„ |D ¦   «         ¦  «         dS )zSCheck that pipeline passes names through.

    Non-regression 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>.AddPrefixStandardScalarNc                 ó’   •— t          ¦   «                              |¬¦  «        }t          j        d„ |D ¦   «         t          ¬¦  «        S )Nr  c                 ó   — g | ]}d |› �‘ŒS ©Ú
my_prefix_rS   ©rm  r²  s     rK   rp  zƒtest_pipeline_get_feature_names_out_passes_names_through.<locals>.AddPrefixStandardScalar.get_feature_names_out.<locals>.<listcomp>o  s!   € ÐEÐEÐE°tÐ2¨DÐ2Ð2ÐEÐEÐErM   )Údtype)Úsuperru  r„   r…   Úobject)rJ   rr  r`  Ú	__class__s      €rK   ru  zotest_pipeline_get_feature_names_out_passes_names_through.<locals>.AddPrefixStandardScalar.get_feature_names_outm  sA   ø€ Ý‘G”G×1Ò1ÀÐ1ÑPÔPˆEÝ”:ÐEÐE¸uÐEÑEÔEÍVÐTÑTÔTÐTrM   rF   )rO   rP   rQ   ru  Ú__classcell__)r  s   @rK   ÚAddPrefixStandardScalarrú  l  sG   ø€ € € € € ð	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	UrM   r  c                 ó   — g | ]}d |› �‘ŒS rý  rS   rÿ  s     rK   rp  zLtest_pipeline_get_feature_names_out_passes_names_through.<locals>.<listcomp>w  s!   € Ð*WÐ*WÐ*WÀ4Ð+>¸Ð+>Ð+>Ð*WÐ*WÐ*WrM   N)	rß   rà   rá   r,   r)   rZ   rû  ru  r?   )rX   rY   r  rÍ   Úinput_namesrD  s         rK   Ú8test_pipeline_get_feature_names_out_passes_names_throughr  e  s·   € õ
 Œ9•d”k€q€AðUð Uð Uð Uð U¥.ñ Uô Uð Uõ
 Ð0Ð0Ñ2Ô2µNÑ4DÔ4DÑEÔE€DØ‡H‚HˆQ��N„N€NåÔ$€KØ×2Ò2°;Ñ?Ô?ÐåÐ(Ð*WÐ*WÈ;Ð*WÑ*WÔ*WÑXÔXÐXÐXÐXrM   c                  óp  — t          j        d¦  «         t          dd¬¦  «        \  } }t          t	          ¦   «         t          ¦   «         ¦  «        }|                     d¬¦  «         |                     | |¦  «         |dd…                              ¦   «         }|d         j	        }t          ||¦  «         dS )z.Test pipeline's set_output with feature names.r?  T©Úas_frameÚ
return_X_yr]  NrJ  )rÀ   rE  r   r)   r,   r!   rW  rZ   ru  Úfeature_names_in_r?   )rX   rY   rÍ   r  Úlog_reg_feature_namess        rK   Ú$test_pipeline_set_output_integrationr  z  s©   € å
Ô˜Ñ!Ô!Ð!å˜d¨tÐ4Ñ4Ô4�D€A€qå�Ñ)Ô)Õ+=Ñ+?Ô+?Ñ@Ô@€DØ‡O‚O˜h€OÑ'Ô'Ð'Ø‡H‚HˆQ��N„N€Nà˜S˜b˜Sœ	×7Ò7Ñ9Ô9ÐØ  œHÔ6ÐåÐ(Ð*?Ñ@Ô@Ð@Ð@Ð@rM   Ú
df_libraryc                 ó  — t          j        | ¦  «        }t          dd¬¦  «        \  }}t          |d¬¦  «        \  }}t	          dt          ¦   «         fdt          ¦   «         fg¦  «        }|                     | ¬¦  «         |                     |¦  «         | 	                    |¦  «        }t          ||j        ¦  «        sJ ‚t          |j        |                     ¦   «         ¦  «         | dk    rt          |j        |j        ¦  «         d	S d	S )
z'Test feature union with set_output API.Tr
  r   r   ÚscalarrÓ   r]  r?  N)rÀ   rE  r   r$   r&   r,   r   rW  rZ   ri   r  rF  r?   r-  ru  Úindex)r  ÚlibrX   r³  ÚX_trainÚX_testr�  r…  s           rK   Útest_feature_union_set_outputr  Š  s  € õ Ô
˜jÑ
)Ô
)€Cå˜d¨tÐ4Ñ4Ô4�D€A€qÝ& q°qÐ9Ñ9Ô9�O€GˆVÝ˜8¥^Ñ%5Ô%5Ð6¸ÅÁÄ¸ÐGÑHÔH€EØ	×Ò˜zÐÑ*Ô*Ð*Ø	‡I‚IˆgÑÔÐà�oŠo˜fÑ%Ô%€GÝ�g˜sœ}Ñ-Ô-Ð-Ð-Ð-Ý�w”¨×(CÒ(CÑ(EÔ(EÑFÔFÐFØ�XÒÐÝ˜7œ=¨&¬,Ñ7Ô7Ð7Ð7Ð7ð ÐrM   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 ‚d	S )
z8Check FeatureUnion.__getitem__ returns expected results.r  rÓ   r“  )Údrop_merÙ   r”  rÖ   r  rÙ   N)r,   r   r&   )r  rÓ   r�  s      rK   Útest_feature_union_getitemr  œ  sœ   € åÑÔ€FÝ
‰%Œ%€CÝà�vÐØ�CˆLØ#Øð		
ñô €Eð �Œ?˜fÐ$Ð$Ð$Ð$Ø�Œ<˜3ÐÐÐÐØ�Œ=˜MÒ)Ð)Ð)Ð)Ø�Ô˜vÒ%Ð%Ð%Ð%Ð%Ð%rM   Úkeyré   c                 óÜ   — t          dt          ¦   «         fdt          ¦   «         fg¦  «        }d}t          j        t
          |¬¦  «        5  ||           ddd¦  «         dS # 1 swxY w Y   dS )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  r�  rÌ   s      rK   Ú test_feature_union_getitem_errorr  ®  s°   € õ ˜8¥^Ñ%5Ô%5Ð6¸ÅÁÄ¸ÐGÑHÔH€Eà
*€CÝ	Œ•x sÐ	+Ñ	+Ô	+ð ð ØˆcŒ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á	A!Á!A%Á(A%c                  ó„  — t          j        d¦  «         t          dd¬¦  «        \  } }t          ¦   «         }|                     | ¦  «         t          d|fg¦  «        }t          |d¦  «        sJ ‚t          | j        |j	        ¦  «         t          |j	        |j	        ¦  «         t          dg¦  «        }|                     | ¦  «         t          |d¦  «        sJ ‚t          | j        |j	        ¦  «         |  
                    ¦   «         }t          dg¦  «        }|                     |¦  «         t          |d¦  «        rJ ‚dS )zxEnsure feature union has `.feature_names_in_` attribute if `X` has a
    `columns` attribute.

    Test for #24754.
    r?  Tr
  r×   r  r“  N)rÀ   rE  r   r,   rZ   r&   rÈ  r?   r-  r  Úto_numpy)rX   r³  r(  r�  ÚX_arrays        rK   Ú$test_feature_union_feature_names_in_r!  ¹  s;  € õ Ô˜Ñ!Ô!Ð!å˜d¨tÐ4Ñ4Ô4�D€A€qõ ÑÔ€FØ
‡J‚Jˆq�M„M€MÝ˜7 FÐ+Ð,Ñ-Ô-€EÝ�5Ð-Ñ.Ô.Ð.Ð.Ð.Ý�q”y %Ô"9Ñ:Ô:Ð:Ý�vÔ/°Ô1HÑIÔIÐIõ Ð1Ð2Ñ3Ô3€EØ	‡I‚Iˆa�L„L€LÝ�5Ð-Ñ.Ô.Ð.Ð.Ð.Ý�q”y %Ô"9Ñ:Ô:Ð:ð �jŠj‰lŒl€GÝÐ1Ð2Ñ3Ô3€EØ	‡I‚IˆgÑÔÐÝ�uÐ1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2rM   c                  óF  — t          j        d¦  «                             dd¦  «        } t          j        t
          d¬¦  «        5  t          dt          d„ ¦  «        fdt          d	„ ¦  «        fg¦  «                             | ¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z?Test that FeatureUnion raises error for 1D transformer outputs.rÃ  rù   ré   z@Transformer 'b' returned an array or dataframe with 1 dimensionsrµ   rH   c                 ó   — | S rF   rS   rB  s    rK   rt  z.test_feature_union_1d_output.<locals>.<lambda>ã  s   € °A€ rM   rI   c                 ó   — | d d …df         S r�  rS   rB  s    rK   rt  z.test_feature_union_1d_output.<locals>.<lambda>ä  s   € °A°a°a°a¸°d´G€ rM   N)	r„   ÚarangeÚreshaperÀ   rÁ   rÉ   r&   r+   r  rB  s    rK   Útest_feature_union_1d_outputr'  Ù  sî   € å
Œ	�!‰Œ×Ò˜Q Ñ"Ô"€Aå	ŒÝØPð
ñ 
ô 
ð 	ð 	õ 	àÕ)¨+¨+Ñ6Ô6Ð7ØÕ)Ð*;Ð*;Ñ<Ô<Ð=ðñ	
ô 	
÷
 Š-˜Ñ
Ô
Ð
ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁABÂBÂBz(array_namespace, device_name, dtype_namec           	      ól  — t          | ||¦  «        \  }}t          j                             d¦  «        }d\  }}|                     ||f¬¦  «                             |¦  «        }|                     ||¬¦  «        }	d\  }
}t          dt          |
d¬¦  «        fdt          |d	¬¦  «        fg¦  «        }| 	                    |¦  «        }t          d
¬¦  «        5  | 	                    |	¦  «        }t          |t          d¬¦  «        }|j        D ]\\  }}dD ]T}t          ||¦  «        rBt          t          ||¦  «        ¦  «        \  }}}||u sJ ‚|t          |	¦  «        d         k    sJ ‚ŒUŒ]	 ddd¦  «         n# 1 swxY w Y   t!          |¦  «        }t#          |||¬¦  «         |j        ||
|z   fk    sJ ‚dS )zDTest that FeatureUnion with Array API-compatible transformers works.r   )rå  rf  )Úsize)Údevice)r¬  rû   Ú	nystroem1rH  Ú	nystroem2rx   T)Úarray_api_dispatchÚcpu)Úxpr*  )Úcomponents_Únormalization_ré   N)Úatol)r<   r„   rÒ  rç  ÚuniformrÔ  r…   r&   r   r  r   r5   rR  rÈ  r4   r;  r3   r=   r  )Úarray_namespaceÚdevice_nameÚ
dtype_namer/  r*  Úrndr&  rs  ÚX_npÚX_xpÚn_components_1Ún_components_2r�  ÚX_np_transformedÚX_xp_transformedÚX_xp_transformed_npr²  ÚtransÚattrÚtrans_xpr³  Útrans_devicer2  s                          rK   Ú'test_feature_union_array_api_compliancerC  é  sf  € õ & o°{ÀJÑOÔO�J€BˆÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ"Ñ€IˆzØ�;Š;˜Y¨
Ð3ˆ;Ñ4Ô4×;Ò;¸JÑGÔG€DØ�:Š:�d 6ˆ:Ñ*Ô*€Dà%)Ñ"€N�NÝà�(°ÈQÐOÑOÔOÐPØ�(°ÈQÐOÑOÔOÐPð	
ñô €Eð ×*Ò*¨4Ñ0Ô0Ðå	¨4Ð	0Ñ	0Ô	0ð Mð MØ ×.Ò.¨tÑ4Ô4ÐÝ%Ð&6½2ÀeÐLÑLÔLÐà Ô1ð 	Mð 	M‰KˆD�%Ø9ð Mð M�Ý˜5 $Ñ'Ô'ð MÝ0HÝ  tÑ,Ô,ñ1ô 1Ñ-�H˜a ð $ r˜>˜>˜>˜>Ø'Õ+CÀDÑ+IÔ+IÈ!Ô+LÒLÐLÐLÐLøðMð	Mð	Mð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mõ ˜*Ñ%Ô%€DÝÐ$Ð&9ÀÐEÑEÔEÐEØÔ$ØØ˜Ñ'ð)ò ð ð ð ð ð s   ÃBE6Å6E:Å=E:c                  óä  — t          dt          ¦   «         fdt          dd¬¦  «        fg¦  «        } t          | ¦  «        j        du sJ ‚t          dt          ¦   «         fdt          d¬	¦  «        fg¦  «        } t          | ¦  «        j        d
u sJ ‚t          dt          ¦   «         fddg¦  «        } t          | ¦  «        j        du sJ ‚t          dd¦  «        } t          | ¦  «        j        du sJ ‚dS )zHCheck that FeatureUnion.array_api_support tag reflects its transformers.r(  Únystroemr¬  r   rH  TrØ   ré   )r  Fr“  )ÚdroppedrÙ   rÙ   rÖ   N)r&   r,   r   r2   Úarray_api_supportr   r*   )r�  s    rK   Ú(test_feature_union_array_api_support_tagrH    s!  € õ à•~Ñ'Ô'Ð(Ø�¨q¸qÐAÑAÔAÐBð	
ñô €Eõ �E‰?Œ?Ô,°Ð4Ð4Ð4Ð4õ à•~Ñ'Ô'Ð(Ø•L¨aÐ0Ñ0Ô0Ð1ð	
ñô €Eõ �E‰?Œ?Ô,°Ð5Ð5Ð5Ð5õ à•~Ñ'Ô'Ð(Ø#Øð	
ñô €Eõ �E‰?Œ?Ô,°Ð4Ð4Ð4Ð4õ �v˜}Ñ-Ô-€EÝ�E‰?Œ?Ô,°Ð4Ð4Ð4Ð4Ð4Ð4rM   T)Úenable_metadata_routingÚpipeline_methodrZ   r  c                 óZ  ‡— d„ Šˆf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¦  «        } |¦   «         \  }}}	}
} t          || ¦  «        |||||¬¦  «         t          |d         d| ||¬¦  «         t          |	d         d| ¬¦  «         t          |
d         d| |dz   |¬¦  «         | dk    rdgng d¢}|D ]}t          |d         || |dz   |¬¦  «         Œ dS )zLTest that with transform_input, data is correctly transformed for each step.c                 óv   — t          | ¬¦  «                             ||¬¦  «                             ||¬¦  «        S )z$Get a transformer with requests set.©Úregistry©r    rÌ  )r/   Úset_fit_requestÚset_transform_request)rN  r    rÌ  s      rK   Úget_transformerz6test_transform_input_pipeline.<locals>.get_transformer@  s;   € õ !¨(Ð3Ñ3Ô3ßŠ_¨=À8ˆ_ÑLÔLß"Ò"°ÈÐ"ÑRÔRð	
rM   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.
        TrO  FÚother_weightsr    ©rÁ  )r0   r)   )Ú
registry_1Ú
registry_2Ú
registry_3Ú
registry_4rÍ   rR  s        €rK   Úget_pipelinez3test_transform_input_pipeline.<locals>.get_pipelineH  s±   ø€ õ ‰KŒKÝ‰KŒKÝ‰KŒKÝ‰KŒKð	:
Ñ6ˆ
�J 
¨Jõ ØˆO˜J°dÀTÐJÑJÔJØˆO˜J°eÀeÐLÑLÔLØˆO˜J°dÀTÐJÑJÔJØˆO˜J°oÐPTÐUÑUÔUØ,Ð-ð
ñ 
ô 
ˆð �Z ¨Z¸ÐCÐCrM   rx   ré   rù   rL  r   r½  é(   éd   éÈ   )r    rT  rÌ  rJ  r  )rD  Úparentr    rÌ  )rD  r^  rZ   )r  rZ   ri   N)r„   rì   r;  r1   )rJ  rZ  rX   rY   r    rT  rÌ  rÍ   rV  rW  rX  rY  Úlast_calleesÚcalleerR  s                 @rK   Útest_transform_input_pipelinera  ;  sÙ  ø€ ð

ð 
ð 
ðDð Dð Dð Dð Dõ* 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€AÝ”H˜q !˜f˜XÑ&Ô&€MÝ”H˜r 2˜h˜ZÑ(Ô(€MÝŒx˜#˜s˜˜Ñ%Ô%€Hà;G¸<¹>¼>Ñ8€Dˆ*�j *¨jØ"…GˆD�/Ñ"Ô"Ø	Ø	Ø#Ø#Øðñ ô ð õ Ø�2ŒØØØ#Øðñ ô ð õ Ø�2Œ˜°ðñ ô ð õ Ø�2ŒØØØ# aÑ'Øðñ ô ð ð # eÒ+Ð+ˆˆˆÐ1VÐ1VÐ1Vð ð ð 
ð 
ˆÝØ�rŒNØØ"Ø'¨!Ñ+Øð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
rM   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	 |¦   «                              d
d
¬¦  «        fgdg¬¦  «        }|                     ||||¬¦  «         dS )z;Test that the right transformed values are passed to `fit`.c                   ó   — e Zd Zd„ Zd„ ZdS )ú>test_transform_input_explicit_value_check.<locals>.Transformerc                 ó   — d| _         | S r}   rò  rW   s      rK   rZ   zBtest_transform_input_explicit_value_check.<locals>.Transformer.fit�  ró  rM   c                 ó   — |dz   S r�  rS   rh   s     rK   ri   zHtest_transform_input_explicit_value_check.<locals>.Transformer.transform“  ó   € Ø�q‘5ˆLrM   NrÂ  rS   rM   rK   ÚTransformerrd  Ž  ó2   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	rM   rh  c                   ó   — e Zd Zdd„ZdS )ú<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 )Nrx   ré   r   rù   )r?   r„   rì   ©rJ   rX   rY   ÚX_valÚy_vals        rK   rZ   z@test_transform_input_explicit_value_check.<locals>.Estimator.fit—  sƒ   € Ý˜q¥"¤(¨Q°¨F¨8Ñ"4Ô"4Ñ5Ô5Ð5Ý˜q¥"¤(¨A¨q¨6Ñ"2Ô"2Ñ3Ô3Ð3Ý˜u¥b¤h°°A°¨xÑ&8Ô&8Ñ9Ô9Ð9Ý˜u¥b¤h°°1¨vÑ&6Ô&6Ñ7Ô7Ð7ØˆKrM   rN   ru   rS   rM   rK   rô  rk  –  s(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	rM   rô  r   rx   ré   rÚ  rx  T©rn  ro  rn  rU  N)r   r   r   r„   rì   r'   rP  rZ   )rh  rô  rX   rY   rn  ro  rÍ   s          rK   Ú)test_transform_input_explicit_value_checkrq  Š  s  € ðð ð ð ð Õ&­ñ ô ð ðð ð ð ð •O¥]ñ ô ð õ 	Œ�1�a�&�ÑÔ€AÝ
Œ�!�Q�ÑÔ€AÝŒH�q˜!�f�XÑÔ€EÝŒH�a˜�VÑÔ€EÝà˜K˜K™MœMÐ*Ø˜)˜)™+œ+×5Ò5¸DÈÐ5ÑMÔMÐNð	
ð !˜	ðñ ô €Dð 	‡H‚HˆQ�˜ e€HÑ,Ô,Ð,Ð,Ð,rM   c                  ó6  — t          j        ddgddgg¦  «        } t          j        ddg¦  «        }d}t          j        t          |¬¦  «        5  t          t          ¦   «         dg¬	¦  «                             | |¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z<Make sure the right error is raised if slep6 is not enabled.rx   ré   rù   rL  r   z;The `transform_input` parameter can only be set if metadatarµ   ÚblahrU  N)r„   rì   rÀ   rÁ   rÉ   r)   r¢   rZ   )rX   rY   rÌ   s      rK   Útest_transform_input_no_slep6rt  ¬  sì   € å
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€AØ
G€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð Ið IÝ•k‘m”m°f°XÐ>Ñ>Ô>×BÒBÀ1ÀaÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ið Ið Is   Á3BÂ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 | ¦   «                              dd¬¦  «        fgdg¬¦  «        }|                     ||||f||f¬¦  «         dS )zHTest that if metadata is a tuple of arrays, both arrays are transformed.c                   ó   — e Zd Zdd„ZdS )ú-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ù   rx   é   é   T)r  Útupler?   r„   rì   r™   rm  s        rK   rZ   z1test_transform_tuple_input.<locals>.Estimator.fitº  sÆ   € Ý˜e¥UÑ+Ô+Ð+Ð+Ð+Ý˜e¥UÑ+Ô+Ð+Ð+Ð+å˜u Qœx­¬°A°q°6°(Ñ);Ô);Ñ<Ô<Ð<Ý˜u Qœx­¬°1°a°&Ñ)9Ô)9Ñ:Ô:Ð:Ý˜u Qœx­¬°B¸°8°*Ñ)=Ô)=Ñ>Ô>Ð>Ý˜u Qœx­¬°1°a°&Ñ)9Ô)9Ñ:Ô:Ð:ØˆDŒLØˆKrM   rN   ru   rS   rM   rK   rô  rw  ¹  s(   € € € € € ð		ð 		ð 		ð 		ð 		ð 		rM   rô  c                   ó   — e Zd Zd„ Zd„ ZdS )ú/test_transform_tuple_input.<locals>.Transformerc                 ó   — d| _         | S r}   rò  rW   s      rK   rZ   z3test_transform_tuple_input.<locals>.Transformer.fitÆ  ró  rM   c                 ó   — |dz   S r�  rS   rh   s     rK   ri   z9test_transform_tuple_input.<locals>.Transformer.transformÊ  rg  rM   NrÂ  rS   rM   rK   rh  r}  Å  ri  rM   rh  rx   ré   r   rf  ry  rÚ  rx  Trp  rn  rU  N)r   r   r   r„   rì   r'   rP  rZ   )	rô  rh  rX   rY   ÚX_val0Úy_val0ÚX_val1Úy_val1rÍ   s	            rK   Útest_transform_tuple_inputr„  µ  sP  € ð
ð 
ð 
ð 
ð 
•O¥]ñ 
ô 
ð 
ðð ð ð ð Õ&­ñ ô ð õ 	Œ�1�a�&�ÑÔ€AÝ
Œ�!�Q�ÑÔ€AÝŒX˜˜1�v�hÑÔ€FÝŒX�q˜!�fÑÔ€FÝŒX˜˜B�x�jÑ!Ô!€FÝŒX�q˜!�fÑÔ€FÝà˜K˜K™MœMÐ*Ø˜)˜)™+œ+×5Ò5¸DÈÐ5ÑMÔMÐNð	
ð !˜	ðñ ô €Dð 	‡H‚HˆQ�˜& &Ð)°&¸&Ð1A€HÑBÔBÐBÐBÐBrM   rD  )rŒ   r�   r‘   r’   r�   r  ri   ro   c                 óú   —  G d„ dt           ¦  «        }t          d |¦   «         fg¦  «        }t          j        t          ¦  «        5   t          || ¦  «        dgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   óH   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ú: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 rF   rS   rW   s      rK   rZ   z>test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.fit÷  s   € ØˆKrM   c                 ó   — |S rF   rS   rh   s     rK   ri   zDtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.transformú  rÁ  rM   c                 óD   — t          j        t          |¦  «        ¦  «        S rF   ©r„   Úonesr$  rh   s     rK   rŒ   zBtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predictý  ó   € Ý”7�3˜q™6œ6‘?”?Ð"rM   c                 óD   — t          j        t          |¦  «        ¦  «        S rF   r‹  rh   s     rK   r�   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_proba 	  r�  rM   c                 óD   — t          j        t          |¦  «        ¦  «        S rF   ©r„   Úzerosr$  rh   s     rK   r‘   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_log_proba	  s   € Ý”8�C ™FœFÑ#Ô#Ð#rM   c                 óD   — t          j        t          |¦  «        ¦  «        S rF   r‹  rh   s     rK   r’   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.decision_function	  r�  rM   c                 ó   — dS r�  rS   rW   s      rK   r�   z@test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score		  s   € Ø�1rM   c                 óD   — t          j        t          |¦  «        ¦  «        S rF   r‹  rh   s     rK   r  zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score_samples	  r�  rM   c                 ó   — |S rF   rS   rh   s     rK   ro   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.inverse_transform	  rÁ  rM   N)rO   rP   rQ   rR   rZ   ri   rŒ   r�   r‘   r’   r�   r  ro   rS   rM   rK   ÚStatelessEstimatorr‡  ï  s¥   € € € € € ð	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	#ð 	#ð 	#ð	#ð 	#ð 	#ð	$ð 	$ð 	$ð	#ð 	#ð 	#ð	ð 	ð 	ð	#ð 	#ð 	#ð	ð 	ð 	ð 	ð 	rM   r–  rx  rx   )r   r'   rÀ   rÁ   r   r;  )rD  r–  rÍ   s      rK   Útest_pipeline_warns_not_fittedr—  á  sà   € ð!ð !ð !ð !ð !�]ñ !ô !ð !õF �kÐ#5Ð#5Ñ#7Ô#7Ð8Ð9Ñ:Ô:€DÝ	Œ•~Ñ	&Ô	&ð %ð %Ø���fÑÔ ˜s˜eÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   ÁA0Á0A4Á7A4c                   ód   — 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dS )ÚSimpleEstimatorc                 ó   — dS r}   rS   r~   s    rK   r   z%SimpleEstimator.__sklearn_is_fitted__	  r€   rM   Nc                 ó6   — |€
J |¦   «         ‚|€
J |¦   «         ‚| S rF   rS   ©rJ   rX   rY   r    Úprops        rK   rZ   zSimpleEstimator.fit!	  s/   € ØÐ(Ð(¨-Ñ(Ô(Ð(ØÐÐ ÑÔÐØˆrM   c                 ó   — |€J ‚|€J ‚|dz   S r�  rS   rœ  s        rK   r  zSimpleEstimator.fit_transform&	  ó#   € ØÐ(Ð(Ð(ØÐÐÐØ�1‰uˆrM   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rF   r‹  rœ  s        rK   rž   zSimpleEstimator.fit_predict+	  ó.   € ØÐ(Ð(Ð(ØÐÐÐÝŒw•s˜1‘v”v‰ŒÐrM   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rF   r‹  ©rJ   rX   r    r�  s       rK   rŒ   zSimpleEstimator.predict0	  r¡  rM   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rF   r‹  r£  s       rK   r�   zSimpleEstimator.predict_proba5	  r¡  rM   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rF   r�  r£  s       rK   r‘   z!SimpleEstimator.predict_log_proba:	  s0   € ØÐ(Ð(Ð(ØÐÐÐÝŒx�˜A™œÑÔÐrM   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rF   r‹  r£  s       rK   r’   z!SimpleEstimator.decision_function?	  r¡  rM   c                 ó   — |€J ‚|€J ‚dS r�  rS   rœ  s        rK   r�   zSimpleEstimator.scoreD	  s   € ØÐ(Ð(Ð(ØÐÐÐØˆqrM   c                 ó   — |€J ‚|€J ‚|dz   S r�  rS   r£  s       rK   ri   zSimpleEstimator.transformI	  rŸ  rM   c                 ó   — |€J ‚|€J ‚|dz
  S r�  rS   r£  s       rK   ro   z!SimpleEstimator.inverse_transformN	  rŸ  rM   rN   )rO   rP   rQ   r   rZ   r  rž   rŒ   r�   r‘   r’   r�   ri   ro   rS   rM   rK   r™  r™  	  së   € € € € € ðð ð ðð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
 ð  ð  ð  ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð ð rM   r™  Úparent_methodÚsplitÚpartial_fitc                 ó"  — d„ }t          j        dgg¦  «        t          j        dg¦  «        }}dgdd}}}t          ¦   «         } ||| dd¬¦  «        } ||ddd¬¦  «        }t          ¦   «                              dd¬¦  «                             dd¬¦  «                             dd¬¦  «        }t          d	|fd
|fg¦  «        }	d| vr2|	                     ||||¬¦  «        }	|j	         
                    ¦   «          	  t          |	| ¦  «        |||||¬¦  «         n-# t          $ r   t          |	| ¦  «        ||||¬¦  «         Y nw xY w| dk    rt          |d| ||¬¦  «         dS d| v rt          |d| ||¬¦  «         t          |d| ||¬¦  «         dS )z5Test that metadata is routed correctly for pipelines.c                 óx   — |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_Ú_requestrS   )r7   r;  )rÓ  rD  ÚkwargÚmethodss       rK   Úset_requestz7test_metadata_routing_for_pipeline.<locals>.set_request\	  sf   € ð Õ&Ð&Ð&Ý'¨Ô/ˆGˆGà�hˆGàð 	;ð 	;ˆFØ1�G�CÐ0 Ð0Ð0Ð0Ñ1Ô1Ð:Ð:°EÐ:Ð:Ð:Ð:Øˆ
rM   rx   rH   rI   T©r    r�  rZ   rO  Útrsrx  )r    r�  rÌ  ro   )ÚobjrD  r^  r    rÌ  Nri   )r„   rì   r™  r/   rP  rQ  Úset_inverse_transform_requestr'   rZ   Ú_recordsÚclearr;  rÂ   r1   )
rª  r³  rX   rY   r    r�  rÌ  rÓ  rµ  rË   s
             rK   Ú"test_metadata_routing_for_pipelinerº  U	  sC  € ðð ð õ Œ8�a�S�E‰?Œ?�BœH a S™MœM€q€AØ%& C¨¨c˜�4€Mõ Ñ
Ô
€CØ
ˆ+�c˜=¸À4Ð
HÑ
HÔ
H€CØ
ˆ+�c˜5°¸4Ð
@Ñ
@Ô
@€CåÑÔß	Š t°dˆÑ	;Ô	;ß	Ò	¨T¸DÐ	Ñ	AÔ	Aß	&Ò	&°TÀDÐ	&Ñ	IÔ	Ið	 õ ˜% ˜¨°SÐ'9Ð:Ñ;Ô;€Hà�MÐ!Ð!Ø—<’<  1°MÈ�<ÑMÔMˆØŒ×ÒÑÔÐð
Ø(��˜-Ñ(Ô(Øˆq °DÀ8ð	
ñ 	
ô 	
ð 	
ð 	
øõ ð 
ð 
ð 
à(��˜-Ñ(Ô(Ø˜]°Àð	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð
øøøð Ð+Ò+Ð+ÝØØ&Ø Ø'Øð	
ñ 	
ô 	
ð 	
ð 	ˆð
 �ÐÐÝØØØ Ø'Øð	
ñ 	
ô 	
ð 	
õ ØØØØ#Øðñ ô ð ð ð s   Ã;D Ä'EÅEc                 óŠ  — dggdg}}dgd}}t          ¦   «         }t          d|fg¦  «        }d| › �}t          j        t          t          j        |¦  «        ¬¦  «        5  	  t          || ¦  «        ||||¬¦  «         n,# t          $ r  t          || ¦  «        |||¬¦  «         Y nw xY wddd¦  «         dS # 1 swxY w Y   dS )zBTest that metadata is not routed for pipelines when not requested.rx   rH   rx  zn[sample_weight, prop] are passed but are not explicitly set as requested or not requested for SimpleEstimator.rµ   r´  N)	r™  r'   rÀ   rÁ   rÉ   rÇ   rÈ   r;  rÂ   )rD  rX   rY   r    r�  rÓ  rË   Úerror_messages           rK   Ú(test_metadata_routing_error_for_pipeliner½  ­	  sb  € ð ˆCˆ5�1�#€q€AØ˜#˜s�4€MÝ
Ñ
Ô
€Cå˜+ sÐ+Ð,Ñ-Ô-€Hð	:Ø17ð	:ð 	:ð õ 
Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð Qð Qð	Qà%�G�H˜fÑ%Ô% a¨¸-ÈdÐSÑSÔSÐSÐSøÝð 	Qð 	Qð 	Qð &�G�H˜fÑ%Ô% a°}È4ÐPÑPÔPÐPÐPÐPð	Qøøøð	Qð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qð Qð Qs6   ÁB8Á!A?Á>B8Á?&B(Â%B8Â'B(Â(B8Â8B<Â?B<)r’   ri   ro   c                 óè   — t          dt          ¦   «         fg¦  «        }t          j        t          d¬¦  «        5   t          || ¦  «        dggdgd¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z�Test that the right error message is raised when metadata is passed while
    not supported when `enable_metadata_routing=False`.rx  z1is only supported if enable_metadata_routing=Truerµ   rx   rH   r´  N)r'   r™  rÀ   rÁ   rÉ   r;  )rD  rÍ   s     rK   Ú*test_routing_passed_metadata_not_supportedr¿  Ä	  sÝ   € õ �k¥?Ñ#4Ô#4Ð5Ð6Ñ7Ô7€Då	ŒÝÐMð
ñ 
ô 
ð Bð Bð 	���fÑÔ ˜s˜e°A°3¸SÐAÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   º A'Á'A+Á.A+c                  óÀ   — t          dt          ¦   «         fdt          ¦   «         fg¦  «        } |                      dggdg¦  «         |                      dgg¦  «         dS )zFTest that pipeline works with estimators that have a `__len__` method.rµ  rx  rx   N)r'   r   r   rZ   rŒ   r@  s    rK   Ú%test_pipeline_with_estimator_with_lenrÁ  Ó	  sk   € õ Ø
Õ%Ñ'Ô'Ð	(¨;Õ8NÑ8PÔ8PÐ*QÐRñô €Dð 	‡H‚HˆqˆcˆU�Q�CÑÔÐØ‡L‚L�1�#�ÑÔÐÐÐrM   Ú	last_stepc                 óÄ   — t          dt          ¦   «         fd| fg¦  «        }|                     dggdg¦  «                             dgdgdgg¦  «        dgdgdggk    sJ ‚dS )z�Test that the pipeline works when there is not last step.

    It should just ignore and pass through the data on transform.
    rµ  rx  rx   ré   rù   N)r'   r+   rZ   ri   )rÂ  rÍ   s     rK   Útest_pipeline_with_no_last_steprÄ  Ý	  sx   € õ �eÕ0Ñ2Ô2Ð3°kÀ9Ð5MÐNÑOÔO€DØ�8Š8�a�S�E˜A˜3ÑÔ×)Ò)¨A¨3°°°a°S¨/Ñ:Ô:À¸sÀQÀCÈ!È¸oÒMÐMÐMÐMÐMÐMrM   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  | 
                    | |||¬¦  «         ddd¦  «         n# 1 swxY w Y   t          d	t          ¦   «                              dd¬¦  «        fg¦  «        }d
t          j        › d�}t          j        t          t          j	        |¦  «        ¬¦  «        5  | 
                    | |||¬¦  «                             | ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zCTest that the right error is raised when metadata is not requested.r   rx   ré   rL  rÃ  r¬  ©rx   rx   rx   rH   Úsub_transformerzb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitrµ   rO  NTz
.transform)r„   rì   r&   r/   rO   rÀ   rÁ   r   rÇ   rÈ   rZ   rP  ri   )rX   rY   r    rÌ  Úfeature_unionr¼  s         rK   Ú)test_feature_union_metadata_routing_errorrÉ  è	  sZ  € õ 	Œ�1�a�&˜1˜a˜& 1 a &Ð)Ñ*Ô*€AØˆ	ˆ	€AØ'˜i˜i¨�8€Mõ !Ð#4Õ6JÑ6LÔ6LÐ"MÐ!NÑOÔO€Mð	EÝ!5Ô!>ð	Eð 	Eð 	Eð õ
 
ŒÕ/µr´yÀÑ7OÔ7OÐ	PÑ	PÔ	Pð Pð PØ×Ò˜!˜Q¨mÀhÐÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Põ !ð "Ý$Ñ&Ô&×6Ò6Ø"&°ð 7ñ ô ðð	
ñ	ô 	€Mð	JÝ 4Ô =ð	Jð 	Jð 	Jð õ
 
ŒÕ/µr´yÀÑ7OÔ7OÐ	PÑ	PÔ	Pð Gð GØ×ÒØˆq ¸ð 	ñ 	
ô 	
ç
Š)�A ]¸Xˆ)Ñ
FÔ
FÐ
FðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð Gð Gs$   ÂB)Â)B-Â0B-Ä$0E!Å!E%Å(E%c                  ój   — t          dt          ¦   «         fg¦  «        } |                      ¦   «          dS )zaTest that get_metadata_routing() works regardless of the Child's
    consumption of any metadata.rÇ  N)r&   r/   Úget_metadata_routing)rÈ  s    rK   Ú3test_feature_union_get_metadata_routing_without_fitrÌ  
  s9   € õ !Ð#4Õ6JÑ6LÔ6LÐ"MÐ!NÑOÔO€MØ×&Ò&Ñ(Ô(Ð(Ð(Ð(rM   rÚ  c           	      ót  — t          j        ddgddgddgg¦  «        }g d¢}g d¢d}}t          d	 | t          ¦   «         ¬
¦  «                             dd¬¦  «                             dd¬¦  «        fd | t          ¦   «         ¬
¦  «                             dd¬¦  «                             dd¬¦  «        fg¦  «        }||dœ} |j        ||fi |¤Ž  |j        ||fi |¤Ž   |j        ||fi |¤Žj        |fi |¤Ž |j	        D ]5} | d         j
        }t          |¦  «        sJ ‚|D ]}t          d|dddœ|¤Ž ŒŒ6dS )z8Test that metadata is routed correctly for FeatureUnion.r   rx   ré   rL  rÃ  r¬  rÆ  rH   Ú
sub_trans1rM  TrO  Ú
sub_trans2rZ   )r¶  rD  r^  NrS   )r„   rì   r&   r0   rP  rQ  rZ   r  ri   rR  rN  r$  r1   )	rÚ  rX   rY   r    rÌ  rÈ  ÚkwargsrN  Ú	sub_transs	            rK   Ú#test_feature_union_metadata_routingrÒ  
  sÑ  € õ 	Œ�1�a�&˜1˜a˜& 1 a &Ð)Ñ*Ô*€AØˆ	ˆ	€AØ'˜i˜i¨�8€Må ð Ø�¥Y¡[¤[Ð1Ñ1Ô1ß ’¨t¸d�ÑCÔCß&Ò&°TÀDÐ&ÑIÔIð	ð Ø�¥Y¡[¤[Ð1Ñ1Ô1ß ’¨t¸d�ÑCÔCß&Ò&°TÀDÐ&ÑIÔIð	ð	
ñô €Mð"  -¸(ÐCÐC€FØ€MÔ�a˜Ð%Ð%˜fÐ%Ð%Ð%Ø€MÔ  1Ð/Ð/¨Ð/Ð/Ð/Ø/Ð€MÔ�a˜Ð%Ð%˜fÐ%Ð%Ô/°Ð<Ð<°VÐ<Ð<Ð<à$Ô5ð 
ð 
ˆà˜q”>Ô*ˆÝ�8‰}Œ}ÐÐˆ}Ø!ð 	ð 	ˆIÝ#ð ØØØðð ð ð	ð ð ð ð	ð	
ð 
rM   c                  ó  — ddl m}  t          j        ddgddgg¦  «        } | ¦   «                              |¦  «        }t          ||dddi i¬	¦  «        }t          j                             ||                     |¦  «        ¦  «         dS )
a  Regression test for #34005.

    Some joblib backends (notably dask) downgrade ``Bunch`` to plain ``dict``
    when serializing task kwargs. ``_transform_one`` must keep working after
    that downgrade, so it must use item access on ``params``, not attribute
    access.
    r   )r,   g        rP  g       @g      @Nri   )Úweightrb   )	Úsklearn.preprocessingr,   r„   rì   rZ   r(   Útestingr=   ri   )r,   rX   r(  r®  s       rK   Ú,test_transform_one_accepts_plain_dict_paramsr×  F
  s˜   € ð 5Ð4Ð4Ð4Ð4Ð4å
Œ�3˜�*˜s C˜jÐ)Ñ*Ô*€AØˆ^ÑÔ×!Ò! !Ñ$Ô$€Fõ ˜  D°¸{ÈBÐ>OÐ
PÑ
PÔ
P€CÝ„J×Ò˜s F×$4Ò$4°QÑ$7Ô$7Ñ8Ô8Ð8Ð8Ð8rM   c                  óê  — t          d¬¦  «        \  } }d}t          ¦   «         }t          dt          ¦   «         fddt	          |¬¦  «        fg¦  «                             |¦  «                             | |¦  «         |                     d¦  «        d	k    sJ ‚|                     d
¦  «        d	k    sJ ‚|                     d¦  «        dd	|z   z   k    sJ ‚|                     d¦  «        dd	|z   z   k    sJ ‚dS )zpCheck that callbacks are propagated correctly for a pipeline.

    passthrough step is counted as one task.
    T©r  rù   ÚscrÕ   rÓ  ©Úmax_iterÚsetuprx   ÚteardownÚon_fit_task_beginÚon_fit_task_endN)r   r   r'   r,   r   Úset_callbacksrZ   Úcount_hooks)rX   rY   rÜ  Úcallbacks       rK   Útest_pipeline_with_callbacksrä  \
  s  € õ  Ð%Ñ%Ô%�D€A€qØ€HÝ.Ñ0Ô0€Håà•>Ñ#Ô#Ð$Ø*ØÕ$¨hÐ7Ñ7Ô7Ð8ð	
ñô ÷ ‚m�HÑÔŸcšc ! Q™iœi˜ià×Ò Ñ(Ô(¨AÒ-Ð-Ð-Ð-Ø×Ò 
Ñ+Ô+¨qÒ0Ð0Ð0Ð0ð ×ÒÐ 3Ñ4Ô4¸	ÀQÈÁ\Ñ8RÒRÐRÐRÐRØ×ÒÐ 1Ñ2Ô2°iÀ1ÀxÁ<Ñ6PÒPÐPÐPÐPÐPÐPrM   c                  óþ  — t          d¬¦  «        \  } }t          ¦   «         }t          ¦   «                              |¦  «        }d}t          ¦   «         }t	          |¬¦  «                             |¦  «        }t          d|fd|fg¦  «                             | |¦  «         |                     d¦  «        dk    sJ ‚|                     d	¦  «        dk    sJ ‚|                     d
¦  «        dk    sJ ‚|                     d¦  «        dk    sJ ‚|                     d¦  «        dk    sJ ‚|                     d	¦  «        dk    sJ ‚|                     d
¦  «        d|z   k    sJ ‚|                     d¦  «        d|z   k    sJ ‚dS )z?Check that callbacks registered on steps are correctly invoked.TrÙ  rù   rÛ  rÚ  rÓ  rÝ  rx   rÞ  rß  rà  N)r   r   r,   rá  r   r'   rZ   râ  )rX   rY   Úsc_callbackrÚ  rÜ  Úest_callbackrÓ  s          rK   Ú%test_pipeline_with_callbacks_on_stepsrè  v
  sŸ  € õ  Ð%Ñ%Ô%�D€A€qå#Ñ%Ô%€KÝ	Ñ	Ô	×	'Ò	'¨Ñ	4Ô	4€Bà€HÝ$Ñ&Ô&€LÝ
 HÐ
-Ñ
-Ô
-×
;Ò
;¸LÑ
IÔ
I€Cåˆt�Rˆj˜5 #˜,Ð'Ñ(Ô(×,Ò,¨Q°Ñ2Ô2Ð2à×"Ò" 7Ñ+Ô+¨qÒ0Ð0Ð0Ð0Ø×"Ò" :Ñ.Ô.°!Ò3Ð3Ð3Ð3Ø×"Ò"Ð#6Ñ7Ô7¸1Ò<Ð<Ð<Ð<Ø×"Ò"Ð#4Ñ5Ô5¸Ò:Ð:Ð:Ð:à×#Ò# GÑ,Ô,°Ò1Ð1Ð1Ð1Ø×#Ò# JÑ/Ô/°1Ò4Ð4Ð4Ð4Ø×#Ò#Ð$7Ñ8Ô8¸AÀ¹LÒHÐHÐHÐHØ×#Ò#Ð$5Ñ6Ô6¸!¸h¹,ÒFÐFÐFÐFÐFÐFrM   c            	      ó*  — t          d¬¦  «        \  } }t          ¦   «         5 }d}t          dt          ¦   «         fddt	          |¬¦  «        fgt          j        |¬¦  «        ¬	¦  «        }t          ¦   «         }|                     |¦  «         | 	                    | |¦  «         | 
                    d
¦  «        }| 
                    d¦  «        }t          |j        d         d¦  «        rJ ‚t          ¦   «         }|                     |¦  «         	                    | |¦  «         | 
                    d
¦  «        |dz
  k    sJ ‚| 
                    d¦  «        |dz
  k    sJ ‚t          |j        d         d¦  «        rJ ‚	 ddd¦  «         dS # 1 swxY w Y   dS )zGCheck that callbacks don't break the caching mechanism of the pipeline.TrÙ  rù   rÚ  rÕ   rÓ  rÛ  )r|  r~  rß  rà  Ú_skl_callbacksrx   N)r   r   r'   r,   r   r€  r�  r   rá  rZ   râ  rÈ  rÅ   )rX   rY   r„  rÜ  rÍ   rã  Ún_task_beginÚ
n_task_ends           rK   Ú7test_pipeline_memory_callbacks_second_fit_same_pipelinerí  �
  s  € õ  Ð%Ñ%Ô%�D€A€qÝ	Ñ	Ô	ð E ØˆÝà•~Ñ'Ô'Ð(Ø.ØÕ(°(Ð;Ñ;Ô;Ð<ðõ
 ”=¨(Ð3Ñ3Ô3ð
ñ 
ô 
ˆõ 3Ñ4Ô4ˆØ×Ò˜8Ñ$Ô$Ð$Ø�Š��A‰ŒˆØ×+Ò+Ð,?Ñ@Ô@ˆØ×)Ò)Ð*;Ñ<Ô<ˆ
å˜4Ô+¨DÔ1Ð3CÑDÔDÐDÐDÐDõ 3Ñ4Ô4ˆØ×Ò˜8Ñ$Ô$×(Ò(¨¨AÑ.Ô.Ð.Ø×#Ò#Ð$7Ñ8Ô8¸LÈ1Ñ<LÒLÐLÐLÐLØ×#Ò#Ð$5Ñ6Ô6¸*Àq¹.ÒHÐHÐHÐHÝ˜4Ô+¨DÔ1Ð3CÑDÔDÐDÐDÐDÐDð1Eð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð Eð Es   ¢EFÆFÆF)rù   )ÜrR   Ú	itertoolsrÇ   r‚  r¦   Útempfiler   r   r€  Únumpyr„   rÀ   Úsklearnr   Úsklearn.baser   r   r   r	   r
   r   Úsklearn.callback.tests._utilsr   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.kernel_approximationr   Úsklearn.linear_modelr   r    r!   Úsklearn.metricsr"   r#   Úsklearn.model_selectionr$   Úsklearn.neighborsr%   Úsklearn.pipeliner&   r'   r(   r)   r*   rÕ  r+   r,   Úsklearn.svmr-   Ú%sklearn.tests.metadata_routing_commonr.   r/   r0   r1   Úsklearn.utilsr2   Úsklearn.utils._array_apir3   r4   r5   r6   Ú sklearn.utils._metadata_requestsr7   r8   Úsklearn.utils._testingr9   r:   r;   r<   r=   r>   r?   Úsklearn.utils.fixesr@   Úsklearn.utils.validationrA   rB   rß   rà   ÚflagsÚ	writeablerá   rë  rD   rU   rf   rl   rq   rw   r”   r¢   r©   rÒ   ÚmarkÚparametrizerÝ   râ   rç   rî   ró   r÷   rü   rþ   r  r  r  r   r,  r8  r<  rA  rE  rX  r\  rb  ri  rv  rƒ  rŠ  rŒ  r›  r   r¦  rª  r¸  rÆ  rÉ  rÎ  r×  rÝ  rã  Úthread_unsaferð  rý  r  r  r  r/  r7  r=  rI  rM  rO  re  rr  ry  r‰  r‹  r�  r•  r   r£  r¥  ÚproductÚparameter_grid_test_verboser±  r¸  rº  rÇ  rÏ  rØ  rÝ  rá  rí  rõ  r÷  r  r  r  r  Úslicer  r!  r'  rC  rH  ra  rq  rt  r„  r—  r™  ÚsortedÚsetrº  r½  r¿  rÁ  rÄ  rÉ  rÌ  rÒ  r×  rä  rè  rí  rS   rM   rK   ú<module>r     s`  ððð ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à €€€Ø Ð Ð Ð Ø €€€à "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "Ø &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð
 HÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø (Ð (Ð (Ð (Ð (Ð (Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð FÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jð
 €y�{„{€Ø!€„	„Ô Ø#€„Ô Ô ð€ðð ð ð ð ˆMñ ô ð ð	ð 	ð 	ð 	ð 	ˆeñ 	ô 	ð 	ðð ð ð ð Ð" Gñ ô ð ð
ð ð ð ð ˆ[ñ ô ð ðð ð ð ð �fñ ô ð ðð ð ð ð Ð˜]ñ ô ð ð2ð ð ð ð �ñ ô ð ð.ð ð ð ð �&ñ ô ð ðð ð ð ð ˜=ñ ô ð ð,Qð Qð Qðh „×ÒØ!à	ˆ�E˜3�<�.Ñ	!Ô	! 5Ð)Ø	ˆ�E˜3�< Ð1Ñ	2Ô	2°EÐ:Ø	ˆÐ1°E¸3°<Ð@Ñ	AÔ	AÀ5ÐIØ	ˆÐ(¨5°#¨,Ð7Ñ	8Ô	8¸%Ð@Ø	ˆ�G˜^Ð,¨u°c°c±e´e¨nÐ=Ñ	>Ô	>Ð@PÐQØ	ˆ˜˜s�| e¨\¨\©^¬^Ð%<Ð=Ñ	>Ô	>ÀÐFØ	ˆ˜˜s˜s™uœu�~¨¨|Ð'<Ð=Ñ	>Ô	>ÀÐOØ	ˆÐ'¨%°Ð)>Ð?Ñ	@Ô	@À.ÐQØ	ˆ˜˜s�|Ð%CÐDÑ	EÔ	EÀuÐMð
ñô ð#ð #ñô ð#ðð ð ðð ð ð	ð 	ð 	ðð ð ð,ð ,ð ,ð >ð >ð >ð
6ð 
6ð 
6ð3ð 3ð 3ð6ð ð ðPð Pð Pð 7ð 7ð 7ð"ð ð ð<<ð <ð <ð,7ð 7ð 7ð	Ið 	Ið 	Ið „×ÒØÐDÐDÐDñô ð1ð 1ñô ð1ð „×Ò˜¨.Ñ9Ô9ð,ð ,ñ :Ô9ð,ð^
<ð 
<ð 
<ð'ð 'ð 'ðLð Lð Lðð ð ð ðð ð ð:/ð /ð /ð&
1ð 
1ð 
1ð „×ÒØÐVÐVÐVñô ðð ñô ðð8ð ð ð$+ð +ð +ðB.ð .ð .ð" „×Ò˜¨¨}Ð(=Ñ>Ô>ð*ð *ñ ?Ô>ð*ð" „×Ò˜¨¨}Ð(=Ñ>Ô>ðM?ð M?ñ ?Ô>ðM?ð`6ð 6ð 6ð8+ð +ð +ð „×ÒØ$à	ˆ�~�~Ñ'Ô'Ð);Ð);Ñ)=Ô)=Ñ	>Ô	>ÀÐNØ	ˆ�~�~Ñ'Ô'Ð)9Ð)9Ñ);Ô);Ñ	<Ô	<¸lÐKàˆM˜.˜.Ñ*Ô*Ñ+Ô+Ø<Ð<ð	
ð 
ˆ�"‰ŒÐGÐGÐHðñô ð*ð *ñô ð*ð
>ð 
>ð 
>ð@ð @ð @ðF „Ôð*Sð *Sñ Ôð*SðZ#ð #ð #ð&3ð 3ð 3ð Að Að Að: ?ð  ?ð  ?ðFnð nð nðbð ð ð(ð ð ð,&ð &ð &ð.&ð &ð &ð.ð ð ð ð �}ñ ô ð ð  „×Ò˜¨°8Ð(<Ñ=Ô=Ø„×ÒØØ€^ÑÔÐ'Ð'Ñ)Ô)¨=Ð9Ø=Ð=Ð=ð ñ ô ð
ð ñô ñ >Ô=ðð4#.ð #.ð #.ðLLð Lð Lð< ð < ð < ð~	ð 	ð 	ð	ð 	ð 	ð 	ð 	�}ñ 	ô 	ð 	ðð ð ð ð ð ð	%ð 	%ð 	%ð:ð :ð :ð<ð <à"3 )Ô"3ð �˜8 V V¡X¤XÐ.°¸	¸	¹¼Ð0DÐEÑFÔFðNðð �˜8 V V¡X¤XÐ.°ÀÈ	È	ÉÌÐ@TÐUÑVÔVðNðð �à! 6 6¡8¤8Ð,Ø/Ø 	 	¡¤Ð,ðñô ðNðð �˜8 V V¡X¤XÐ.°Ð>Ñ?Ô?ðNðð �Ð*¨V°T°T±V´VÐ,<Ð=Ñ>Ô>ðOðð �Ð3°f¸d¸d¹f¼fÐ5EÐFÑGÔGðOðð �˜w¨¨©¬Ð/°'¸4¸4¹6¼6Ð1BÐCÑDÔDðTðð �Ð/°'¸4¸4¹6¼6Ð1BÐDUÐVÑWÔWØSððY0	
ðb 	0Ð/Ð/ñe3#ô 3#ð<ñ <ô <Ð ð~ „×ÒÐ/Ð1LÑMÔMð6ð 6ñ NÔMð6ð/ð /ð /ð.7ð 7ð 7ð(ð ð ð.&ð &ð &ð0,ð ,ð ,ðð ð ð$ „×Ò˜¨¨}Ð(=Ñ>Ô>ð;ð ;ñ ?Ô>ð;ð „×Ò˜Ð'7Ð9JÐ&KÑLÔLðGð Gñ MÔLðGð(
ð 
ð 
ðð ð ð2Yð Yð Yð*Að Að Að  „×Ò˜¨°(Ð';Ñ<Ô<ð8ð 8ñ =Ô<ð8ð"&ð &ð &ð$ „×Ò˜  E E¨!¨Q¡K¤KÐ 0Ñ1Ô1ðð ñ 2Ô1ðð3ð 3ð 3ð@ð ð ð  „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð$ð $ñ	ô ð$ðN 5ð  5ð  5ðN €¨Ð-Ñ-Ô-Ø„×ÒÐ*¨U°OÐ,DÑEÔEðJ
ð J
ñ FÔEñ .Ô-ðJ
ðZ €¨Ð-Ñ-Ô-ð-ð -ñ .Ô-ð-ðBIð Ið Ið €¨Ð-Ñ-Ô-ð$Cð $Cñ .Ô-ð$CðV „×ÒØð	ð 	ð 	ñô ð&%ð &%ñô ð&%ðZ6ð 6ð 6ð 6ð 6�mñ 6ô 6ð 6ðt „×ÒØ�V�V˜C˜C ™LœL¨G°]Ð+CÑCÑDÔDñô ð €¨Ð-Ñ-Ô-ðNð Nñ .Ô-ñô ðNðh „×Ò˜ 6 6¨#¨#¨g©,¬,¸'À=Ð9QÑ*QÑ#RÔ#RÑSÔSØ€¨Ð-Ñ-Ô-ðQð Qñ .Ô-ñ TÔSðQð* „×ÒØÐEÐEÐEñô ð	Bð 	Bñô ð	Bð €¨Ð-Ñ-Ô-ðð ñ .Ô-ðð „×Ò˜ t¨]Ð&;Ñ<Ô<Ø€¨Ð-Ñ-Ô-ðNð Nñ .Ô-ñ =Ô<ðNð €¨Ð-Ñ-Ô-ð%Gð %Gñ .Ô-ð%GðP €¨Ð-Ñ-Ô-ð)ð )ñ .Ô-ð)ð €¨Ð-Ñ-Ô-Ø„×ÒØÐ(Ð*LÐMñô ð&ð &ñô ñ .Ô-ð&ðR9ð 9ð 9ð, ðQð Qñ ÔðQð2 ðGð Gñ ÔðGð0 ðEð Eñ ÔðEð Eð ErM   