§
    rŠtjÖb ã                   óh  — 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@mAZAmBZB ddlCmDZDmEZE ddlFmGZG ddlHmIZImJZJmKZKmLZL ddlMmNZN ddlOmPZPmQZQmRZRmSZS ddlTmUZUmVZV ddlWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^ ddl_m`Z` ddlambZbmcZc  e¦   «         Zddedje        jf        _g        dedjh        jf        _g        d Zi G d!„ d"e¦  «        Zj G d#„ d$ej¦  «        Zk G d%„ d&eek¦  «        Zl G d'„ d(el¦  «        Zm G d)„ d*em¦  «        Zn G d+„ d,ee¦  «        Zo G d-„ d.e¦  «        Zp G d/„ d0em¦  «        Zq G d1„ d2e¦  «        Zrd3„ Zsejt         u                    d4 e@d5efg¦  «        d6f e@d5efd7g¦  «        d6f e@d8d5efg¦  «        d6f e@d9d5efg¦  «        d6f e@d:eEf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?„ ¦   «         Zvd@„ ZwdA„ ZxdB„ ZydC„ ZzdD„ Z{dE„ Z|dF„ Z}dG„ Z~dH„ ZdI„ Z€dJ„ Z�dK„ Z‚dL„ ZƒdM„ Z„dN„ Z…ejt         u                    dOg dP¢¦  «        dQ„ ¦   «         Z†ejt         u                    dRe`¦  «        dS„ ¦   «         Z‡dT„ ZˆdU„ Z‰dV„ ZŠdÔdX„Z‹dY„ ZŒdZ„ Z�d[„ ZŽejt         u                    d\g d]¢¦  «        d^„ ¦   «         Z�d_„ Z�d`„ Z‘da„ Z’ejt         u                    dbddbg¦  «        dc„ ¦   «         Z“ejt         u                    dbddbg¦  «        dd„ ¦   «         Z”de„ Z•df„ Z–ejt         u                    dg eA eE¦   «          e6¦   «         ¦  «        ef eA eE¦   «          e5¦   «         ¦  «        ef eA eE¦   «         ¦  «        dh„ f e@g ¦  «        di„ fg¦  «        dj„ ¦   «         Z—dk„ Z˜dl„ Z™ejt        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jt         u                    dydzd{g¦  «        ejt         u                    d| eE¦   «          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‹ em¦   «         fdŒ ep¦   «         fg¦  «        d�f e@d‹ em¦   «         fdŽdŒ ep¦   «         fg¦  «        d�f e@d‹ em¦   «         fd�dŒ ep¦   «         fg¦  «        d�f e@d‹ em¦   «         fd‘g¦  «        d�f e@d’d“ eo¦   «         fg¦  «        d”f e@d•d“ eo¦   «         fg¦  «        d”f e?d– eo¦   «         fd— eo¦   «         fg¦  «        d˜f e?d™d— eo¦   «         fdšg¦  «        d›fgg dœ¢¦  «        D ¦   «         Z±ejt         u                    d�e±¦  «        dž„ ¦   «         Z²dŸ„ Z³d „ Z´d¡„ Zµd¢„ Z¶d£„ Z·d¤„ Z¸ejt         u                    dbddbg¦  «        d¥„ ¦   «         Z¹ejt         u                    d¦eYeXg¦  «        d§„ ¦   «         Zºd¨„ Z»d©„ Z¼dª„ Z½d«„ Z¾ejt         u                    d¬dzd{g¦  «        d­„ ¦   «         Z¿d®„ ZÀejt         u                    d¯d eÁdd°¦  «        g¦  «        d±„ ¦   «         ZÂd²„ ZÃd³„ ZÄejt         u                    d´ eS¦   «         ¦  «        dµ„ ¦   «         ZÅd¶„ ZÆ ed·¬¸¦  «        ejt         u                    d¹dºd»g¦  «        d¼„ ¦   «         ¦   «         ZÇ ed·¬¸¦  «        d½„ ¦   «         ZÈd¾„ ZÉ ed·¬¸¦  «        d¿„ ¦   «         ZÊejt         u                    d¹g dÀ¢¦  «        dÁ„ ¦   «         ZË G dÂ„ dÃe¦  «        ZÌejt         u                    d¹ eÍ eÎeV¦  «        dÄdÅhz
  ¦  «        ¦  «         ed·¬¸¦  «        dÆ„ ¦   «         ¦   «         ZÏejt         u                    d¹ eÍ eÎeV¦  «        dÄdÅhz
  ¦  «        ¦  «         ed·¬¸¦  «        dÇ„ ¦   «         ¦   «         ZÐejt         u                    d¹g dÈ¢¦  «        dÉ„ ¦   «         ZÑ ed·¬¸¦  «        dÊ„ ¦   «         ZÒejt         u                    dËddbg¦  «         ed·¬¸¦  «        dÌ„ ¦   «         ¦   «         ZÓ ed·¬¸¦  «        dÍ„ ¦   «         ZÔ ed·¬¸¦  «        dÎ„ ¦   «         ZÕ ed·¬¸¦  «        ejt         u                    dÏeJeIg¦  «        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Ú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)ÚselfrG   rH   s      úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/tests/test_pipeline.pyÚ__init__zNoFit.__init__b   s   € ØˆŒØˆŒˆˆó    ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rK   © rL   rJ   rC   rC   _   s.   € € € € € Ø4Ð4ðð ð ð ð ð rL   rC   c                   ó$   — e Zd Zdd„Zdd„Zd„ ZdS )ÚNoTransNc                 ó   — | S rE   rR   ©rI   ÚXÚys      rJ   ÚfitzNoTrans.fith   ó   € ØˆrL   Fc                 ó    — | j         | j        dœS )NrF   rF   )rI   Údeeps     rJ   Ú
