Ë
    ÷Q(h¸9 ã                   óä  — d Z ddlZddlZddlZddlZddlZddlmZ ddlZddl	Z
ddlZddlmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZm Z m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z; ddl<m=Z=m>Z> ddl?m@Z@ ddlAmBZBmCZCmDZDmEZE ddlFmGZG ddlHmIZImJZJ ddlKmLZLmMZMmNZNmOZOmPZPmQZQ ddlRmSZS ddlTmUZUmVZV  e«       ZWdeWj°                  j²                  _Z        deWj¶                  j²                  _Z        dZ\ G d„ de«      Z] G d „ d!e]«      Z^ G d"„ d#ee^«      Z_ G d$„ d%e_«      Z` G d&„ d'e`«      Za G d(„ d)ee«      Zb G d*„ d+e«      Zc G d,„ d-e`«      Zd G d.„ d/e«      Zed0„ Zfd1„ Zgd2„ Zhd3„ Zid4„ Zjd5„ Zkd6„ Zld7„ Zmd8„ Znd9„ Zod:„ Zpd;„ Zqd<„ Zrd=„ Zsejè                  jë                  d>g d?¢«      d@„ «       Zvejè                  jë                  dAeS«      dB„ «       ZwdC„ ZxdD„ ZydE„ ZzdF„ Z{dG„ Z|ejè                  jë                  dHg dI¢«      dJ„ «       Z}dK„ Z~dL„ ZdM„ Z€ejè                  jë                  dNddNg«      dO„ «       Z�ejè                  jë                  dNddNg«      dP„ «       Z‚dQ„ ZƒdR„ Z„ejè                  jë                  dS e: e>«        e/«       «      ef e: e>«        e.«       «      ef e: e>«       «      dT„ f e9g «      dU„ fg«      dV„ «       Z…dW„ Z†dX„ Z‡dY„ ZˆdZ„ Z‰d[„ ZŠd\„ Z‹d]„ ZŒd^„ Z�d_„ ZŽd`„ Z�da„ Z�db„ Z‘dc„ Z’dd„ Z“de„ Z”df„ Z• G dg„ dhe«      Z–di„ Z—dj„ Z˜dk„ Z™dl„ Zšdm„  e�j6                   e9dn e`«       fdo ec«       fg«      dpf e9dn e`«       fdqdo ec«       fg«      drf e9dn e`«       fdsdo ec«       fg«      drf e9dn e`«       fdtg«      dpf e9dudv eb«       fg«      dwf e9dxdv eb«       fg«      dwf e8dy eb«       fdz eb«       fg«      d{f e8d|dz eb«       fd}g«      d~fgg d¢«      D «       Zœejè                  jë                  d€eœ«      d�„ «       Z�d‚„ Zždƒ„ ZŸd„„ Z d…„ Z¡d†„ Z¢d‡„ Z£ejè                  jë                  dNddNg«      dˆ„ «       Z¤ejè                  jë                  d‰eMeLg«      dŠ„ «       Z¥d‹„ Z¦dŒ„ Z§d�„ Z¨dŽ„ Z©d�„ Zªd�„ Z«ejè                  jë                  d‘d e¬dd’«      g«      d“„ «       Z­d”„ Z®d•„ Z¯ ed–¬—«      ejè                  jë                  d˜d™dšg«      d›„ «       «       Z° ed–¬—«      dœ„ «       Z±d�„ Z² ed–¬—«      dž„ «       Z³ejè                  jë                  d˜g dŸ¢«      d „ «       Z´ G d¡„ d¢e«      Zµejè                  jë                  d˜ e¶ e·eJ«      d£d¤hz
  «      «       ed–¬—«      d¥„ «       «       Z¸ejè                  jë                  d˜ e¶ e·eJ«      d£d¤hz
  «      «       ed–¬—«      d¦„ «       «       Z¹ejè                  jë                  d˜g d§¢«      d¨„ «       Zº ed–¬—«      d©„ «       Z»ejè                  jë                  dªddNg«       ed–¬—«      d«„ «       «       Z¼ ed–¬—«      d¬„ «       Z½ ed–¬—«      d­„ «       Z¾ ed–¬—«      ejè                  jë                  d®eCeBg«      d¯„ «       «       Z¿y)°z
Test the pipeline module.
é    N)Úmkdtemp)Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚTransformerMixinÚcloneÚis_classifierÚis_regressor)ÚKMeans)Ú	load_iris)ÚPCAÚTruncatedSVD)ÚDummyRegressor)ÚHistGradientBoostingClassifierÚRandomForestClassifierÚRandomTreesEmbedding)ÚNotFittedErrorÚUnsetMetadataPassedError)ÚCountVectorizer)ÚSelectKBestÚ	f_classif)ÚSimpleImputer)ÚLassoÚLinearRegressionÚLogisticRegression)Úaccuracy_scoreÚr2_score)Útrain_test_split)ÚLocalOutlierFactor)ÚFeatureUnionÚPipelineÚmake_pipelineÚ
make_union)ÚFunctionTransformerÚStandardScaler)ÚSVC)Ú"ConsumingNoFitTransformTransformerÚConsumingTransformerÚ	_RegistryÚcheck_recorded_metadata)Úget_tags)ÚCOMPOSITE_METHODSÚMETHODS)ÚMinimalClassifierÚMinimalRegressorÚMinimalTransformerÚassert_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚCSR_CONTAINERS)Ú_check_feature_namesÚcheck_is_fittedF)zthe pizza pizza beer copyrightzthe pizza burger beer copyrightz!the the pizza beer beer copyrightzthe burger beer beer copyrightzthe coke burger coke copyrightzthe coke burger burgerc                   ó   — e Zd ZdZdd„Zy)ÚNoFitz*Small class to test parameter dispatching.Nc                 ó    — || _         || _        y ©N©ÚaÚb)Úselfr<   r=   s      úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_pipeline.pyÚ__init__zNoFit.__init__U   s   € ØˆŒØˆ�ó    ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r@   © rA   r?   r8   r8   R   s
   „ Ù4ôrA   r8   c                   ó"   — e Zd Zdd„Zdd„Zd„ Zy)ÚNoTransNc                 ó   — | S r:   rG   ©r>   ÚXÚys      r?   ÚfitzNoTrans.fit[   ó   € ØˆrA   c                 ó4   — | j                   | j                  dœS )Nr;   r;   )r>   Údeeps     r?   Ú