get_paramszNoTrans.get_paramsk   s   € Ø”V $¤&Ð)Ð)Ð)rL   c                 ó    — |d         | _         | S ©NrG   ©rG   )rI   Úparamss     rJ   Ú
set_paramszNoTrans.set_paramsn   s   € Ø˜”ˆŒØˆrL   rE   ©F)rN   rO   rP   rY   r]   rb   rR   rL   rJ   rT   rT   g   sK   € € € € € ðð ð ð ð*ð *ð *ð *ðð ð ð ð rL   rT   c                   ó   — e Zd Zd„ ZdS )ÚNoInvTransfc                 ó   — |S rE   rR   ©rI   rW   s     rJ   Ú	transformzNoInvTransf.transformt   ó   € ØˆrL   N)rN   rO   rP   rh   rR   rL   rJ   re   re   s   s#   € € € € € ðð ð ð ð rL   re   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTransfc                 ó   — |S rE   rR   rg   s     rJ   rh   zTransf.transformy   ri   rL   c                 ó   — |S rE   rR   rg   s     rJ   Úinverse_transformzTransf.inverse_transform|   ri   rL   N)rN   rO   rP   rh   rn   rR   rL   rJ   rk   rk   x   s2   € € € € € ðð ð ðð ð ð ð rL   rk   c                   ó   — e Zd Zdd„ZdS )ÚTransfFitParamsNc                 ó   — || _         | S rE   )Ú
fit_params©rI   rW   rX   rr   s       rJ   rY   zTransfFitParams.fit�   s   € Ø$ˆŒØˆrL   rE   ©rN   rO   rP   rY   rR   rL   rJ   rp   rp   €   s(   € € € € € ðð ð ð ð ð rL   rp   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 rE   ©Úmult)rI   rz   s     rJ   rK   zMult.__init__‡   s   € ØˆŒ	ˆ	ˆ	rL   c                 ó   — dS ©NTrR   ©rI   s    rJ   Ú__sklearn_is_fitted__zMult.__sklearn_is_fitted__Š   ó   € ØˆtrL   Nc                 ó   — | S rE   rR   rV   s      rJ   rY   zMult.fit�   rZ   rL   c                 ó:   — t          j        |¦  «        | j        z  S rE   ©ÚnpÚasarrayrz   rg   s     rJ   rh   zMult.transform�   ó   € ÝŒz˜!‰}Œ}˜tœyÑ(Ð(rL   c                 ó:   — t          j        |¦  «        | j        z  S rE   r‚   rg   s     rJ   rn   zMult.inverse_transform“   r…   rL   c                 ób   — t          j        |¦  «        | j        z                       d¬¦  «        S )Nrw   ©Úaxis)rƒ   r„   rz   Úsumrg   s     rJ   ÚpredictzMult.predict–   s(   € Ý”
˜1‘” ¤	Ñ)×.Ò.°AÐ.Ñ6Ô6Ð6rL   c                 ó*   — t          j        |¦  «        S rE   ©rƒ   rŠ   rV   s      rJ   Úscorez
Mult.score›   s   € ÝŒv�a‰yŒyÐrL   )rw   rE   )rN   rO   rP   rK   r~   rY   rh   rn   r‹   Úpredict_probaÚpredict_log_probaÚdecision_functionrŽ   rR   rL   rJ   rv   rv   †   s    € € € € € ðð ð ð ðð ð ðð ð ð ð)ð )ð )ð)ð )ð )ð7ð 7ð 7ð =DÐC€MÐCÐ%Ð(9ðð ð ð ð ð rL   rv   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    rJ   rK   zFitParamT.__init__¢   s   € ØˆŒˆˆrL   Fc                 ó"   — || _         d| _        d S r|   )r–   Úfitted_©rI   rW   rX   Úshould_succeeds       rJ   rY   zFitParamT.fit¥   s   € Ø(ˆŒØˆŒˆˆrL   c                 ó   — | j         S rE   r•   rg   s     rJ   r‹   zFitParamT.predict©   s
   € ØŒÐrL   c                 ó\   — |                       |||¬¦  «         |                      |¦  «        S )N)rš   )rY   r‹   r™   s       rJ   Úfit_predictzFitParamT.fit_predict¬   s*   € Ø�Š��A nˆÑ5Ô5Ð5Ø�|Š|˜A‰ŒÐrL   Nc                 ó8   — |�||z  }t          j        |¦  «        S rE   r�   )rI   rW   rX   Úsample_weights       rJ   rŽ   zFitParamT.score°   s    € ØÐ$Ø�MÑ!ˆAÝŒv�a‰yŒyÐrL   rc   rM   )	rN   rO   rP   rQ   rK   rY   r‹   r�   rŽ   rR   rL   rJ   r“   r“   Ÿ   st   € € € € € ØÐð ð  ð  ðð ð ð ðð ð ðð ð ð ðð ð ð ð ð rL   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_rV   s      rJ   rY   zDummyTransf.fit¹   s,   € Ý”g˜a aÐ(Ñ(Ô(ˆŒõ œ)™+œ+ˆŒØˆrL   N)rN   rO   rP   rQ   rY   rR   rL   rJ   r¡   r¡   ¶   s)   € € € € € Ø2Ð2ðð ð ð ð rL   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|   rR   r}   s    rJ   r~   z*DummyEstimatorParams.__sklearn_is_fitted__Ä   r   rL   c                 ó   — | S rE   rR   rV   s      rJ   rY   zDummyEstimatorParams.fitÇ   rZ   rL   Fc                 ó   — || _         | S rE   ©Úgot_attribute©rI   rW   r­   s      rJ   r‹   zDummyEstimatorParams.predictÊ   ó   € Ø*ˆÔØˆrL   c                 ó   — || _         | S rE   r¬   r®   s      rJ   r�   z"DummyEstimatorParams.predict_probaÎ   r¯   rL   c                 ó   — || _         | S rE   r¬   r®   s      rJ   r�   z&DummyEstimatorParams.predict_log_probaÒ   r¯   rL   Nrc   )	rN   rO   rP   rQ   r~   rY   r‹   r�   r�   rR   rL   rJ   r¨   r¨   Á   st   € € € € € Ø6Ð6ðð ð ðð ð ðð ð ð ðð ð ð ðð ð ð ð ð rL   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)rw   rw   rw   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__CrR   )r'   ÚpytestÚraisesÚ	TypeErrorrY   rC   rT   r]   Údictrb   rG   rH   Úreprr,   r   r   Únamed_stepsÚCÚreÚescapeÚ
ValueErrorr	   Úpop)	ÚpipelineÚmsgr³   ÚpipeÚfilter1Úpipe2ra   Úparams2Úxs	            rJ   Ú 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´   rw   )r	   rÆ   rÇ   r¿   rÀ   rÁ   rY   )Úmeta_estimatorsÚ
class_namerË   s      rJ   Ú3test_meta_estimator_raises_class_not_instance_errorrÜ   +  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È   rY   )rW   rX   rÌ   rË   s       rJ   Útest_empty_pipelinerá   D  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     rJ   Útest_empty_pipeline_dirræ   N  s/   € å�B‰<Œ<€DÝ�‰IŒI€EØ�eÐÐÐÐÐÐrL   c                  ój  — t          j        ddgg¦  «        } t          dt          ¦   «         fdt	          ¦   «         ff¦  «        }|                     | d ¬¦  «         |                     | ¦  «         |                     d¬¦  «         |                     | d ¬¦  «         |                     | ¦  «         d S )Nrw   é   Útransfr³   ©rX   rÕ   )ré   )rƒ   Úarrayr'   rk   r“   rY   rŽ   rb   ©rW   rÌ   s     rJ   Útest_pipeline_init_tuplerí   U  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€MrL   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'   rY   r‹   r�   r�   rŽ   )rW   rX   r³   rÍ   rÌ   s        rJ   Útest_pipeline_methods_anovarò   a  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�!ÑÔÐÐÐrL   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)rW   rX   Úclf__should_succeedz.fit() got an unexpected keyword argument 'bad'r´   )Úclf__bad)r'   rk   r“   rY   r‹   rÄ   rG   rH   rÆ   rÇ   r¿   rÀ   rÁ   )rÌ   rË   s     rJ   Útest_pipeline_fit_paramsrö   p  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 )
Nrw   rè   ré   r³   rê   é   )rX   rŸ   ©rŸ   é   )rƒ   rë   r'   rk   r“   rY   rŽ   rì   s     rJ   Ú%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Ò=Ð=Ð=Ð=Ð=Ð=rL   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 )
Nrw   rè   ré   r³   rê   rø   rù   z:score() got an unexpected keyword argument 'sample_weight'r´   )rƒ   rë   r'   rk   rv   rY   rŽ   rÆ   rÇ   r¿   rÀ   rÁ   )rW   rÌ   rË   s      rJ   Ú'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È   rb   )rÌ   Ú	error_msgs     rJ   Ú$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'   rY   r‹   r�   r�   rŽ   )rW   rX   r³   rÒ   rÌ   s        rJ   Ú$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�!ÑÔÐÐÐrL   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'   rY   Úscore_samplesÚshapeÚfit_transformr<   rh   )rW   rÒ   r  rÌ   s       rJ   Ú#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ÐOrL   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 )Nrw   rè   z<'LogisticRegression' object has no attribute 'score_samples'z+'Pipeline' has no attribute 'score_samples'r´   )rƒ   rë   r(   r!   rY   r¿   rÀ   ÚAttributeErrorr  Ú
isinstanceÚvalueÚ	__cause__Ústr)rW   rX   rÌ   Ú	inner_msgÚ	outer_msgÚ	exec_infos         rJ   Ú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'   rY   r‹   r�   r�   r‘   rŽ   )rW   rX   Ú	n_samplesÚ	n_classesÚscalerrÒ   r³   ÚpreprocessingrÌ   r‹   ÚprobaÚ	log_probar‘   s                rJ   Ú.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ÑÔÐÐð#ð rL   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           rJ   Útest_fit_predict_on_pipeliner7    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¨]Ñ;Ô;Ð;Ð;Ð;rL   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         rJ   Ú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)rW   rX   Útransf__should_get_thisrô   Úshould_get_thisrš   )r'   rp   r“   r�   rÄ   rr   r–   ©rÌ   s    rJ   Ú-test_fit_predict_with_intermediate_fit_paramsr@  &  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ÐHrL   Ú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)rW   r­   )r'   rk   r¨   rY   r:  rÄ   r­   )rA  rÌ   Úmethods      rJ   Ú(test_predict_methods_with_predict_paramsrD  2  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Ð0rL   Ú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.  rw   rï   r×   Úselectrø   éÿÿÿÿ)Ú	select__ké   Úmockrú   z>All estimators should implement fit and transform.*\bNoTrans\brh   Úno_transformr´   )rÞ   rß   Úcopyr£   rà   r   r   r&   rY   rh   r  r=   r  r>   ÚravelÚtoarrayr	   Útransformer_listrb   rk   rT   r¿   rÀ   rÁ   )rE  rW   rX   r×   rH  ÚfsÚX_transformedÚX_spÚX_sp_transformedÚfs2rË   s              rJ   Útest_feature_unionrW  @  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)rk   re   r&   Únamed_transformersré   rY  )ré   rY  rR  s      rJ   Ú%test_feature_union_named_transformersr[  p  s˜   € å‰XŒX€FÝ‘-”-€KÝ	˜ &Ð)¨M¸;Ð+GÐHÑ	IÔ	I€BØÔ  Ô*¨fÒ4Ð4Ð4Ð4ØÔ  Ô/°;Ò>Ð>Ð>Ð>ð Ô Ô'¨6Ò1Ð1Ð1Ð1ØÔ Ô,°Ò;Ð;Ð;Ð;Ð;Ð;rL   c                  ó¨   — t          d¬¦  «        } t          ¦   «         }t          | |¦  «        }t          |j        Ž \  }}|dk    sJ ‚|| |fk    sJ ‚d S )Nr  r9  )rÒ   ré   )r   rk   r)   ÚziprQ  )rÒ   rL  ÚfuÚnamesÚtransformerss        rJ   Útest_make_unionra  }  si   € Ý
˜Ð
 Ñ
 Ô
 €CÝ‰8Œ8€DÝ	�C˜Ñ	Ô	€BÝ˜rÔ2Ð3Ñ€Eˆ<ØÐ%Ò%Ð%Ð%Ð%Ø˜C ˜;Ò&Ð&Ð&Ð&Ð&Ð&rL   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  r9  rø   ©Ún_jobszEmake_union() got an unexpected keyword argument 'transformer_weights'r´   é
   rw   )rÒ   rk   ©Útransformer_weights)
r   rk   r)   rQ  rd  rÆ   rÇ   r¿   rÀ   rÁ   )rÒ   rL  r^  rË   s       rJ   Útest_make_union_kwargsrh  †  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 rR   rR   )Ú.0ÚiÚ	base_names     €rJ   ú
<listcomp>z=create_mock_transformer.<locals>.<lambda>.<locals>.<listcomp>˜  s1   ø€ ð 9ð 9ð 9Øˆ9Ð�aÐÐð9ð 9ð 9rL   )Úrange)Úinput_featuresrn  Ú
n_featuress    €€rJ   ú<lambda>z)create_mock_transformer.<locals>.<lambda>˜  s3   ø€ ð 9ð 9ð 9ð 9Ý#(¨Ñ#4Ô#4ð9ñ 9ô 9€ rL   )rk   Úget_feature_names_out)rn  rr  rL  s   `` rJ   Úcreate_mock_transformerru  •  s2   øø€ å‰8Œ8€Dð"ð "ð "ð "ð "€DÔð €KrL   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   ru  r)   rx  rY   r>   rt  )rW   rX   rÒ   rL  ÚunionÚfu_unions         rJ   Ú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ÑÔÐåð	
ð 	
ð 	
ð 	×&Ò&Ñ(Ô(ñô ð ð ð rL   c                  ó¼  — t           j        } t          dd¬¦  «        }t          d|fg¦  «        }|                     | ¦  «                             | ¦  «        }|                     | ¦  «        }|                     | ¦  «        }t          ||¦  «         t          ||¦  «         |                     |¦  «        }|                     |¦  «        }t          ||¦  «         d S )Nrè   r  )r  r
  rÒ   )	rÞ   rß   r   r'   rY   rh   r  r=   rn   )rW   rÒ   rÊ   ÚX_transÚX_trans2ÚX_trans3ÚX_backÚX_back2s           rJ   Ú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Ñ.Ô.Ð.Ð.Ð.rL   c                  ó  — t           j        } t           j        }t          ¦   «         }t	          d|fg¦  «        }|                     | |¦  «        }|                     | |¦  «                             | ¦  «        }t          ||¦  «         d S )NrL  )	rÞ   rß   rà   rk   r'   r  rY   rh   r=   )rW   rX   ré   rÊ   r„  r…  s         rJ   Útest_pipeline_fit_transformr‹  Î  s|   € åŒ	€AÝŒ€AÝ‰XŒX€FÝ˜& &Ð)Ð*Ñ+Ô+€Hð ×$Ò$ Q¨Ñ*Ô*€GØ�zŠz˜!˜QÑÔ×)Ò)¨!Ñ,Ô,€HÝ˜g xÑ0Ô0Ð0Ð0Ð0rL   z