get_paramszNoTrans.get_params^   s   € Ø—V‘V $§&¡&Ñ)Ð)rA   c                 ó   — |d   | _         | S ©Nr<   ©r<   )r>   Úparamss     r?   Ú
set_paramszNoTrans.set_paramsa   s   € Ø˜‘ˆŒØˆrA   r:   ©F)rC   rD   rE   rN   rR   rW   rG   rA   r?   rI   rI   Z   s   „ óó*órA   rI   c                   ó   — e Zd Zd„ Zy)ÚNoInvTransfc                 ó   — |S r:   rG   ©r>   rL   s     r?   Ú	transformzNoInvTransf.transformg   ó   € ØˆrA   N)rC   rD   rE   r]   rG   rA   r?   rZ   rZ   f   s   „ órA   rZ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTransfc                 ó   — |S r:   rG   r\   s     r?   r]   zTransf.transforml   r^   rA   c                 ó   — |S r:   rG   r\   s     r?   Úinverse_transformzTransf.inverse_transformo   r^   rA   N)rC   rD   rE   r]   rc   rG   rA   r?   r`   r`   k   s   „ òórA   r`   c                   ó   — e Zd Zdd„Zy)ÚTransfFitParamsNc                 ó   — || _         | S r:   )Ú
fit_params©r>   rL   rM   rg   s       r?   rN   zTransfFitParams.fitt   s   € Ø$ˆŒØˆrA   r:   ©rC   rD   rE   rN   rG   rA   r?   re   re   s   s   „ ôrA   re   c                   óH   — e Zd Zd	d„Zd„ Zd
d„Zd„ Zd„ Zd„ ZexZ	xZ
Zd
d„Zy)ÚMultc                 ó   — || _         y r:   ©Úmult)r>   rn   s     r?   r@   zMult.__init__z   s	   € Øˆ�	rA   c                  ó   — y©NTrG   ©r>   s    r?   Ú__sklearn_is_fitted__zMult.__sklearn_is_fitted__}   ó   € ØrA   Nc                 ó   — | S r:   rG   rK   s      r?   rN   zMult.fit€   rO   rA   c                 óF   — t        j                  |«      | j                  z  S r:   ©ÚnpÚasarrayrn   r\   s     r?   r]   zMult.transformƒ   ó   € Ü�z‰z˜!‹}˜tŸy™yÑ(Ð(rA   c                 óF   — t        j                  |«      | j                  z  S r:   rv   r\   s     r?   rc   zMult.inverse_transform†   ry   rA   c                 óf   — t        j                  |«      | j                  z  j                  d¬«      S )Né   ©Úaxis)rw   rx   rn   Úsumr\   s     r?   ÚpredictzMult.predict‰   s'   € Ü—
‘
˜1“ §	¡	Ñ)×.Ñ.°AÐ.Ó6Ð6rA   c                 ó,   — t        j                  |«      S r:   ©rw   r   rK   s      r?   Úscorez
Mult.scoreŽ   s   € Ü�v‰v�a‹yÐrA   )r|   r:   )rC   rD   rE   r@   rr   rN   r]   rc   r€   Úpredict_probaÚpredict_log_probaÚdecision_functionrƒ   rG   rA   r?   rk   rk   y   s9   „ óòóò)ò)ò7ð =DÐC€MÐCÐ%Ð(9ôrA   rk   c                   ó4   — e Zd ZdZd„ Zdd„Zd„ Zdd„Zd	d„Zy)
Ú	FitParamTzMock classifierc                 ó   — d| _         y )NF©Ú
successfulrq   s    r?   r@   zFitParamT.__init__•   s	   € Øˆ�rA   c                 ó    — || _         d| _        y rp   )r‹   Úfitted_©r>   rL   rM   Úshould_succeeds       r?   rN   zFitParamT.fit˜   s   € Ø(ˆŒØˆ�rA   c                 ó   — | j                   S r:   rŠ   r\   s     r?   r€   zFitParamT.predictœ   s   € Ø�‰ÐrA   c                 óL   — | j                  |||¬«       | j                  |«      S )N)r�   )rN   r€   rŽ   s       r?   Úfit_predictzFitParamT.fit_predictŸ   s"   € Ø�‰��A nˆÔ5Ø�|‰|˜A‹ÐrA   Nc                 ó:   — |�||z  }t        j                  |«      S r:   r‚   )r>   rL   rM   Úsample_weights       r?   rƒ   zFitParamT.score£   s    € ØÐ$Ø�MÑ!ˆAÜ�v‰v�a‹yÐrA   rX   rB   )	rC   rD   rE   rF   r@   rN   r€   r’   rƒ   rG   rA   r?   rˆ   rˆ   ’   s   „ Ùò óòóôrA   rˆ   c                   ó   — e Zd ZdZd„ Zy)ÚDummyTransfz(Transformer which store the column meansc                 óp   — t        j                  |d¬«      | _        t        j                  «       | _        | S )Nr   r}   )rw   ÚmeanÚmeans_ÚtimeÚ
timestamp_rK   s      r?   rN   zDummyTransf.fit¬   s(   € Ü—g‘g˜a aÔ(ˆŒô Ÿ)™)›+ˆŒØˆrA   N)rC   rD   rE   rF   rN   rG   rA   r?   r–   r–   ©   s
   „ Ù2órA   r–   c                   ó4   — e Zd ZdZd„ Zd„ Zdd„Zdd„Zdd„Zy)	ÚDummyEstimatorParamsz,Mock classifier that takes params on predictc                  ó   — yrp   rG   rq   s    r?   rr   z*DummyEstimatorParams.__sklearn_is_fitted__·   rs   rA   c                 ó   — | S r:   rG   rK   s      r?   rN   zDummyEstimatorParams.fitº   rO   rA   c                 ó   — || _         | S r:   ©Úgot_attribute©r>   rL   r¢   s      r?   r€   zDummyEstimatorParams.predict½   ó   € Ø*ˆÔØˆrA   c                 ó   — || _         | S r:   r¡   r£   s      r?   r„   z"DummyEstimatorParams.predict_probaÁ   r¤   rA   c                 ó   — || _         | S r:   r¡   r£   s      r?   r…   z&DummyEstimatorParams.predict_log_probaÅ   r¤   rA   NrX   )	rC   rD   rE   rF   rr   rN   r€   r„   r…   rG   rA   r?   r�   r�   ´   s   „ Ù6òòóóôrA   r�   c                  ó²  — t        dg«      } t        j                  t        «      5  | j	                  dggdg«       d d d «       d}t        dt        «       fg«      } t        j                  t        |¬«      5  | j	                  dggdg«       d d d «       t        «       }t        d|fg«      }|j                  d¬«      t        dd d |d	œ|j                  d
¬«      ¤Žk(  sJ ‚|j                  d¬«       |j                  dk(  sJ ‚|j                  �J ‚t        |«       t        «       }t        t        «      }t        d|fd|fg«      }|j                   d   |u sJ ‚|j                   d   |u sJ ‚d}t        dt        «       fd|fg«      } t        j                  t        |¬«      5  | j	                  dggdg«       d d d «       |j                  d¬«       |j"                  dk(  sJ ‚t        |«       t%        j&                  d«      }t        j                  t(        |¬«      5  |j                  d¬«       d d d «       t+        |«      }|j                   d   |j                   d   usJ ‚|j                  d¬«      }|j                  d¬«      }|j                  d
¬«      D ]  }|j-                  |«       Œ |j                  d
¬«      D ]  }|j-                  |«       Œ |j-                  d«       |j-                  d«       |j-                  d«       |j-                  d«       ||k(  sJ ‚y # 1 sw Y   �ŒëxY w# 1 sw Y   �Œ§xY w# 1 sw Y   �ŒˆxY w# 1 sw Y   �ŒxY w)N)r|   r|   r|   zRLast step of Pipeline should implement fit or be the string 'passthrough'.*NoFit.*Úclf©ÚmatchÚsvcT©rQ   )Úsvc__aÚsvc__br«   Fçš™™™™™¹?)r­   Úanovaz<All intermediate steps should be transformers.*\bNoTrans\b.*Út)Úsvc__Cz]Invalid parameter 'C' for estimator SelectKBest(). Valid parameters are: ['k', 'score_func'].)Úanova__CrG   )r!   ÚpytestÚraisesÚ	TypeErrorrN   r8   rI   rR   ÚdictrW   r<   r=   Úreprr&   r   r   Únamed_stepsÚCÚreÚescapeÚ
ValueErrorr   Úpop)	ÚpipelineÚmsgr¨   ÚpipeÚfilter1Úpipe2rV   Úparams2Úxs	            r?   Ú test_pipeline_invalid_parametersrÆ   Ê   s8  € ô ˜˜Ó!€HÜ	�‰”yÓ	!ñ !Ø�‰�q�c�U˜Q˜CÔ ÷!ð	ð ô
 ˜%¤£Ð)Ð*Ó+€HÜ	�‰”y¨Ô	,ñ !Ø�‰�q�c�U˜Q˜CÔ ÷!ô ‹)€CÜ�e˜S�\�NÓ#€DØ�?‰? ˆ?Ó%¬ð *Ø˜D cñ*Ø-1¯_©_À%¨_Ó-Hñ*ò ð ð ð
 	‡O�O˜3€OÔØ�5‰5�CŠ<Ðˆ<Ø�5‰5ˆ=Ðˆ=äˆ„Jô ‹%€CÜœ)Ó$€GÜ�g˜wÐ'¨%°¨Ð6Ó7€Dð ×Ñ˜GÑ$¨Ñ/Ð/Ð/Ø×Ñ˜EÑ" cÑ)Ð)Ð)ð K€CÜ˜#œw›yÐ)¨E°3¨<Ð8Ó9€HÜ	�‰”y¨Ô	,ñ !Ø�‰�q�c�U˜Q˜CÔ ÷!ð 	‡O�O˜3€OÔØ�5‰5�CŠ<Ðˆ<äˆ„Jô �)‰)ð	ó€Cô 
�‰”z¨Ô	-ñ &Ø�‰ ˆÔ%÷&ô �$‹K€EØ×Ñ˜EÑ"¨%×*;Ñ*;¸EÑ*BÑBÐBÐBð �_‰_ $ˆ_Ó'€FØ×Ñ DÐÓ)€Gà�_‰_ %ˆ_Ó(ò ˆØ�
‰
�1�ðð ×Ñ 5ÐÓ)ò ˆØ�‰�A�ðð ‡J�JˆuÔØ
‡J�JˆwÔØ‡K�K�ÔØ‡K�K�ÔØ�WÒÐÑ÷[!ñ !ú÷!ñ !ú÷<!ñ !ú÷&ñ &ús/   ¦L%Á7L2Æ#L?ÈMÌ%L/Ì2L<Ì?M	ÍMc                  ó*  — t        j                  ddgg«      } t        dt        «       fdt	        «       ff«      }|j                  | d ¬«       |j                  | «       |j                  d¬«       |j                  | d ¬«       |j                  | «       y )Nr|   é   Útransfr¨   ©rM   Úpassthrough)rÉ   )rw   Úarrayr!   r`   rˆ   rN   rƒ   rW   ©rL   rÁ   s     r?   Útest_pipeline_init_tuplerÎ     sw   € ä
�‰�1�a�&�Ó€AÜ�h¤£Ð)¨E´9³;Ð+?Ð@ÓA€DØ‡H�HˆQ�$€HÔØ‡J�Jˆq„Mà‡O�O˜=€OÔ)Ø‡H�HˆQ�$€HÔØ‡J�Jˆq…MrA   c                  óJ  — t         j                  } t         j                  }t        «       }t	        t
        d¬«      }t        d|fd|fg«      }|j                  | |«       |j                  | «       |j                  | «       |j                  | «       |j                  | |«       y )NrÈ   ©Úkr°   Úlogistic)ÚirisÚdataÚtargetr   r   r   r!   rN   r€   r„   r…   rƒ   )rL   rM   r¨   rÂ   rÁ   s        r?   Útest_pipeline_methods_anovarÖ   *  sƒ   € ä�	‰	€AÜ�‰€Aä
Ó
€CÜœ) qÔ)€GÜ�g˜wÐ'¨*°cÐ):Ð;Ó<€DØ‡H�HˆQ�„NØ‡L�L�„OØ×Ñ�qÔØ×Ñ˜1ÔØ‡J�Jˆq�!ÕrA   c                  ó²  — t        dt        «       fdt        «       fg«      } | j                  d d d¬«       | j	                  d «      sJ ‚| j
                  d   j                  �J ‚| j
                  d   j                  �J ‚t        j                  d«      }t        j                  t        |¬«      5  | j                  d d d¬«       d d d «       y # 1 sw Y   y xY w)NrÉ   r¨   T)rL   rM   Úclf__should_succeedz.fit() got an unexpected keyword argument 'bad'r©   )Úclf__bad)r!   r`   rˆ   rN   r€   r¹   r<   r=   r»   r¼   r´   rµ   r¶   )rÁ   rÀ   s     r?   Útest_pipeline_fit_paramsrÚ   9  sÃ   € ä�h¤£Ð)¨E´9³;Ð+?Ð@ÓA€DØ‡H�Hˆt�t°€HÔ6à�<‰<˜ÔÐÐà×Ñ˜HÑ%×'Ñ'Ð/Ð/Ð/Ø×Ñ˜HÑ%×'Ñ'Ð/Ð/Ð/ô �)‰)ÐDÓ
E€CÜ	�‰”y¨Ô	,ñ ,Ø�‰��t dˆÔ+÷,÷ ,ñ ,ús   Â/CÃCc                  ó„  — t        j                  ddgg«      } t        dt        «       fdt	        «       fg«      }|j                  | d ¬«       |j                  | «      dk(  sJ ‚|j                  | d ¬«      dk(  sJ ‚|j                  | d d ¬«      dk(  sJ ‚|j                  | t        j                  ddg«      ¬«      d	k(  sJ ‚y )
Nr|   rÈ   rÉ   r¨   rÊ   é   )rM   r”   ©r”   é   )rw   rÌ   r!   r`   rˆ   rN   rƒ   rÍ   s     r?   Ú%test_pipeline_sample_weight_supportedrß   I  s¹   € ä
�‰�1�a�&�Ó€AÜ�h¤£Ð)¨E´9³;Ð+?Ð@ÓA€DØ‡H�HˆQ�$€HÔØ�:‰:�a‹=˜AÒÐÐØ�:‰:�a˜4ˆ:Ó  AÒ%Ð%Ð%Ø�:‰:�a˜4¨tˆ:Ó4¸Ò9Ð9Ð9Ø�:‰:�a¤r§x¡x°°A°Ó'7ˆ:Ó8¸AÒ=Ð=Ñ=rA   c                  óÒ  — t        j                  ddgg«      } t        dt        «       fdt	        «       fg«      }|j                  | d ¬«       |j                  | «      dk(  sJ ‚|j                  | d ¬«      dk(  sJ ‚t        j                  d«      }t        j                  t        |¬	«      5  |j                  | t        j                  ddg«      ¬«       d d d «       y # 1 sw Y   y xY w)
Nr|   rÈ   rÉ   r¨   rÊ   rÜ   rÝ   z:score() got an unexpected keyword argument 'sample_weight'r©   )rw   rÌ   r!   r`   rk   rN   rƒ   r»   r¼   r´   rµ   r¶   )rL   rÁ   rÀ   s      r?   Ú'test_pipeline_sample_weight_unsupportedrá   T  sÂ   € ä
�‰�1�a�&�Ó€AÜ�h¤£Ð)¨E´4³6¨?Ð;Ó<€DØ‡H�HˆQ�$€HÔØ�:‰:�a‹=˜AÒÐÐØ�:‰:�a tˆ:Ó,°Ò1Ð1Ð1ä
�)‰)ÐPÓ
Q€CÜ	�‰”y¨Ô	,ñ 6Ø�
‰
�1¤B§H¡H¨a°¨VÓ$4ˆ
Ô5÷6÷ 6ñ 6ús   Â+)CÃC&c                  ó  — t        dt        «       fg«      } t        j                  d«      }t	        j
                  t        |¬«      5  | j                  d¬«       d d d «       t	        j
                  t        |¬«      5  | j                  d¬«       d d d «       t        j                  d«      }t	        j
                  t        |¬«      5  | j                  d¬«       d d d «       y # 1 sw Y   Œ‹xY w# 1 sw Y   ŒaxY w# 1 sw Y   y xY w)	NÚclszžInvalid parameter 'fake' for estimator Pipeline(steps=[('cls', LinearRegression())]). Valid parameters are: ['memory', 'steps', 'transform_input', 'verbose'].r©   Únope)Úfake)Úfake__estimatorzŒInvalid parameter 'invalid_param' for estimator LinearRegression(). Valid parameters are: ['copy_X', 'fit_intercept', 'n_jobs', 'positive'].)Úcls__invalid_param)r!   r   r»   r¼   r´   rµ   r½   rW   )rÁ   Ú	error_msgs     r?   Ú$test_pipeline_raise_set_params_errorré   a  sá   € ä�eÔ-Ó/Ð0Ð1Ó2€Dô —	‘	ð	*ó€Iô
 
�‰”z¨Ô	3ñ %Ø�‰˜VˆÔ$÷%ô
 