start, end))r   rw   )r   rè   )rw   rè   )rw   rø   ©Nrw   )rw   NrM   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´   rI  )r'   rk   r“   r  rã   ÚlistrÄ   Úitemsr]   r¿   rÀ   rÈ   )ÚstartÚendrÌ   Ú
pipe_sliceÚpipe_paramsÚpipe_slice_paramsrË   s          rJ   Ú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   rI  rø   Úfoobar)rk   r“   r'   r¿   rÀ   Ú
IndexErrorÚKeyError)ré   r³   rÌ   s      rJ   Ú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 )
NrL  Úmock2©rã   ©rL  )ÚjunkrR   zJLast step of Pipeline should implement fit or be the string 'passthrough'.r´   rw   z0This 'Pipeline' has no attribute 'fit_transform')rk   r'   rÄ   rã   rb   rÆ   rÇ   r¿   rÀ   rÁ   rY   r  r  )rŽ  r�  rÊ   rË   s       rJ   Ú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è   ry   rL  rz   r¡  Úvalues)rk   rv   r'   rÄ   rL  rz   r§  )ré   Úmult2rÊ   s      rJ   Útest_pipeline_named_stepsr©  -  sÜ   € Ý‰XŒX€FÝ�aˆL‰LŒL€EÝ˜& &Ð)¨F°E¨?Ð;Ñ<Ô<€Hð �XÔ)Ð)Ð)Ð)Ð)Ø˜(Ô.Ð.Ð.Ð.Ð.ØÔÔ$¨Ð.Ð.Ð.Ð.ØÔÔ$¨Ð-Ð-Ð-Ð-õ ˜( FÐ+¨f°e¨_Ð=Ñ>Ô>€HØÔÔ&¨fÐ4Ð4Ð4Ð4ØÔÔ$¨Ð-Ð-Ð-Ð-Ð-Ð-rL   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 )Nrw   rè   ry   rø   é   Úm2ÚbadÚm3Úm5)r¬  r­  r®  r¯  c                 ó   — g | ]\  }}|‘ŒS rR   rR   )rl  ÚnameÚ_s      rJ   ro  z9test_pipeline_correctly_adjusts_steps.<locals>.<listcomp>L  s   € Ð7Ð7Ð7™W˜T 1�DÐ7Ð7Ð7rL   )rƒ   rë   rv   r'   rY   rã   )	rÕ   rW   rX   r¨  Úmult3Úmult5rÊ   Úexpected_namesÚactual_namess	            rJ   Ú%test_pipeline_correctly_adjusts_stepsr·  >  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Ø˜\Ò)Ð)Ð)Ð)Ð)Ð)rL   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 )Nrw   rè   ry   rø   r«  c                  ó4   •— t          d‰ fd‰fd‰fg¦  «        S )Nr¬  r®  Úlast)r'   )r¨  r³  r´  s   €€€rJ   Úmakez0test_set_pipeline_step_passthrough.<locals>.makeX  s$   ø€ Ý˜$ ˜¨¨u¨¸À°ÐGÑHÔHÐHrL   é   ©r®  re  Tr·   F)	rã   r¬  r®  rº  r‘  Úm2__multÚ
last__multÚtransform_inputr’  ©r¬  )r�   r�   r‘   rh   rŽ   )rº  é   z''str' object has no attribute 'predict'z*This 'Pipeline' has no attribute 'predict'r´   r‹   r¬  r®  rº  )rƒ   rë   rv   r>   r  rY   r‹   rn   rb   r]   rã   r:  rh   r¿   rÀ   r  r  r  r  r  r'   )rÕ   rW   rX   r»  rÊ   ÚexpÚother_methodsrC  r  r  r  r¨  r³  r´  s              @@@rJ   Ú"test_set_pipeline_step_passthroughrÅ  P  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Ô   rn   )	r(   rv   r‹   rh   rn   rk   Úhasattrrã   re   )rÊ   s    rJ   Ú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Ð5rL   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-1rw   ztransf-2rè   Ú	fitparamt)rk   r(   r  r'   rã   r“   )Út1Út2rÌ   s      rJ   Útest_make_pipelinerÍ  ½  sö   € Ý	‰Œ€BÝ	‰Œ€BÝ˜˜RÑ Ô €DÝ�d�HÑ%Ô%Ð%Ð%Ð%ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)å˜˜R¥¡¤Ñ-Ô-€DÝ�d�HÑ%Ô%Ð%Ð%Ð%ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)ØŒ:�aŒ=˜Ô˜zÒ)Ð)Ð)Ð)ØŒ:�aŒ=˜Ô˜{Ò*Ð*Ð*Ð*Ð*Ð*rL   zpipeline, check_estimator_typec                 ó.   — t          | ¦  «        j        d u S rE   ©r1   Úestimator_type©Úests    rJ   rs  rs  Ó  s   € � ™œÔ4¸Ð<€ rL   c                 ó.   — t          | ¦  «        j        d u S rE   rÏ  rÑ  s    rJ   rs  rs  Õ  s   € ¥8¨C¡=¤=Ô#?À4Ð#G€ rL   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     rJ   Útest_pipeline_estimator_typerÖ  Ì  s,   € õ& 	ˆ�N„N€NØÐ Ñ)Ô)Ð)Ð)Ð)Ð)Ð)rL   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      rJ   Ú%test_sklearn_tags_with_empty_pipelinerÜ  ã  sQ   € õ  BÐ'Ñ'Ô'€NÝ	‰Œ€Bà×'Ò'Ñ)Ô)€MØ×*Ò*Ñ,Ô,°Ò=Ð=Ð=Ð=Ð=Ð=rL   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.  rw   rï   rÒ   rH  re  rf  rL  rI  é   )rÞ   rß   rà   r   r   r&   rY   rh   r  rk   r=   r>   rO  r  )rW   rX   rÒ   rH  rR  rS  ÚX_fit_transformedÚX_fit_transformed_wo_methods           rJ   Ú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°Ò?Ð?Ð?Ð?Ð?Ð?rL   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è   rc  r   )
ÚJUNK_FOOD_DOCSr&   r   rY   rh   r  r#  r>   rP  r  )rW   rR  Úfs_parallelÚfs_parallel2rS  ÚX_transformed_parallelÚX_transformed_parallel2s          rJ   Ú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ÐRrL   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__é#   Útr1rw   zDTransformer tr1 (type Transf) does not provide get_feature_names_outr´   )r   r&   rY   rê  rt  r#  rk   rÆ   rÇ   r¿   rÀ   r  )Ú	word_vectÚ	char_vectÚftÚfeature_namesÚfeatrË   s         rJ   Ú test_feature_union_feature_namesrü  A  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 )Nrw   rï   Úclasses_r   ©r.  )rÞ   rß   rà   r(   r   r    rY   r¿   rÀ   r  r:  r!   r>   rþ  rƒ   r$  )rW   rX   Úregr³   s       rJ   Útest_classes_propertyr  T  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Úx3rR   ©rq  s    rJ   rs  z.test_set_feature_union_steps.<locals>.<lambda>i  ó   € ¸$¸€ rL   c                 ó   — dgS ©NÚx2rR   r  s    rJ   rs  z.test_set_feature_union_steps.<locals>.<lambda>j  r  rL   c                 ó   — dgS )NÚx5rR   r  s    rJ   rs  z.test_set_feature_union_steps.<locals>.<lambda>k  r  rL   r¬  r®  rw   Úm2__x2Úm3__x3r¯  Úm5__x5rL  )rQ  Úmock__x3r£  Úmock__x5)	rv   rt  r&   r>   rh   rƒ   r„   rQ  rb   )r¨  r³  r´  rù  s       rJ   Útest_set_feature_union_stepsr  d  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×%=Ò%=Ñ%?Ô%?Ñ@Ô@Ð@Ð@Ð@rL   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	  rR   r  s    rJ   rs  z2test_set_feature_union_step_drop.<locals>.<lambda>…  r  rL   c                 ó   — dgS r  rR   r  s    rJ   rs  z2test_set_feature_union_step_drop.<locals>.<lambda>†  r  rL   rw   r¬  r®  r  r  rØ   rÁ  r½  )r¬  rØ   )
rv   rt  rƒ   r„   r&   r>   rY   rh   r  rb   )r¨  r³  rW   rù  s       rJ   Ú 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×#;Ò#;Ñ#=Ô#=Ñ>Ô>Ð>Ð>Ð>rL   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	  rR   r  s    rJ   rs  z4test_set_feature_union_passthrough.<locals>.<lambda>«  r  rL   c                 ó   — dgS r  rR   r  s    rJ   rs  z4test_set_feature_union_passthrough.<locals>.<lambda>¬  r  rL   rw   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__f3ry  rz  )Ú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(  rf  )rv   rt  rƒ   r„   r&   r>   rY   rh   r  rb   rÞ   rß   r  r   Úhstack)r¨  r³  rW   rù  ÚcolumnsrÒ   ÚX_fts          rJ   Ú"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Ñ:Ô:ñ
ô 
ð 
ð 
ð 
rL   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Ô   )ry  rz  Úpassthrough__x0Úpassthrough__x1Úpassthrough__x2Úpassthrough__x3N©rÞ   rß   r   r&   rY   r>   rt  ©rW   rÒ   rù  s      rJ   Ú9test_feature_union_passthrough_get_feature_names_out_truer6    s   € åŒ	€AÝ
˜1¨ÀAÐ
FÑ
FÔ
F€Cå	˜˜s�|Ð%CÐDÑ	EÔ	E€BØ‡F‚Fˆ1�I„I€IÝð	
ð 	
ð 	
ð 	× Ò Ñ"Ô"ñ
ô 
ð 
ð 
ð 
rL   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Ô   Frw  )Úpca0Úpca1Úx0Úx1r
  r  Nr4  r5  s      rJ   Ú: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Ýð	