�‰”z¨Ô	3ñ 0Ø�‰¨ˆÔ/÷0ô —	‘	ð	Nó€Iô 
�‰”z¨Ô	3ñ 3Ø�‰¨6ˆÔ2÷3ð 3÷%ð %ú÷
0ð 0ú÷3ð 3ús$   ÁC$Á=C0ÃC<Ã$C-Ã0C9Ã<Dc                  óJ  — t         j                  } t         j                  }t        dd¬«      }t	        ddd¬«      }t        d|fd|fg«      }|j                  | |«       |j                  | «       |j                  | «       |j                  | «       |j                  | |«       y )	NTr   ©ÚprobabilityÚrandom_stateÚfullÚmle©Ú
svd_solverÚn_componentsÚwhitenÚpcar«   )rÓ   rÔ   rÕ   r&   r   r!   rN   r€   r„   r…   rƒ   )rL   rM   r¨   rô   rÁ   s        r?   Útest_pipeline_methods_pca_svmrõ   |  s‡   € ä�	‰	€AÜ�‰€Aä
˜$¨QÔ
/€CÜ
˜¨e¸DÔ
A€CÜ�e˜S�\ E¨3 <Ð0Ó1€DØ‡H�HˆQ�„NØ‡L�L�„OØ×Ñ�qÔØ×Ñ˜1ÔØ‡J�Jˆq�!ÕrA   c                  óª  — t         j                  } t        ddd¬«      }t        d¬«      }t	        d|fd|fg«      }|j                  | «       |j                  | «      j                  | j                  d   fk(  sJ ‚|j                  |j                  | «      «       t        |j                  | «      |j                  |j                  | «      «      «       y )	Nrî   rï   Trð   )Únoveltyrô   Úlofr   )rÓ   rÔ   r   r   r!   rN   Úscore_samplesÚshapeÚfit_transformr1   r]   )rL   rô   rø   rÁ   s       r?   Ú#test_pipeline_score_samples_pca_lofrü   ‹  s°   € Ü�	‰	€Aô ˜¨e¸DÔ
A€CÜ
 TÔ
*€CÜ�e˜S�\ E¨3 <Ð0Ó1€DØ‡H�HˆQ„Kà×Ñ˜aÓ ×&Ñ&¨1¯7©7°1©:¨-Ò7Ð7Ð7à‡G�GˆC×Ñ˜aÓ Ô!Ü�D×&Ñ& qÓ)¨3×+<Ñ+<¸S¿]¹]È1Ó=MÓ+NÕOrA   c                  óÊ  — t        j                  dgdgg«      } t        j                  ddg«      }t        t        «       «      }|j	                  | |«       d}d}t        j                  t        |¬«      5 }|j                  | «       d d d «       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y # 1 sw Y   ŒSxY w)Nr|   rÈ   z<'LogisticRegression' object has no attribute 'score_samples'z+'Pipeline' has no attribute 'score_samples'r©   )rw   rÌ   r"   r   rN   r´   rµ   ÚAttributeErrorrù   Ú
isinstanceÚvalueÚ	__cause__Ústr)rL   rM   rÁ   Ú	inner_msgÚ	outer_msgÚ	exec_infos         r?   Ú4test_score_samples_on_pipeline_without_score_samplesr  ›  s½   € Ü
�‰�1�#˜�s�Ó€AÜ
�‰�!�Q�Ó€Aô Ô+Ó-Ó.€DØ‡H�HˆQ�„NàN€IØ=€IÜ	�‰”~¨YÔ	7ð ¸9Ø×Ñ˜1Ô÷ô �i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷	ð ús   Á5CÃC"c                  ó„  — t         j                  } t         j                  }| j                  d   }t	        t        j                  |«      «      }t        «       }t        ddd¬«      }t        ddd¬«      }||fD ]Æ  }t        d|fd	|fg«      }|j                  | |«       |j                  | «      }	|	j                  |fk(  sJ ‚|j                  | «      }
|
j                  ||fk(  sJ ‚|j                  | «      }|j                  ||fk(  sJ ‚|j                  | «      }|j                  ||fk(  sJ ‚|j!                  | |«       ŒÈ y )
Nr   rÈ   Ú
randomizedT)rò   rñ   ró   Úovr)rì   rí   Údecision_function_shapeÚ
preprocessr«   )rÓ   rÔ   rÕ   rú   Úlenrw   Úuniquer%   r   r&   r!   rN   r€   r„   r…   r†   rƒ   )rL   rM   Ú	n_samplesÚ	n_classesÚscalerrô   r¨   ÚpreprocessingrÁ   r€   ÚprobaÚ	log_probar†   s                r?   Ú'test_pipeline_methods_preprocessing_svmr  ¬  s8  € ä�	‰	€AÜ�‰€AØ—‘˜‘
€IÜ”B—I‘I˜a“LÓ!€IÜÓ€FÜ
˜1¨¸dÔ
C€CÜ
˜$¨QÈÔ
N€Cà  #˜ò ˆÜ˜,¨Ð6¸À¸ÐEÓFˆØ�‰��AŒð —,‘,˜q“/ˆØ�}‰}  Ò,Ð,Ð,à×"Ñ" 1Ó%ˆØ�{‰{˜y¨)Ð4Ò4Ð4Ð4à×*Ñ*¨1Ó-ˆ	Ø�‰ 9¨iÐ"8Ò8Ð8Ð8à ×2Ñ2°1Ó5ÐØ ×&Ñ&¨9°iÐ*@Ò@Ð@Ð@à�
‰
�1�aÕñ#rA   c                  ó8  — t        «       } t        dd¬«      }t        «       }t        dd¬«      }| j                  t        j                  «      }|j                  |«      }t        d|fd|fg«      }|j                  t        j                  «      }t        ||«       y )Nr   Úauto)rí   Ún_initr  ÚKmeans)r%   r   rû   rÓ   rÔ   r’   r!   r2   )r  ÚkmÚscaler_for_pipelineÚkm_for_pipelineÚscaledÚseparate_predrÁ   Úpipeline_preds           r?   Útest_fit_predict_on_pipeliner  Ê  s�   € ô Ó€FÜ	˜Q vÔ	.€Bô )Ó*ÐÜ¨!°FÔ;€Oð ×!Ñ!¤$§)¡)Ó,€FØ—N‘N 6Ó*€Mô �hÐ 3Ð4°xÀÐ6QÐRÓS€DØ×$Ñ$¤T§Y¡YÓ/€Mä˜m¨]Õ;rA   c                  ód  — t        «       } t        d¬«      }t        d| fd|fg«      }d}d}t        j                  t
        |¬«      5 }t        |d«       d d d «       t        j                  j                  t
        «      sJ ‚|t        |j                  j                  «      v sJ ‚y # 1 sw Y   ŒSxY w)	Nrî   ©rñ   r  rô   z)'Pipeline' has no attribute 'fit_predict'z+'PCA' object has no attribute 'fit_predict'r©   r’   )r%   r   r!   r´   rµ   rþ   Úgetattrrÿ   r   r  r  )r  rô   rÁ   r  r  r  s         r?   Ú0test_fit_predict_on_pipeline_without_fit_predictr#  à  sž   € ô Ó€FÜ
˜Ô
 €CÜ�h Ð'¨%°¨Ð6Ó7€Dà;€IØ=€IÜ	�‰”~¨YÔ	7ð %¸9Ü��mÔ$÷%ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷%ð %ús   ÁB&Â&B/c                  ó  — t        dt        «       fdt        «       fg«      } | j                  d d dd¬«       | j                  d   j
                  d   sJ ‚| j                  d   j                  sJ ‚d| j                  d   j
                  vsJ ‚y )NrÉ   r¨   T)rL   rM   Útransf__should_get_thisrØ   Úshould_get_thisr�   )r!   re   rˆ   r’   r¹   rg   r‹   ©rÁ   s    r?   Ú-test_fit_predict_with_intermediate_fit_paramsr(  ï  s™   € ô �h¤Ó 1Ð2°U¼I»KÐ4HÐIÓJ€DØ×ÑØ
�$°È$ð ô ð ×Ñ˜HÑ%×0Ñ0Ð1BÒCÐCÐCØ×Ñ˜EÑ"×-Ò-Ð-Ð-Ø 4×#3Ñ#3°HÑ#=×#HÑ#HÑHÐHÑHrA   Úmethod_name)r€   r„   r…   c                 óÌ   — t        dt        «       fdt        «       fg«      }|j                  d d «       t	        || «      } |d d¬«       |j
                  d   j                  sJ ‚y )NrÉ   r¨   T)rL   r¢   )r!   r`   r�   rN   r"  r¹   r¢   )r)  rÁ   Úmethods      r?   Ú(test_predict_methods_with_predict_paramsr,  û  sa   € ô �h¤£Ð)¨EÔ3GÓ3IÐ+JÐKÓL€DØ‡H�HˆT�4ÔÜ�T˜;Ó'€FÙ
ˆT Õ&à×Ñ˜EÑ"×0Ò0Ð0Ñ0rA   Úcsr_containerc                 ó(  — t         j                  j                  «       }||j                  d¬«      z  }t         j                  }t        dd¬«      }t        d¬«      }t        d|fd|fg«      }|j                  ||«       |j                  |«      }|j                  |j                  d   d	fk(  sJ ‚t        |d d …d d
…f   |j                  |«      «       t        |d d …d
f   |j                  ||«      j                  «       «       t        d|fd|fg«      } | |«      }|j                  ||«      }t        ||j                  «       «       t!        |«      }	|j"                  d   d   |	j"                  d   d   usJ ‚|j%                  d¬«       |j                  ||«      j                  |j                  d   dfk(  sJ ‚t        dt'        «       fd|fd|fg«      }|j                  ||«      }|j                  |j                  d   dfk(  sJ ‚d}
t        dt'        «       fdt)        «       fg«      }t+        j,                  t.        |
¬«      5  |j                  |«       d d d «       t        d|fd|ff«      }|j                  ||«       y # 1 sw Y   Œ-xY w)Nr   r}   rÈ   )rò   rí   r|   rÐ   ÚsvdÚselectrÜ   éÿÿÿÿ)Ú	select__ké   ÚmockrÞ   z>All estimators should implement fit and transform.*\bNoTrans\br]   Úno_transformr©   )rÓ   rÔ   Úcopyr˜   rÕ   r   r   r    rN   r]   rú   r2   rû   r3   ÚravelÚtoarrayr   Útransformer_listrW   r`   rI   r´   rµ   r¶   )r-  rL   rM   r/  r0  ÚfsÚX_transformedÚX_spÚX_sp_transformedÚfs2rÀ   s              r?   Útest_feature_unionr?  	  sv  € ô 	�	‰	�‰Ó€AØˆ�‰�Qˆ‹Ñ€AÜ�‰€AÜ
 A°AÔ