ð 	
ð 	
ð 	× Ò Ñ"Ô"ñ
ô 
ð 
ð 
ð 
rL   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.Úpandasrw   rè   rø   rG   rH   ©r,  c                 ó   — | dg         S r_   rR   ©rW   s    rJ   rs  zStest_feature_union_passthrough_get_feature_names_out_false_errors.<locals>.<lambda>E  s   € �!�S�E”(€ rL   c                 ó,   — t          j        dg¦  «        S r_   )rƒ   r„   )rI   r²  s     rJ   rs  zStest_feature_union_passthrough_get_feature_names_out_false_errors.<locals>.<lambda>E  s   € ½b¼jÈ#ÈÑ>OÔ>O€ rL   )Úfeature_names_outrË  rÌ  Frw  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+   rY   rÆ   rÇ   rÀ   rÈ   rt  )ÚpdrW   Úselect_ar€  rË   s        rJ   ÚAtest_feature_union_passthrough_get_feature_names_out_false_errorsrH  ?  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>  re  c                 ó   — g | ]}d |› �‘ŒS )ÚfrR   )rl  rm  s     rJ   ro  zdtest_feature_union_passthrough_get_feature_names_out_false_errors_overlap_over_5.<locals>.<listcomp>Y  s   € Ð0LÐ0LÐ0L¸Q°°Q°°Ð0LÐ0LÐ0LrL   r?  )rË  rÕ   )rÌ  rÕ   Frw  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¿   rD  rE  r“  rp  r&   rY   rÆ   rÇ   rÀ   rÈ   rt  )rF  rW   r€  rË   s       rJ   ÚPtest_feature_union_passthrough_get_feature_names_out_false_errors_overlap_over_5rL  V  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 rE   ©Úoffset)rI   rR  s     rJ   rK   zDfOutTransformer.__init__n  s   € ØˆŒˆˆrL   Nc                 ó   — | S rE   rR   rV   s      rJ   rY   zDfOutTransformer.fitq  rZ   rL   c                 ó   — || j         z
  S rE   rQ  rV   s      rJ   rh   zDfOutTransformer.transformt  s   € Ø�4”;‰ÐrL   c                 ó   — | S rE   rR   )rI   rh   s     rJ   Ú
set_outputzDfOutTransformer.set_outputw  s	   € ð ˆrL   )rO  rE   )rN   rO   rP   rK   rY   rh   rV  rR   rL   rJ   rN  rN  m  sd   € € € € € ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð rL   rN  Údf_lib_namer>  ÚpolarsÚT1)r+   rN  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
    )rw   rè   rø   rK  rF   rË  rÌ  ©rh   )Út1__aÚt1__bÚt2__aÚt2__brG   rH   Frw  z%Output feature names:.*are not uniquer´   N)r¿   rD  rE  r&   r+   rV  r  r“  r,  rb   rÀ   rÈ   )rW  rY  Údf_libÚdfr^  Údf_ts         rJ   Ú)test_feature_union_duplicate_column_namesrd  }  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è   rH   rø   rG   rã   rQ  r´   rw   rR   )