6€CÜ˜1Ô€FÜ	˜˜s�| h°Ð%7Ð8Ó	9€BØ‡F�Fˆ1ˆa„LØ—L‘L “O€MØ×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1ô ˜mªA¨s°¨s¨FÑ3°S×5FÑ5FÀqÓ5IÔJÜ�}¢Q¨ UÑ+¨V×-AÑ-AÀ!ÀQÓ-G×-MÑ-MÓ-OÔPô 
˜˜s�| h°Ð%7Ð8Ó	9€BÙ˜Ó€DØ×'Ñ'¨¨aÓ0ÐÜ˜mÐ-=×-EÑ-EÓ-GÔHô �‹)€CØ×Ñ˜qÑ! !Ñ$¨C×,@Ñ,@ÀÑ,CÀAÑ,FÑFÐFÐFð ‡M�M˜A€MÔØ×Ñ˜A˜qÓ!×'Ñ'¨A¯G©G°A©J¸¨?Ò:Ð:Ð:ô 
˜¤£Ð)¨E°3¨<¸(ÀFÐ9KÐLÓ	M€BØ×$Ñ$ Q¨Ó*€MØ×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1ð M€CÜ	˜¤V£XÐ.°ÄÃÐ0KÐLÓ	M€BÜ	�‰”y¨Ô	,ñ Ø
�‰ˆqŒ	÷ô 
˜˜s�| h°Ð%7Ð8Ó	9€BØ‡F�Fˆ1ˆa…L÷ð ús   É
JÊJc                  ó
  — t        «       } t        «       }t        d| fd|fg«      }|j                  d   | k(  sJ ‚|j                  d   |k(  sJ ‚|j                  j                  | k(  sJ ‚|j                  j
                  |k(  sJ ‚y)z6Check the behaviour of `named_transformers` attribute.rÉ   ÚnoinvtransfN)r`   rZ   r    Únamed_transformersrÉ   rA  )rÉ   rA  r:  s      r?   Ú%test_feature_union_named_transformersrC  9  s‘   € ä‹X€FÜ“-€KÜ	˜ &Ð)¨M¸;Ð+GÐHÓ	I€BØ× Ñ  Ñ*¨fÒ4Ð4Ð4Ø× Ñ  Ñ/°;Ò>Ð>Ð>ð × Ñ ×'Ñ'¨6Ò1Ð1Ð1Ø× Ñ ×,Ñ,°Ò;Ð;Ñ;rA   c                  ó’   — t        d¬«      } t        «       }t        | |«      }t        |j                  Ž \  }}|dk(  sJ ‚|| |fk(  sJ ‚y )Nrî   r!  )rô   rÉ   )r   r`   r#   Úzipr9  )rô   r4  ÚfuÚnamesÚtransformerss        r?   Útest_make_unionrI  F  sU   € Ü
˜Ô
 €CÜ‹8€DÜ	�C˜Ó	€BÜ˜r×2Ñ2Ð3Ñ€Eˆ<ØÐ%Ò%Ð%Ð%Ø˜C ˜;Ò&Ð&Ñ&rA   c                  ód  — t        d¬«      } t        «       }t        | |d¬«      }|j                  t        | |«      j                  k(  sJ ‚d|j                  k(  sJ ‚t        j                  d«      }t        j                  t        |¬«      5  t        | |ddd	œ¬
«       d d d «       y # 1 sw Y   y xY w)Nrî   r!  rÜ   ©Ún_jobszEmake_union() got an unexpected keyword argument 'transformer_weights'r©   é
   r|   )rô   r`   ©Útransformer_weights)
r   r`   r#   r9  rL  r»   r¼   r´   rµ   r¶   )rô   r4  rF  rÀ   s       r?   Útest_make_union_kwargsrP  O  sŸ   € Ü
˜Ô
 €CÜ‹8€DÜ	�C˜ aÔ	(€BØ×Ñ¤*¨S°$Ó"7×"HÑ"HÒHÐHÐHØ�—	‘	Š>Ðˆ>ô �)‰)ØOó€Cô 
�‰”y¨Ô	,ñ LÜ�3˜¸"ÈÑ2JÕK÷L÷ Lñ Lús   ÂB&Â&B/c                  ój  — t         j                  } t        dd¬«      }t        d|fg«      }|j	                  | «      j                  | «      }|j                  | «      }|j                  | «      }t        ||«       t        ||«       |j                  |«      }|j                  |«      }t        ||«       y )NrÈ   rî   )rò   rñ   rô   )	rÓ   rÔ   r   r!   rN   r]   rû   r2   rc   )rL   rô   r¿   ÚX_transÚX_trans2ÚX_trans3ÚX_backÚX_back2s           r?   Útest_pipeline_transformrW  ^  s¡   € ô 	�	‰	€AÜ
˜1¨Ô
0€CÜ˜% ˜˜Ó'€Hð �l‰l˜1‹o×'Ñ'¨Ó*€GØ×%Ñ% aÓ(€HØ× Ñ  Ó#€HÜ˜g xÔ0Ü˜g xÔ0à×'Ñ'¨Ó0€FØ×#Ñ# GÓ,€GÜ˜f gÕ.rA   c                  óò   — t         j                  } t         j                  }t        «       }t	        d|fg«      }|j                  | |«      }|j                  | |«      j                  | «      }t        ||«       y )Nr4  )	rÓ   rÔ   rÕ   r`   r!   rû   rN   r]   r2   )rL   rM   rÉ   r¿   rR  rS  s         r?   Útest_pipeline_fit_transformrY  q  sf   € ä�	‰	€AÜ�‰€AÜ‹X€FÜ˜& &Ð)Ð*Ó+€Hð ×$Ñ$ Q¨Ó*€GØ�z‰z˜!˜QÓ×)Ñ)¨!Ó,€HÜ˜g xÕ0rA   z
start, end))r   r|   )r   rÈ   )r|   rÈ   )r|   rÜ   ©Nr|   )r|   NrB   c                 ó:  — t        dt        «       fdt        «       fdt        «       fgdd¬«      }|| | }t        |t         «      sJ ‚|j                  |j                  | | k(  sJ ‚t        |j                  j                  «       «      t        |j                  j                  «       «      | | k(  sJ ‚|j                  d¬«      }|j                  d¬«      }|d	= |d	= ||k(  sJ ‚d
}t        j                  t        |¬«      5  || |d…    d d d «       y # 1 sw Y   y xY w)NÚtransf1Útransf2r¨   Ú123T)ÚmemoryÚverboseFr¬   Ústepsz*Pipeline slicing only supports a step of 1r©   r1  )r!   r`   rˆ   rÿ   ra  Úlistr¹   ÚitemsrR   r´   rµ   r½   )ÚstartÚendrÁ   Ú
pipe_sliceÚpipe_paramsÚpipe_slice_paramsrÀ   s          r?   Útest_pipeline_sliceri  ~  s0  € ô Ø
”V“XÐ	 ¬F«HÐ 5¸¼y»{Ð7KÐLØØô€Dð
 �e˜C�€Jä�j¤(Ô+Ð+Ð+à×Ñ˜tŸz™z¨%°Ð4Ò4Ð4Ð4ô 	ˆZ×#Ñ#×)Ñ)Ó+Ó,Ü�× Ñ ×&Ñ&Ó(Ó)¨%°Ð4ò	5ðð	5ð —/‘/ u�/Ó-€KØ"×-Ñ-°5Ð-Ó9ÐØ�GÐØ˜'Ð"ØÐ+Ò+Ð+Ð+à
6€CÜ	�‰”z¨Ô	-ñ ØˆU�3�rˆ\Ò÷÷ ñ ús   Ã?	DÄDc                  ój  — t        «       } t        «       }t        d| fd|fg«      }|d   | k(  sJ ‚|d   | k(  sJ ‚|d   |k(  sJ ‚|d   |k(  sJ ‚t        j                  t
        «      5  |d    d d d «       t        j                  t        «      5  |d    d d d «       y # 1 sw Y   Œ1xY w# 1 sw Y   y xY w)NrÉ   r¨   r   r1  rÜ   Úfoobar)r`   rˆ   r!   r´   rµ   Ú
IndexErrorÚKeyError)rÉ   r¨   rÁ   s      r?   Útest_pipeline_indexrn  �  sÇ   € Ü‹X€FÜ
‹+€CÜ�h Ð'¨%°¨Ð6Ó7€DØ�‰7�fÒÐÐØ�‰>˜VÒ#Ð#Ð#Ø�‰8�sŠ?Ðˆ?Ø�‰;˜#ÒÐÐô 
�‰”zÓ	"ñ ØˆQŠ÷ô 
�‰”xÓ	 ñ ØˆXŠ÷ð ÷	ð ú÷ð ús   Á'BÂB)ÂB&Â)B2c                  óö  — t        «       } t        «       }t        d| fg«      }|j                  d   | u sJ ‚d|fg|_        d|j                  vsJ ‚|j                  d   |u sJ ‚d|fg|j                  k(  sJ ‚|j	                  d| fg¬«       d| fg|j                  k(  sJ ‚|j	                  |¬«       d|fg|j                  k(  sJ ‚|j	                  dg¬«       t        j                  d«      }t        j                  t        |¬«      5  |j                  dggdg«       d d d «       d	}t        j                  t        |¬«      5  |j                  dggdg«       d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   y xY w)
Nr4  Úmock2©ra  ©r4  )ÚjunkrG   zJLast step of Pipeline should implement fit or be the string 'passthrough'.r©   r|   z0This 'Pipeline' has no attribute 'fit_transform')r`   r!   r¹   ra  rW   r»   r¼   r´   rµ   r¶   rN   rþ   rû   )r\  r]  r¿   rÀ   s       r?   Útest_set_pipeline_stepsrt  ¯  s™  € Ü‹h€GÜ‹h€GÜ˜& 'Ð*Ð+Ó,€HØ×Ñ Ñ'¨7Ñ2Ð2Ð2ð  Ð(Ð)€H„NØ˜×-Ñ-Ñ-Ð-Ð-Ø×Ñ Ñ(¨GÑ3Ð3Ð3Ø�gÐÐ 8§>¡>Ò1Ð1Ð1ð ×Ñ ¨Ð0Ð1ÐÔ2Ø�WÐÐ (§.¡.Ò0Ð0Ð0ð ×Ñ˜WÐÔ%Ø�WÐÐ (§.¡.Ò0Ð0Ð0ð ×Ñ˜|˜nÐÔ-Ü
�)‰)ØTó€Cô 
�‰”y¨Ô	,ñ !Ø�‰�q�c�U˜Q˜CÔ ÷!ð =€CÜ	�‰”~¨SÔ	1ñ +Ø×Ñ  ˜u q cÔ*÷+ð +÷	!ð !ú÷+ð +ús   Ä	E#ÅE/Å#E,Å/E8c                  ó„  — t        «       } t        d¬«      }t        d| fd|fg«      }d|j                  v sJ ‚d|j                  vsJ ‚|j                  j                  | u sJ ‚|j                  j
                  |u sJ ‚t        d| fd|fg«      }|j                  j                  | usJ ‚|j                  j
                  |u sJ ‚y )NrÈ   rm   r4  rn   rp  Úvalues)r`   rk   r!   r¹   r4  rn   rv  )rÉ   Úmult2r¿   s      r?   Útest_pipeline_named_stepsrx  Ð  sÖ   € Ü‹X€FÜ�aŒL€EÜ˜& &Ð)¨F°E¨?Ð;Ó<€Hð �X×)Ñ)Ñ)Ð)Ð)Ø˜(×.Ñ.Ñ.Ð.Ð.Ø×Ñ×$Ñ$¨Ñ.Ð.Ð.Ø×Ñ×$Ñ$¨Ñ-Ð-Ð-ô ˜( FÐ+¨f°e¨_Ð=Ó>€HØ×Ñ×&Ñ&¨fÑ4Ð4Ð4Ø×Ñ×$Ñ$¨Ñ-Ð-Ñ-rA   rË   c                 óV  — t        j                  dgg«      }t        j                  dg«      }t        d¬«      }t        d¬«      }t        d¬«      }t        d|fd| fd|fd	|fg«      }|j	                  ||«       g d
¢}|j
                  D ��	cg c]  \  }}	|‘Œ	 }
}}	||
k(  sJ ‚y c c}	}w )Nr|   rÈ   rm   rÜ   é   Úm2ÚbadÚm3Úm5)r{  r|  r}  r~  )rw   rÌ   rk   r!   rN   ra  )rË   rL   rM   rw  Úmult3Úmult5r¿   Úexpected_namesÚnameÚ_Úactual_namess              r?   Ú%test_pipeline_correctly_adjusts_stepsr…  á  s§   € ä
�‰�1�#�‹€AÜ
�‰�!�‹€AÜ�aŒL€EÜ�aŒL€EÜ�aŒL€EäØ
�ˆ˜ Ð,¨t°U¨m¸dÀE¸]ÐKó€Hð ‡L�L��AÔÚ.€NØ(0¯©×7™W˜T 1’DÐ7€LÑ7Ø˜\Ò)Ð)Ñ)ùó 8s   ÂB%c                 ó  ‡‡‡— t        j                  dgg«      }t        j                  dg«      }t        d¬«      Št        d¬«      Št        d¬«      Šˆˆˆfd„} |«       }d}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       |j                  | ¬«       d	}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       |j                  d
¬«      |j                  ‰| ‰d ddd ddœ	k(  sJ ‚|j                  | ¬«       d}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       g d¢}|D ]  } t        ||«      |«       Œ |j                  ‰¬«       d	}t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «        |«       }|j                  | ¬«       d}t        |gg|j                  ||«      j                  |«      «       t        |gg|j	                  ||«      «       t        ||j                  |gg«      «       d}d}	t        j                  t        |	¬«      5 }
t        |d«       d d d «       t!        
j"                  j$                  t        «      sJ ‚|t'        |
j"                  j$                  «      v sJ ‚d	}t)        d‰fd| fd‰fg«      }t        |gg|j	                  ||«      «       t        |g|j                  |«      j                  |«      «       t        ||j                  |gg«      «       y # 1 sw Y   ŒÏxY w)Nr|   rÈ   rm   rÜ   rz  c                  ó,   •— t        d‰ fd‰fd‰fg«      S )Nr{  r}  Úlast)r!   )rw  r  r€  s   €€€r?   Úmakez0test_set_pipeline_step_passthrough.<locals>.makeû  s!   ø€ Ü˜$ ˜¨¨u¨¸À°ÐGÓHÐHrA   é   ©r}  rM  Tr¬   F)	ra  r{  r}  rˆ  r_  Úm2__multÚ
last__multÚtransform_inputr`  ©r{  )r„   r…   r†   r]   rƒ   )rˆ  é   z''str' object has no attribute 'predict'z*This 'Pipeline' has no attribute 'predict'r©   r€   r{  r}  rˆ  )rw   rÌ   rk   r3   rû   rN   r€   rc   rW   rR   ra  r"  r]   r´   rµ   rþ   rÿ   r   r  r  r!   )rË   rL   rM   r‰  r¿   ÚexpÚother_methodsr+  r  r  r  rw  r  r€  s              @@@r?   Ú"test_set_pipeline_step_passthroughr“  ó  s®  ú€ ä
�‰�1�#�‹€AÜ
�‰�!�‹€AÜ�aŒL€EÜ�aŒL€EÜ�aŒL€EöIñ ‹v€Hà
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>à×Ñ˜;ÐÔ'Ø
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>Ø×Ñ DÐÓ)Ø—‘ØØØØØØØØñ
.ò 
ð 
ð 
ð ×Ñ˜;ÐÔ'Ø
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>ò€Mð  ò %ˆØ!Œ�˜&Ó! !Õ$ð%ð ×Ñ˜5ÐÔ!Ø
€CÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Ô>á‹v€HØ×Ñ˜[ÐÔ)à
€CÜ˜˜�w §¡¨Q°Ó 2× <Ñ <¸QÓ ?Ô@Ü˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü�q˜(×4Ñ4°s°e°WÓ=Ô>à9€IØ<€IÜ	�‰”~¨YÔ	7ð %¸9Ü�˜)Ô$÷%ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ð6ð €CÜ˜$ ˜¨¨{Ð(;¸fÀe¸_ÐMÓN€HÜ˜˜�w × 6Ñ 6°q¸!Ó <Ô=Ü˜�u˜hŸl™l¨1›o×5Ñ5°aÓ8Ô9Ü�q˜(×4Ñ4°s°e°WÓ=Õ>÷%ð %ús   Ì#O>Ï>Pc                  ó€  — t        t        d«      «      } | j                   | j                   | j                   t        t        «       «      } t        | d«      rJ ‚| j                   | j                   t        d«      } | j                  d   dk(  sJ ‚t        | d«      rJ ‚| j                   | j                   t        t        «       t        «       «      } t        | d«      rJ ‚| j                   t        | d«      rJ ‚t        t        «       t        «       «      } t        | d«      rJ ‚| j                   t        | d«      rJ ‚y )Nrz  r€   rË   r   ©rË   rË   rc   )	r"   rk   r€   r]   rc   r`   Úhasattrra  rZ   )r¿   s    r?   Útest_pipeline_ducktypingr—  D  s  € ÜœT !›WÓ%€HØ×ÒØ×ÒØ×ÒäœV›XÓ&€HÜ�x Ô+Ð+Ð+Ø×ÒØ×Òä˜]Ó+€HØ�>‰>˜!ÑÐ >Ò>Ð>Ð>Ü�x Ô+Ð+Ð+Ø×ÒØ×ÒäœV›X¤{£}Ó5€HÜ�x Ô+Ð+Ð+Ø×ÒÜ�xÐ!4Ô5Ð5Ð5äœ[›]¬F«HÓ5€HÜ�x Ô+Ð+Ð+Ø×ÒÜ�xÐ!4Ô5Ð5Ð5Ð5rA   c                  óœ  — t        «       } t        «       }t        | |«      }t        |t        «      sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚t        | |t        «       «      }t        |t        «      sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚y )Nr   ztransf-1r|   ztransf-2rÈ   Ú	fitparamt)r`   r"   rÿ   r!   ra  rˆ   )Út1Út2rÁ   s      r?   Útest_make_pipelinerœ  `  sÓ   € Ü	‹€BÜ	‹€BÜ˜˜RÓ €DÜ�dœHÔ%Ð%Ð%Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)ä˜˜R¤£Ó-€DÜ�dœHÔ%Ð%Ð%Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)Ø�:‰:�a‰=˜Ñ˜zÒ)Ð)Ð)Ø�:‰:�a‰=˜Ñ˜{Ò*Ð*Ñ*rA   zpipeline, check_estimator_typec                 ó0   — t        | «      j                  d u S r:   )r+   Úestimator_type©Úests    r?   ú<lambda>r¡  v  s   € œ ›×4Ñ4¸Ð<€ rA   c                 ó   — | j                   d u S r:   )Ú_estimator_typerŸ  s    r?   r¡  r¡  x  s   €  3×#6Ñ#6¸$Ð#>€ rA   c                 ó.   — t        | «        || «      sJ ‚y)zªCheck that the estimator type returned by the pipeline is correct.

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

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

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

    Test for #24754.
    r  TrÄ  ÚscalerÉ  rQ  N)r´   r  r   r%   rN   r    r–  r3   r  rÉ  Úto_numpy)rL   rƒ  r  r  ÚX_arrays        r?   Ú$test_feature_union_feature_names_in_rÜ     sÿ   € ô ×Ñ˜Ô!ä˜d¨tÔ4�D€A€qô Ó€FØ