rv   r'   r&   r¿   rÀ   rÈ   rY   Úsetattrr  rb   )Úerror_message_1Úerror_message_2Úerror_message_3Ú
bad_steps1Ú
bad_steps2rÿ   ÚparamÚ
bad_steps3Ú	bad_stepsÚmessagerÒ  s              rJ   Útest_step_name_validationrq  �  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 )NrG   rH   gü©ñÒMbP?)Úa__b__alphaÚa__br«  )Úa__stepsÚa__b__C)r'   r   rb   r   r!   )Ú	estimators    rJ   Útest_set_params_nested_pipelinerx  Ã  sx   € Ý˜3¥¨3µÑ0@Ô0@Ð*AÐ)BÑ CÔ CÐDÐEÑFÔF€IØ×Ò Uµ±´ÐÑ9Ô9Ð9Ø×Ò CÕ);Ñ)=Ô)=Ð#>Ð"?ÈÐÑKÔKÐKÐKÐKrL   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)
Nre  ©Úlocationr’  r   rÿ  ré   Úlogreg©r‘  r¤   Útransf_2)rÞ   rß   rà   r   ÚjoblibÚMemoryr!   r¡   r'   r	   rY   rÄ   r¦   r>   r‹   r�   r�   rŽ   r¤   rÇ  ÚshutilÚrmtree)rW   rX   Úcachedirr‘  r³   ré   rÌ   Úcached_pipeÚtsÚclf_2r~  Úcached_pipe_2s               rJ   Ú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 )Nre  rz  r}  rè   )
r   r  r€  r(   r¡   r,   r‘  r#  r�  r‚  )rƒ  r‘  rÊ   s      rJ   Ú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�(ÑÔÐÐÐrL   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚFeatureNameSaverNc                 ó*   — t          | |d¬¦  «         | S )NT)Úreset)r@   rV   s      rJ   rY   zFeatureNameSaver.fit  s   € Ý˜T 1¨DÐ1Ñ1Ô1Ð1ØˆrL   c                 ó   — |S rE   rR   rV   s      rJ   rh   zFeatureNameSaver.transform  ri   rL   c                 ó   — |S rE   rR   )rI   rq  s     rJ   rt  z&FeatureNameSaver.get_feature_names_out  s   € ØÐrL   rE   )rN   rO   rP   rY   rh   rt  rR   rL   rJ   rŒ  rŒ    sP   € € € € € ðð ð ð ðð ð ð ðð ð ð ð ð rL   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¢  NrI  )
r'   rŒ  r!   r   rY   rß   rà   r>   rt  rú  )rÌ   rÞ   s     rJ   Útest_features_names_passthroughr”     sœ   € åàÕ&Ñ(Ô(Ð)Ø#ØÕ&Ñ(Ô(Ð)ð
ðñ ô €Dõ ‰;Œ;€DØ‡H‚HˆTŒY˜œÑ$Ô$Ð$ÝØˆSˆbˆSŒ	×'Ò'¨Ô(:Ñ;Ô;¸TÔ=Oñô ð ð ð rL   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 )ÚpizzarR   )rl  rÐ   s     rJ   ro  z7test_feature_names_count_vectorizer.<locals>.<listcomp>3  s   € Ð.Ð.Ð.˜!ˆ�AˆÐ.Ð.Ð.rL   NrI  )ÚbeerÚburgerÚcokeÚ	copyrightr˜  ÚtheÚnonsense_is_ignored)r'   r   r!   rê  rY   r>   rt  )rÌ   rX   s     rJ   Ú#test_feature_names_count_vectorizerrŸ  0  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Œ	×'Ò'Ð(=Ñ>Ô>Ø?Ð?Ð?ñô ð ð ð rL   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'   rT   r   rY   rß   rà   r¿   rÀ   r  rt  )rÌ   rÞ   rË   s      rJ   Ú8test_pipeline_feature_names_out_error_without_definitionr¢  ?  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   rw   rù   )r(   r!   r¿   rÀ   rÈ   rY   )r³   s    rJ   Útest_pipeline_param_errorr¤  K  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ã   rI  rw   N)rÇ  r  rã   r“   )rl  rÒ  ÚpatternrC  s       rJ   ú	<genexpr>r§  S  s•   è è € ð <ð <á‰ˆˆg˜õh ˆs�FÑÔðm<ðp 	�/Ò!Ð!Ý�C˜Ñ!Ô!ð 	"å�s”y ”} QÔ'­Ñ3Ô3ð 	"ðo 	ˆ'�6Ððn 	"Ð!Ð!Ð!ðq<ð <rL   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é   Nrz   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$)rY   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©rw   rè   rø   )rK  r«  rÂ  rß  rú   F)r’  zGot output for verbose=FalseT)r:  rb   Ú
readouterrÚoutrÆ   rµ   )rÒ  rC  r¦  ÚcapsysÚfuncrW   rX   s          rJ   Ú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Ð5rL   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 ©	Nrw   rè   rø   rK  r«  rÂ  ©r   rw   rè   Ún_features_in_)r+   r   r(   rÇ  rY   r´  )rW   rX   ÚssÚgbdtrÌ   s        rJ   Ú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Ð-Ñ.Ô.Ð.Ð.Ð.Ð.Ð.rL   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Ç  rY   r´  )rW   rX   rµ  r^  s       rJ   Ú 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Ð6rL   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 )NrG   r   ©rÈ   rs   s       rJ   rY   z;test_feature_union_fit_params.<locals>.DummyTransformer.fitÐ  s   € Ø˜c 1˜XÒ%Ð%Ý Ð ØˆKrL   c                 ó   — |S rE   rR   rV   s      rJ   rh   zAtest_feature_union_fit_params.<locals>.DummyTransformer.transformÕ  ó   € ØˆHrL   rE   ©rN   rO   rP   rY   rh   rR   rL   rJ   ÚDummyTransformerr¼  Ï  s<   € € € € € ð	ð 	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð 	rL   rÂ  Údummy0Údummy1r   r`   )r   r   rÞ   rß   rà   r&   r¿   rÀ   rÈ   rY   r  ©rÂ  rW   rX   r¼   s       rJ   Ú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Úmetadatarw   r¾  rs   s       rJ   rY   zQtest_feature_union_fit_params_without_fit_transform.<locals>.DummyTransformer.fité  s   € Ø˜j¨!˜_Ò,Ð,Ý Ð ØˆKrL   rE   rt   rR   rL   rJ   rÂ  rÉ  è  s(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	rL   rÂ  Únofittransform0Únofittransform1r   )rË  rw   )	r-   rÞ   rß   rà   r&   r¿   rÀ   rÈ   r  rÅ  s       rJ   Ú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 )Nrw   r   rº   gÍÌÌÌÌÌì?)Úpgš™™™™™Ù?)rÞ   rß   rN  rà   rƒ   ÚrandomÚchoicer  ÚastypeÚboolÚnanr(   r   r!   rY   rŽ   )rW   rX   ÚmaskrÌ   s       rJ   Ú%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Ñ%Ô%¨Ò+Ð+Ð+Ð+Ð+Ð+rL   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 )Nrw   rè   rø   rK  r«  rÂ  r³  ré   ÚtransformerzZAttempting to weight transformer "transformer", but it is not present in transformer_list.rf  r´   )rk   r&   r¿   rÀ   rÈ   rY   )rW   rX   rQ  ÚweightsÚexpected_msgr€  s         rJ   Ú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 rE   )r(   r,   rØ  Ú
input_tagsÚpairwise)rÕ   rÌ   s     rJ   Útest_pipeline_get_tags_nonerà    s;   € õ ˜¥c¡e¤eÑ,Ô,€DØ×$Ò$Ñ&Ô&Ô1Ô:Ð:Ð:Ð:Ð:Ð:rL   Ú	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«  rw   é   rÙ  Ú	predictor)rƒ   rÑ  ÚRandomStateÚrandnrë   r'   r:   rY   r‹   r
   r>   rŽ   r¿   Úapproxr"   r<   r£   r#   )rá  ÚrngrW   rX   ÚmodelÚy_preds         rJ   Ú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ÐFrL   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˜   rV   s      rJ   rY   z4test_pipeline_check_if_fitted.<locals>.Estimator.fit;  ó   € ØˆDŒLØˆKrL   Nrt   rR   rL   rJ   Ú	Estimatorrï  :  s#   € € € € € ð	ð 	ð 	ð 	ð 	rL   ró  r³   )
r   r'   r¿   rÀ   r   rA   rY   rÞ   rß   rà   )ró  rÊ   s     rJ   Útest_pipeline_check_if_fittedrô  9  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.rw   rè   rø   rK  r«  rÂ  r³  r³   Nr’  )r&   r:   r¿   rÀ   r   rA   rY   )rW   rX   r€  s      rJ   Ú"test_feature_union_check_if_fittedrö  F  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_rR   ©rl  r±  s     rJ   ro  zƒtest_pipeline_get_feature_names_out_passes_names_through.<locals>.AddPrefixStandardScalar.get_feature_names_out.<locals>.<listcomp>i  s!   € ÐEÐEÐE°tÐ2¨DÐ2Ð2ÐEÐEÐErL   )Údtype)Úsuperrt  rƒ   r„   Úobject)rI   rq  r_  Ú	__class__s      €rJ   rt  zotest_pipeline_get_feature_names_out_passes_names_through.<locals>.AddPrefixStandardScalar.get_feature_names_outg  sA   ø€ Ý‘G”G×1Ò1ÀÐ1ÑPÔPˆEÝ”:ÐEÐE¸uÐEÑEÔEÍVÐTÑTÔTÐTrL   rE   )rN   rO   rP   rt  Ú__classcell__)r  s   @rJ   ÚAddPrefixStandardScalarrù  f  sG   ø€ € € € € ð	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	UrL   r  c                 ó   — g | ]}d |› �‘ŒS rü  rR   rþ  s     rJ   ro  zLtest_pipeline_get_feature_names_out_passes_names_through.<locals>.<listcomp>q  s!   € Ð*WÐ*WÐ*WÀ4Ð+>¸Ð+>Ð+>Ð*WÐ*WÐ*WrL   N)	rÞ   rß   rà   r+   r(   rY   rú  rt  r>   )rW   rX   r  rÌ   Úinput_namesrC  s         rJ   Ú8test_pipeline_get_feature_names_out_passes_names_throughr  _  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ÐXrL   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\  NrI  )r¿   rD  r   r(   r+   r!   rV  rY   rt  Úfeature_names_in_r>   )rW   rX   rÌ   r  Úlog_reg_feature_namess        rJ   Ú$test_pipeline_set_output_integrationr  t  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ÐåÐ(Ð*?Ñ@Ô@Ð@Ð@Ð@rL   Ú
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¿   rD  r   r$   r&   r+   r   rV  rY   rh   r  rE  r>   r,  rt  Úindex)r  ÚlibrW   r²  ÚX_trainÚX_testr€  r„  s           rJ   Ú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ð ÐrL   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      rJ   Útest_feature_union_getitemr  –  sœ   € åÑÔ€FÝ
‰%Œ%€CÝà�vÐØ�CˆLØ#Øð		
ñô €Eð �Œ?˜fÐ$Ð$Ð$Ð$Ø�Œ<˜3ÐÐÐÐØ�Œ=˜MÒ)Ð)Ð)Ð)Ø�Ô˜vÒ%Ð%Ð%Ð%Ð%Ð%rL   Ú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      rJ   Ú 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¿   rD  r   r+   rY   r&   rÇ  r>   r,  r  Úto_numpy)rW   r²  r'  r€  ÚX_arrays        rJ   Ú$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Ð2rL   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´   rG   c                 ó   — | S rE   rR   rA  s    rJ   rs  z.test_feature_union_1d_output.<locals>.<lambda>Ý  s   € °A€ rL   rH   c                 ó   — | d d …df         S rŒ  rR   rA  s    rJ   rs  z.test_feature_union_1d_output.<locals>.<lambda>Þ  s   € °A°a°a°a¸°d´G€ rL   N)	rƒ   ÚarangeÚreshaper¿   rÀ   rÈ   r&   r*   r  rA  s    rJ   Ú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ä  re  )Úsize)Údevice)r«  rú   Ú	nystroem1rG  Ú	nystroem2rw   T)Úarray_api_dispatchÚcpu)Úxpr)  )Úcomponents_Únormalization_rè   N)Úatol)r;   rƒ   rÑ  ræ  ÚuniformrÓ  r„   r&   r   r  r   r4   rQ  rÇ  r3   r:  r2   r<   r  )Úarray_namespaceÚdevice_nameÚ
dtype_namer.  r)  Úrndr%  rr  Ú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_devicer1  s                          rJ   Ú'test_feature_union_array_api_compliancerB  ã  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   rG  Tr×   rè   )r  Fr’  )ÚdroppedrØ   rØ   rÕ   N)r&   r+   r   r1   Úarray_api_supportr   r)   )r€  s    rJ   Ú(test_feature_union_array_api_support_tagrG    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Ð4rL   T)Úenable_metadata_routingrC  rY   r  c                 ó  ‡— d„ Šˆfd„}d„ }t          j        ddgddgg¦  «        }t          j        ddg¦  «        }t          j        ddgg¦  «        }t          j        d	d
gg¦  «        }t          j        ddgg¦  «        } |¦   «         \  }}	}
}}|                     |||||¬¦  «          ||	ddg||¬¦  «          ||
ddg¦  «          ||ddg|dz   |¬¦  «          |||                      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)rL  rŸ   rË  s      rJ   Úget_transformerz6test_transform_input_pipeline.<locals>.get_transformer:  s;   € õ !¨(Ð3Ñ3Ô3ßŠ_¨=À8ˆ_ÑLÔLß"Ò"°ÈÐ"ÑRÔRð	
rL   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.
        TrM  FÚother_weightsrŸ   ©rÀ  )r/   r(   )Ú
registry_1Ú
registry_2Ú
registry_3Ú
registry_4rÌ   rP  s        €rJ   Úget_pipelinez3test_transform_input_pipeline.<locals>.get_pipelineB  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ÐCrL   c                 óB   — | sJ ‚| D ]}|D ]}t          |f||dœ|¤Ž ŒŒdS )zACheck that the right metadata was recorded for the given methods.)rC  ÚparentN)r0   )rL  ÚmethodsrË  rw  rC  s        rJ   Úcheck_metadataz5test_transform_input_pipeline.<locals>.check_metadataW  sl   € àˆˆˆxØ!ð 	ð 	ˆIØ!ð ð �Ý'Øðà!Ø!ðð ð ð	ð ð ð ðð	ð 	rL   rw   rè   rø   rK  r   r¼  é(   éd   éÈ   )rŸ   rR  rË  rY   rh   rM  r²  N)rƒ   rë   rY   Úsplit)rC  rX  r\  rW   rX   rŸ   rR  rË  rÌ   rT  rU  rV  rW  rP  s                @rJ   Útest_transform_input_pipelinera  5  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Ø‡H‚HØ	Ø	Ø#Ø#Øð ñ ô ð ð €NØ�U˜KÐ(¸ÐPXðñ ô ð ð €N�:  {Ð3Ñ4Ô4Ð4Ø€NØØ	�ÐØ# aÑ'Øð	ñ ô ð ð €NØØ�Š�SÑÔØ# aÑ'Øð	ñ ô ð ð ð rL   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ñ  rV   s      rJ   rY   zBtest_transform_input_explicit_value_check.<locals>.Transformer.fit‰  rò  rL   c                 ó   — |dz   S rŒ  rR   rg   s     rJ   rh   zHtest_transform_input_explicit_value_check.<locals>.Transformer.transform�  ó   € Ø�q‘5ˆLrL   NrÁ  rR   rL   rJ   ÚTransformerrd  ˆ  ó2   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	rL   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 )Nrw   rè   r   rø   )r>   rƒ   rë   ©rI   rW   rX   ÚX_valÚy_vals        rJ   rY   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ØˆKrL   rM   rt   rR   rL   rJ   ró  rk  �  s(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	rL   ró  r   rw   rè   rÙ  rw  T©rn  ro  rn  rS  N)r   r   r   rƒ   rë   r'   rN  rY   )rh  ró  rW   rX   rn  ro  rÌ   s          rJ   Ú)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Ñ,Ô,Ð,Ð,Ð,rL   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.rw   rè   rø   rK  r   z;The `transform_input` parameter can only be set if metadatar´   ÚblahrS  N)rƒ   rë   r¿   rÀ   rÈ   r(   r¡   rY   )rW   rX   rË   s      rJ   Ú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ø   rw   é   é   T)r  Útupler>   rƒ   rë   r˜   rm  s        rJ   rY   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ØˆKrL   rM   rt   rR   rL   rJ   ró  rw  ³  s(   € € € € € ð		ð 		ð 		ð 		ð 		ð 		rL   ró  c                   ó   — e Zd Zd„ Zd„ ZdS )ú/test_transform_tuple_input.<locals>.Transformerc                 ó   — d| _         | S r|   rñ  rV   s      rJ   rY   z3test_transform_tuple_input.<locals>.Transformer.fitÀ  rò  rL   c                 ó   — |dz   S rŒ  rR   rg   s     rJ   rh   z9test_transform_tuple_input.<locals>.Transformer.transformÄ  rg  rL   NrÁ  rR   rL   rJ   rh  r}  ¿  ri  rL   rh  rw   rè   r   re  ry  rÙ  rw  Trp  rn  rS  N)r   r   r   rƒ   rë   r'   rN  rY   )	ró  rh  rW   rX   ÚX_val0Úy_val0ÚX_val1Úy_val1rÌ   s	            rJ   Ú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ÐBrL   )r‹   r�   r�   r‘   rŽ   r  rh   rn   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 rE   rR   rV   s      rJ   rY   z>test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.fitñ  s   € ØˆKrL   c                 ó   — |S rE   rR   rg   s     rJ   rh   zDtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.transformô  rÀ  rL   c                 óD   — t          j        t          |¦  «        ¦  «        S rE   ©rƒ   Úonesr#  rg   s     rJ   r‹   zBtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict÷  ó   € Ý”7�3˜q™6œ6‘?”?Ð"rL   c                 óD   — t          j        t          |¦  «        ¦  «        S rE   r‹  rg   s     rJ   r�   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_probaú  r�  rL   c                 óD   — t          j        t          |¦  «        ¦  «        S rE   ©rƒ   Úzerosr#  rg   s     rJ   r�   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_log_probaý  s   € Ý”8�C ™FœFÑ#Ô#Ð#rL   c                 óD   — t          j        t          |¦  «        ¦  «        S rE   r‹  rg   s     rJ   r‘   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.decision_function 	  r�  rL   c                 ó   — dS rŒ  rR   rV   s      rJ   rŽ   z@test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score	  s   € Ø�1rL   c                 óD   — t          j        t          |¦  «        ¦  «        S rE   r‹  rg   s     rJ   r  zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score_samples	  r�  rL   c                 ó   — |S rE   rR   rg   s     rJ   rn   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.inverse_transform		  rÀ  rL   N)rN   rO   rP   rQ   rY   rh   r‹   r�   r�   r‘   rŽ   r  rn   rR   rL   rJ   ÚStatelessEstimatorr‡  é  s¥   € € € € € ð	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	#ð 	#ð 	#ð	#ð 	#ð 	#ð	$ð 	$ð 	$ð	#ð 	#ð 	#ð	ð 	ð 	ð	#ð 	#ð 	#ð	ð 	ð 	ð 	ð 	rL   r–  rw  rw   )r   r'   r¿   rÀ   r   r:  )rC  r–  rÌ   s      rJ   Ú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|   rR   r}   s    rJ   r~   z%SimpleEstimator.__sklearn_is_fitted__	  r   rL   Nc                 ó6   — |€
J |¦   «         ‚|€
J |¦   «         ‚| S rE   rR   ©rI   rW   rX   rŸ   Úprops        rJ   rY   zSimpleEstimator.fit	  s/   € ØÐ(Ð(¨-Ñ(Ô(Ð(ØÐÐ ÑÔÐØˆrL   c                 ó   — |€J ‚|€J ‚|dz   S rŒ  rR   rœ  s        rJ   r  zSimpleEstimator.fit_transform 	  ó#   € ØÐ(Ð(Ð(ØÐÐÐØ�1‰uˆrL   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rE   r‹  rœ  s        rJ   r�   zSimpleEstimator.fit_predict%	  ó.   € ØÐ(Ð(Ð(ØÐÐÐÝŒw•s˜1‘v”v‰ŒÐrL   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rE   r‹  ©rI   rW   rŸ   r�  s       rJ   r‹   zSimpleEstimator.predict*	  r¡  rL   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rE   r‹  r£  s       rJ   r�   zSimpleEstimator.predict_proba/	  r¡  rL   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rE   r�  r£  s       rJ   r�   z!SimpleEstimator.predict_log_proba4	  s0   € ØÐ(Ð(Ð(ØÐÐÐÝŒx�˜A™œÑÔÐrL   c                 óT   — |€J ‚|€J ‚t          j        t          |¦  «        ¦  «        S rE   r‹  r£  s       rJ   r‘   z!SimpleEstimator.decision_function9	  r¡  rL   c                 ó   — |€J ‚|€J ‚dS rŒ  rR   rœ  s        rJ   rŽ   zSimpleEstimator.score>	  s   € ØÐ(Ð(Ð(ØÐÐÐØˆqrL   c                 ó   — |€J ‚|€J ‚|dz   S rŒ  rR   r£  s       rJ   rh   zSimpleEstimator.transformC	  rŸ  rL   c                 ó   — |€J ‚|€J ‚|dz
  S rŒ  rR   r£  s       rJ   rn   z!SimpleEstimator.inverse_transformH	  rŸ  rL   rM   )rN   rO   rP   r~   rY   r  r�   r‹   r�   r�   r‘   rŽ   rh   rn   rR   rL   rJ   r™  r™  	  së   € € € € € ðð ð ðð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
 ð  ð  ð  ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð ð rL   r™  r`  Ú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r|	                     ||||¬¦  «        }		  t          |	| ¦  «        |||||¬¦  «         n-# t          $ r   t          |	| ¦  «        ||||¬¦  «         Y nw xY wt          |dd||¬¦  «         t          |d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_Ú_requestrR   )r6   r:  )rÒ  rC  Úkwargr[  s       rJ   Úset_requestz7test_metadata_routing_for_pipeline.<locals>.set_requestT	  sf   € ð Õ&Ð&Ð&Ý'¨Ô/ˆGˆGà�hˆGàð 	;ð 	;ˆFØ1�G�CÐ0 Ð0Ð0Ð0Ñ1Ô1Ð:Ð:°EÐ:Ð:Ð:Ð:Øˆ