‡J�Jˆq„MÜ˜7 FÐ+Ð,Ó-€EÜ�5Ð-Ô.Ð.Ð.Ü�q—y‘y %×"9Ñ"9Ô:Ü�v×/Ñ/°×1HÑ1HÔIô Ð1Ð2Ó3€EØ	‡I�Iˆa„LÜ�5Ð-Ô.Ð.Ð.Ü�q—y‘y %×"9Ñ"9Ô:ð �j‰j‹l€GÜÐ1Ð2Ó3€EØ	‡I�IˆgÔÜ�uÐ1Ô2Ð2Ð2Ð2rA   c                  óà  — t         j                  j                  d«      j                  d¬«      } t	        dt        d¬«      fg«      }|j                  | «      } t        j                  t        d¬«      5  |j                  «        d d d «       t        j                  t        d	¬«      5  |j                  | | ¬
«       d d d «       t        j                  d¬«      5  t        j                  d«       |j                  | «       d d d «       t        j                  t        d¬«      5  |j                  | ¬«       d d d «       y # 1 sw Y   Œ¼xY w# 1 sw Y   Œ‘xY w# 1 sw Y   ŒXxY w# 1 sw Y   y xY w)Nr   )rM  rz  )Úsizerô   rÈ   )rò   z$Missing required positional argumentr©   z$Cannot use both X and Xt. Use X only)rL   ÚXtT)ÚrecordÚerrorzXt was renamed X in version 1.5)rß  )rw   r�  r¥  Únormalr!   r   rû   r´   rµ   r¶   rc   ÚwarningsÚcatch_warningsÚsimplefilterÚwarnsÚFutureWarningrÍ   s     r?   Ú.test_pipeline_inverse_transform_Xt_deprecationrè  A  s1  € Ü
�	‰	×Ñ˜aÓ ×'Ñ'¨WÐ'Ó5€AÜ�eœS¨aÔ0Ð1Ð2Ó3€DØ×Ñ˜1Ó€Aä	�‰”yÐ(NÔ	Oñ !Ø×ÑÔ ÷!ô 
�‰”yÐ(NÔ	Oñ *Ø×Ñ  qÐÔ)÷*ô 
×	 Ñ	 ¨Ô	-ñ "Ü×Ñ˜gÔ&Ø×Ñ˜qÔ!÷"ô 
�‰”mÐ+LÔ	Mñ %Ø×Ñ !ÐÔ$÷%ð %÷!ð !ú÷*ð *ú÷"ð "ú÷%ð %ús0   Á4E Â(EÃ'EÄ$E$Å E	ÅEÅE!Å$E-T)Úenable_metadata_routingr+  rN   rû   c                 óæ  ‡— d„ Šˆfd„}d„ }t        j                  ddgddgg«      }t        j                  ddg«      }t        j                  ddgg«      }t        j                  d	d
gg«      }t        j                  ddgg«      } |«       \  }}	}
}}|j                  |||||¬«        ||	ddg||¬«        ||
ddg«        ||ddg|dz   |¬«        ||| j                  d«      |dz   |¬«       y)zLTest that with transform_input, data is correctly transformed for each step.c                 ó^   — t        | ¬«      j                  ||¬«      j                  ||¬«      S )z$Get a transformer with requests set.©Úregistry©r”   rŠ  )r(   Úset_fit_requestÚset_transform_request)rí  r”   rŠ  s      r?   Úget_transformerz6test_transform_input_pipeline.<locals>.get_transformer]  s/   € ô !¨(Ô3ß‰_¨=À8ˆ_ÓLß"Ñ"°ÈÐ"ÓRð	
rA   c            
      óÒ   •— t        «       t        «       t        «       t        «       f\  } }}}t         ‰| dd¬«       ‰|dd¬«       ‰|dd¬«       ‰|dd¬«      dg¬«      }|| |||fS )z«Get a pipeline and corresponding registries.

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

        Stateless estimators that don't require fit, should properly set the
        `requires_fit` flag and implement a `__sklearn_check_is_fitted__` returning
        `True`.
        c                 ó   — | S r:   rG   rK   s      r?   rN   z>test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.fit  s   € ØˆKrA   c                 ó   — |S r:   rG   r\   s     r?   r]   zDtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.transform  r  rA   c                 ó>   — t        j                  t        |«      «      S r:   ©rw   Úonesr  r\   s     r?   r€   zBtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict  ó   € Ü—7‘7œ3˜q›6“?Ð"rA   c                 ó>   — t        j                  t        |«      «      S r:   r,  r\   s     r?   r„   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_proba  r.  rA   c                 ó>   — t        j                  t        |«      «      S r:   ©rw   Úzerosr  r\   s     r?   r…   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.predict_log_proba!  s   € Ü—8‘8œC ›FÓ#Ð#rA   c                 ó>   — t        j                  t        |«      «      S r:   r,  r\   s     r?   r†   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.decision_function$  r.  rA   c                  ó   — yrZ  rG   rK   s      r?   rƒ   z@test_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score'  s   € ØrA   c                 ó>   — t        j                  t        |«      «      S r:   r,  r\   s     r?   rù   zHtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.score_samples*  r.  rA   c                 ó   — |S r:   rG   r\   s     r?   rc   zLtest_pipeline_warns_not_fitted.<locals>.StatelessEstimator.inverse_transform-  r  rA   N)rC   rD   rE   rF   rN   r]   r€   r„   r…   r†   rƒ   rù   rc   rG   rA   r?   ÚStatelessEstimatorr(    s4   „ ñ	ò	ò	ò	#ò	#ò	$ò	#ò	ò	#ó	rA   r7  r7  z)This Pipeline instance is not fitted yet.r©   r|   )r   r!   r´   ræ  rç  r"  )r+  r7  rÁ   s      r?   Útest_pipeline_warns_not_fittedr8  ÿ  s`   € ô!œ]ô !ôF �kÑ#5Ó#7Ð8Ð9Ó:€DÜ	�‰”mÐ+VÔ	Wñ %ØŒ��fÓ ˜s˜eÔ$÷%÷ %ñ %ús   ¾AÁA%c                   ób   — e Zd Zd„ Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zy)ÚSimpleEstimatorc                  ó   — yrp   rG   rq   s    r?   rr   z%SimpleEstimator.__sklearn_is_fitted__<  rs   rA   Nc                 ó*   — |€J |«       ‚|€J |«       ‚| S r:   rG   ©r>   rL   rM   r”   Úprops        r?   rN   zSimpleEstimator.fit?  s)   € ØÐ(Ð7¨-Ó7Ð(ØÐÐ% Ó%ÐØˆrA   c                 ó   — |€J ‚|€J ‚|dz   S rZ  rG   r=  s        r?   rû   zSimpleEstimator.fit_transformD  ó#   € ØÐ(Ð(Ð(ØÐÐÐØ�1‰uˆrA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r,  r=  s        r?   r’   zSimpleEstimator.fit_predictI  ó,   € ØÐ(Ð(Ð(ØÐÐÐÜ�w‰w”s˜1“v‹ÐrA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r,  ©r>   rL   r”   r>  s       r?   r€   zSimpleEstimator.predictN  rB  rA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r,  rD  s       r?   r„   zSimpleEstimator.predict_probaS  rB  rA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r1  rD  s       r?   r…   z!SimpleEstimator.predict_log_probaX  s-   € ØÐ(Ð(Ð(ØÐÐÐÜ�x‰xœ˜A›ÓÐrA   c                 óN   — |€J ‚|€J ‚t        j                  t        |«      «      S r:   r,  rD  s       r?   r†   z!SimpleEstimator.decision_function]  rB  rA   c                 ó   — |€J ‚|€J ‚yrZ  rG   r=  s        r?   rƒ   zSimpleEstimator.scoreb  s   € ØÐ(Ð(Ð(ØÐÐÐØrA   c                 ó   — |€J ‚|€J ‚|dz   S rZ  rG   rD  s       r?   r]   zSimpleEstimator.transformg  r@  rA   c                 ó   — |€J ‚|€J ‚|dz
  S rZ  rG   rD  s       r?   rc   z!SimpleEstimator.inverse_transforml  r@  rA   rB   )rC   rD   rE   rr   rN   rû   r’   r€   r„   r…   r†   rƒ   r]   rc   rG   rA   r?   r:  r:  9  s9   „ òóó
ó
ó
ó
ó
 ó
ó
ó
ô
rA   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        «       j	                  dd¬«      j                  dd¬«      j                  dd¬«      }t        d	|fd
|fg«      }	d| vr|	j                  ||||¬«      }		  t        |	| «      |||||¬«       t        |dd||¬«       t        |dd||¬«       y# t        $ r  t        |	| «      ||||¬«       Y ŒBw xY w)z5Test that metadata is routed correctly for pipelines.c                 ój   — |t         v r
t         |   }n|g}|D ]  } t        | d|› d�«      di |¤Ž Œ | S )z Set requests for a given method.

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

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