rL   rw   rG   rH   T©rŸ   r�  rY   rM  Útrsrw  )rŸ   r�  rË  )ÚobjrC  rZ  rŸ   rË  rh   N)rƒ   rë   r™  r.   rN  rO  Úset_inverse_transform_requestr'   rY   r:  rÁ   r0   )
rC  r°  rW   rX   rŸ   r�  rË  rÒ  r²  rÊ   s
             rJ   Ú"test_metadata_routing_for_pipelinerµ  O	  sé  € ð
ð ð õ Œ8�a�S�E‰?Œ?�BœH a S™MœM€q€AØ%& C¨¨c˜�4€Mõ Ñ
Ô
€CØ
ˆ+�c˜6°¸DÐ
AÑ
AÔ
A€CØ
ˆ+�c˜5°¸4Ð
@Ñ
@Ô
@€CåÑÔß	Š t°dˆÑ	;Ô	;ß	Ò	¨T¸DÐ	Ñ	AÔ	Aß	&Ò	&°TÀDÐ	&Ñ	IÔ	Ið	 õ ˜% ˜¨°SÐ'9Ð:Ñ;Ô;€Hà�FÐÐØ—<’<  1°MÈ�<ÑMÔMˆð
Ø!��˜&Ñ!Ô!Øˆq °DÀ8ð	
ñ 	
ô 	
ð 	
ð 	
øõ ð 
ð 
ð 
à!��˜&Ñ!Ô!Ø˜]°Àð	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð
øøøõ ØØØØ#Øðñ ô ð õ ØØØØ#Øðñ ô ð ð ð s   Ã"D Ä'D+Ä*D+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.rw   rG   rw  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Á   )rC  rW   rX   rŸ   r�  rÒ  rÊ   Úerror_messages           rJ   Ú(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‘   rh   rn   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`.rw  z1is only supported if enable_metadata_routing=Truer´   rw   rG   r±  N)r'   r™  r¿   rÀ   rÈ   r:  )rC  rÌ   s     rJ   Ú*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²  rw  rw   N)r'   r   r   rY   r‹   r?  s    rJ   Ú%test_pipeline_with_estimator_with_lenr¼  º	  sk   € õ Ø
Õ%Ñ'Ô'Ð	(¨;Õ8NÑ8PÔ8PÐ*QÐRñô €Dð 	‡H‚HˆqˆcˆU�Q�CÑÔÐØ‡L‚L�1�#�ÑÔÐÐÐrL   Ú	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²  rw  rw   rè   rø   N)r'   r*   rY   rh   )r½  rÌ   s     rJ   Ú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ÐMrL   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   rw   rè   rK  rÂ  r«  ©rw   rw   rw   rG   Úsub_transformerzb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr´   rM  NTz
.transform)rƒ   rë   r&   r.   rN   r¿   rÀ   r   rÆ   rÇ   rY   rN  rh   )rW   rX   rŸ   rË  Úfeature_unionr·  s         rJ   Ú)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    rJ   Ú3test_feature_union_get_metadata_routing_without_fitrÇ  ø	  s9   € õ !Ð#4Õ6JÑ6LÔ6LÐ"MÐ!NÑOÔO€MØ×&Ò&Ñ(Ô(Ð(Ð(Ð(rL   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   rw   rè   rK  rÂ  r«  rÁ  rG   Ú
sub_trans1rK  TrM  Ú
sub_trans2rY   )r³  rC  rZ  NrR   )rƒ   rë   r&   r/   rN  rO  rY   r  rh   rQ  rL  r#  r0   )	rÙ  rW   rX   rŸ   rË  rÃ  ÚkwargsrL  Ú	sub_transs	            rJ   Ú#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Ý#ð ØØØðð ð ð	ð ð ð ð	ð	
ð 
rL   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Úsetuprw   ÚteardownÚon_fit_task_beginÚon_fit_task_endN)r   r   r'   r+   r   Úset_callbacksrY   Úcount_hooks)rW   rX   rÒ  Úcallbacks       rJ   Útest_pipeline_with_callbacksrÚ  1
  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ÐPrL   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Ó  rw   rÔ  rÕ  rÖ  N)r   r   r+   r×  r   r'   rY   rØ  )rW   rX   Úsc_callbackrÐ  rÒ  Úest_callbackrÒ  s          rJ   Ú%test_pipeline_with_callbacks_on_stepsrÞ  K
  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ÐFrL   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_callbacksrw   N)r   r   r'   r+   r   r  r€  r   r×  rY   rØ  rÇ  rÄ   )rW   rX   rƒ  rÒ  rÌ   rÙ  Ún_task_beginÚ
n_task_ends           rJ   Ú7test_pipeline_memory_callbacks_second_fit_same_pipelinerã  d
  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ø   )ÚrQ   Ú	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)   Úsklearn.preprocessingr*   r+   Úsklearn.svmr,   Ú%sklearn.tests.metadata_routing_commonr-   r.   r/   r0   Úsklearn.utilsr1   Úsklearn.utils._array_apir2   r3   r4   r5   Ú sklearn.utils._metadata_requestsr6   r7   Úsklearn.utils._testingr8   r9   r:   r;   r<   r=   r>   Úsklearn.utils.fixesr?   Úsklearn.utils.validationr@   rA   rÞ   rß   ÚflagsÚ	writeablerà   rê  rC   rT   re   rk   rp   rv   r“   r¡   r¨   rÑ   ÚmarkÚparametrizerÜ   rá   ræ   rí   rò   rö   rû   rý   r  r  r  r  r+  r7  r;  r@  rD  rW  r[  ra  rh  ru  r‚  r‰  r‹  rš  rŸ  r¥  r©  r·  rÅ  rÈ  rÍ  rÖ  rÜ  râ  Úthread_unsaferï  rü  r  r  r  r.  r6  r<  rH  rL  rN  rd  rq  rx  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&  rB  rG  ra  rq  rt  r„  r—  r™  ÚsortedÚsetrµ  r¸  rº  r¼  r¿  rÄ  rÇ  rÍ  rÚ  rÞ  rã  rR   rL   rJ   ú<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Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ EÐ 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 €¨Ð-Ñ-Ô-Ø„×Ò˜ E¨?Ð#;Ñ<Ô<ðJð Jñ =Ô<ñ .Ô-ðJðZ €¨Ð-Ñ-Ô-ð-ð -ñ .Ô-ð-ðBIð Ið Ið €¨Ð-Ñ-Ô-ð$Cð $Cñ .Ô-ð$CðV „×ÒØð	ð 	ð 	ñô ð&%ð &%ñô ð&%ðZ6ð 6ð 6ð 6ð 6�mñ 6ô 6ð 6ðt „×Ò˜ 6 6¨#¨#¨g©,¬,¸'À=Ð9QÑ*QÑ#RÔ#RÑSÔSØ€¨Ð-Ñ-Ô-ð=ð =ñ .Ô-ñ TÔSð=ðF „×Ò˜ 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ñô ð&ð &ñô ñ .Ô-ð&ðZ ðQð Qñ ÔðQð2 ðGð Gñ ÔðGð0 ðEð Eñ ÔðEð Eð ErL   