a
    �ù»j¼m  ã                   @   s,  d Z ddlZddlZddlZddlmZmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZmZ dd
lmZmZmZ ddlmZ ddl m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3 e 4¡ Z5e5j6dd…dd…f e5j7 Z8Z9e%ƒ  :e8¡Z;ej<dd�\Z=Z>ej? @ddg idfdeƒ fgddgdœdfg¡dd„ ƒZAd d!„ ZBd"d#„ ZCd$d%„ ZDd&d'„ ZEd(d)„ ZFd*d+„ ZGd,d-„ ZHd.d/„ ZId0d1„ ZJd2d3„ ZKd4d5„ ZLej? Md6¡d7d8„ ƒZNd9d:„ ZOd;d<„ ZPd=d>„ ZQd?d@„ ZRdAdB„ ZSej? @dCe8e9edeƒ fdDedEdF�fgƒfe=e>edeƒ fdDedEdF�fgƒfg¡dGdH„ ƒZTej?j@dIedeƒ fdJe/ddK�fgdL�ededdK�fdJe.ddK�fgdL�gdMdNgdO�dPdQ„ ƒZUej? @dRedeƒ fdDedSdK�fgddT�ededSdK�fdDedSdK�fgddT�g¡dUdV„ ƒZVdWdX„ ZWej? @dYdZdd[œg d\¢fd]d^id_d`gfg¡dadb„ ƒZXdcdd„ ZYej? @deee)fee*fg¡dfdg„ ƒZZej? @deee)fee*fg¡eddh�didj„ ƒƒZ[ej? @deee)fee*fg¡ej? @dkdldmg¡eddh�dndo„ ƒƒƒZ\ej? @deee)fee*fg¡eddh�dpdq„ ƒƒZ]dS )rz4Testing for the VotingClassifier and VotingRegressoré    N)Úconfig_contextÚdatasets)ÚBaseEstimatorÚClassifierMixinÚclone)Úmake_multilabel_classification)ÚDummyRegressor)ÚRandomForestClassifierÚRandomForestRegressorÚVotingClassifierÚVotingRegressor)ÚNotFittedError)ÚLinearRegressionÚLogisticRegression)ÚGridSearchCVÚcross_val_scoreÚtrain_test_split)ÚOneVsRestClassifier)Ú
GaussianNB)ÚKNeighborsClassifier)ÚStandardScaler)ÚSVC)ÚConsumingClassifierÚConsumingRegressorÚ	_RegistryÚcheck_recorded_metadata)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equalé   é   T)Z
return_X_yzparams, err_msgÚ
estimatorszGInvalid 'estimators' attribute, 'estimators' should be a non-empty listÚlré   )r#   Úweightsz0Number of `estimators` and weights must be equalc                 C   sL   t f i | ¤Ž}tjt|d�� | tt¡ W d   ƒ n1 s>0    Y  d S )N©Úmatch)r   ÚpytestÚraisesÚ
ValueErrorÚfitÚXÚy)ÚparamsÚerr_msgZensemble© r1   úHE:\soccer\ml_env\Lib\site-packages\sklearn/ensemble/tests/test_voting.pyÚ%test_voting_classifier_estimator_init0   s    r3   c                  C   sª   t dtƒ fdtƒ fgdd�} d}d}tjt|d��}| j W d   ƒ n1 sN0    Y  t|jjtƒsjJ ‚|t	|jjƒv s~J ‚t
| dƒrŒJ ‚|  tt¡ t
| dƒr¦J ‚d S )	NÚlr1Úlr2Úhard©r#   Úvotingú1predict_proba is not available when voting='hard'ú3'VotingClassifier' has no attribute 'predict_proba'r'   Úpredict_proba)r   r   r)   r*   ÚAttributeErrorr;   Ú
isinstanceÚvalueÚ	__cause__ÚstrÚhasattrr,   ÚX_scaledr.   )ÚeclfÚ	inner_msgÚ	outer_msgÚ	exec_infor1   r1   r2   Útest_predictproba_hardvotingC   s    þ$rG   c                  C   sd  t dtƒ fdtƒ fgdd�} tdtƒ fgƒ}d}tjt|d d�� |  t¡ W d   ƒ n1 sb0    Y  tjt|d d�� |  	t¡ W d   ƒ n1 sž0    Y  tjt|d d�� |  
t¡ W d   ƒ n1 sÚ0    Y  tjt|d	 d�� | t¡ W d   ƒ n1 �s0    Y  tjt|d	 d�� | 
t¡ W d   ƒ n1 �sV0    Y  d S )
Nr4   r5   Úsoftr7   ZdrzfThis %s instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.r   r'   r   )r   r   r   r   r)   r*   r   Úpredictr-   r;   Ú	transformÚX_r)rC   ÚeregÚmsgr1   r1   r2   Útest_notfittedU   s"    þÿ(((*rN   c                 C   s`   t d| d�}td| d�}tƒ }td|fd|fd|fgdd	�}t|ttd
d�}| ¡ dks\J ‚dS )z7Check classification by majority label on dataset iris.Ú	liblinear)ÚsolverÚrandom_stateé
   ©Ún_estimatorsrQ   r$   ÚrfÚgnbr6   r7   Úaccuracy©ZscoringçÍÌÌÌÌÌì?N)r   r	   r   r   r   r-   r.   Úmean©Úglobal_random_seedÚclf1Úclf2Úclf3rC   Zscoresr1   r1   r2   Útest_majority_label_irisk   s    ÿr`   c                  C   sŒ   t ddd�} tdd�}td| fd|fgdd�}|  tt¡ t¡d	 d
ksLJ ‚| tt¡ t¡d	 dksjJ ‚| tt¡ t¡d	 dksˆJ ‚dS )zECheck voting classifier selects smaller class label in tie situation.é{   rO   )rQ   rP   ©rQ   r$   rU   r6   r7   éI   r%   r!   N)r   r	   r   r,   r-   r.   rI   )r]   r^   rC   r1   r1   r2   Útest_tie_situationx   s    
rd   c                 C   sd   t | d�}td| d�}tƒ }td|fd|fd|fgdg d¢d	�}t|ttd
d�}| ¡ dks`J ‚dS )z>Check classification by average probabilities on dataset iris.rb   rR   rS   r$   rU   rV   rH   ©r!   r%   rR   ©r#   r8   r&   rW   rX   rY   N)r   r	   r   r   r   rB   r.   rZ   r[   r1   r1   r2   Útest_weights_iris‚   s    
ýrg   c                  C   sL  t dd�} t dd�}t ddd�}td| fd|fd|fgg d¢d�}tttd	d
�\}}}}|  ||¡ |¡}| ||¡ |¡}	| ||¡ |¡}
| ||¡ |¡}tjt 	||	|
g¡dg d¢d�}t
||dd� td| fd|fd|fgdd�}td| fd|fd|fgg d¢d�}| ||¡ | ||¡ | |¡}| |¡}t
||dd� dS )zACheck weighted average regression prediction on diabetes dataset.rZ   )ÚstrategyZmedianÚquantileçš™™™™™É?)rh   ri   re   )r&   g      Ð?)Z	test_sizer   )Zaxisr&   r%   ©ÚdecimalN©r!   r!   r!   )r   r   r   rK   Úy_rr,   rI   ÚnpZaverageZasarrayr   )Zreg1Zreg2Zreg3rL   Z	X_r_trainZX_r_testZ	y_r_trainZy_r_testZ	reg1_predZ	reg2_predZ	reg3_predZ	ereg_predZavgZereg_weights_noneZereg_weights_equalZereg_none_predZereg_equal_predr1   r1   r2   Útest_weights_regressor�   s8    

ÿÿÿÿÿ

rp   c              	   C   s0  t | d�}td| d�}tƒ }t ddgddgdd	gd
dgddgddgg¡}t g d¢¡}t| ||¡ |¡g d¢ƒ t| ||¡ |¡g d¢ƒ t| ||¡ |¡g d¢ƒ td|fd|fd|fgdg d¢d�}t| ||¡ |¡g d¢ƒ td|fd|fd|fgdg d¢d�}t| ||¡ |¡g d¢ƒ dS )z6Manually check predicted class labels for toy dataset.rb   rR   rS   çš™™™™™ñ¿ç      ø¿ç333333ó¿çffffffö¿ç333333Àçš™™™™™Àçš™™™™™ñ?ç333333ó?gÍÌÌÌÌÌ @gffffffö?gÍÌÌÌÌÌ@gffffff@)r!   r!   r!   r%   r%   r%   r$   rU   rV   r6   rm   rf   rH   N)	r   r	   r   ro   Úarrayr    r,   rI   r   )r\   r]   r^   r_   r-   r.   rC   r1   r1   r2   Útest_predict_on_toy_problem´   s,    
&ÿýýrz   c                  C   s„  t dd�} tdd�}tƒ }t ddgddgddgd	d
gg¡}t g d¢¡}t ddgddgddgddgg¡}t ddgddgddgddgg¡}t ddgddgddgddgg¡}d|d d  |d d  |d d  d  }d|d! d!  |d! d!  |d! d!  d  }	d|d d!  |d d!  |d d!  d  }
d|d" d!  |d" d!  |d" d!  d  }td#| fd$|fd%|fgd&g d'¢d(�}| ||¡ |¡}t||d d d!d)� t|	|d! d! d!d)� t|
|d d! d!d)� t||d" d! d!d)� d*}d+}t	j
t|d,��@}td#| fd$|fd%|fgd-d.�}| ||¡ |¡ W d/  ƒ n1 �sL0    Y  t|jjtƒ�sjJ ‚|t|jjƒv �s€J ‚d/S )0z1Calculate predicted probabilities on toy dataset.ra   rb   rq   rr   rs   rt   ru   rv   rw   rx   ©r!   r!   r%   r%   g…7sa"ã?gö�=ñ»Ù?g�½¤Rhpâ?gâ„¶Z/Û?glç^Ô¬;à?g(1BW¦ˆß?gµU(V6ÁÙ?g&ÕëÔdã?gš™™™™™é?rj   ç333333Ó?çffffffæ?gá5ùwÇóï?g9=”qX?gè_óï?g$ö/ÐAY?ç        ç      ð?r%   r   é   r!   r"   r$   rU   rV   rH   )r%   r!   r!   rf   rk   r9   r:   r'   r6   r7   N)r   r	   r   ro   ry   r   r,   r;   r   r)   r*   r<   r=   r>   r?   r@   )r]   r^   r_   r-   r.   Zclf1_resZclf2_resZclf3_resZt00Zt11Zt21Zt31rC   Zeclf_resrD   rE   rF   r1   r1   r2   Ú!test_predict_proba_on_toy_problemÓ   sN    

"üÿ	"ÿ,,,,ýÿ2r�   c                  C   s^   t ddddd�\} }ttdd�ƒ}td|fgd	d
�}z| | |¡ W n tyX   Y dS 0 dS )z7Check if error is raised for multilabel classification.r%   r!   Fra   )Z	n_classesZn_labelsZallow_unlabeledrQ   Zlinear)ZkernelZovrr6   r7   N)r   r   r   r   r,   ÚNotImplementedError)r-   r.   ÚclfrC   r1   r1   r2   Útest_multilabel  s    ÿ
r„   c                  C   sx   t dd�} tddd�}tƒ }td| fd|fd|fgdd	�}d
dgddgg d¢g d¢gdœ}t||dd�}| tt¡ dS )zCheck GridSearch support.r!   rb   r"   )rQ   rT   r$   rU   rV   rH   r7   r   g      Y@r6   )ç      à?r…   r…   )r   r…   r…   )Zlr__Cr8   r&   r%   )Ú	estimatorZ
param_gridZcvN)r   r	   r   r   r   r,   rB   r.   )r]   r^   r_   rC   r/   Úgridr1   r1   r2   Útest_gridsearch  s    
ÿýrˆ   c                 C   sÌ   t | d�}td| d�}tƒ }t ddgddgdd	gd
dgg¡}t g d¢¡}td|fd|fd|fgddd� ||¡}td|fd|fd|fgddd� ||¡}t| |¡| |¡ƒ t	| 
|¡| 
|¡ƒ dS )z:Check parallel backend of VotingClassifier on toy dataset.rb   rR   rS   rq   rr   rs   rt   ru   rv   rw   rx   r{   r$   rU   rV   rH   r!   )r#   r8   Zn_jobsr%   N)r   r	   r   ro   ry   r   r,   r    rI   r   r;   )r\   r]   r^   r_   r-   r.   Úeclf1Úeclf2r1   r1   r2   Útest_parallel_fit)  s"    
"ÿþÿþr‹   zignore::FutureWarningc                 C   sà  t | d�}td| d�}td| d�}td|fd|fd|fgd	d
�jttt t	tƒf¡d�}td|fd|fd|fgd	d
� tt¡}t
| t¡| t¡ƒ t| t¡| t¡ƒ tj | ¡jt	tƒfd�}td|fgd	d
�}| tt|¡ | tt|¡ t
| t¡| t¡ƒ t| t¡| t¡ƒ tƒ }td|fd|fd|fgd	d
�}d}	tjt|	d�� | tt|¡ W d  ƒ n1 �sz0    Y  G dd„ dttƒ}
|
ƒ }tjtdd��  |jtt|d� W d  ƒ n1 �sÒ0    Y  dS )z1Tests sample_weight parameter of VotingClassifierrb   rR   rS   T)ZprobabilityrQ   r$   rU   ZsvcrH   r7   ©Úsample_weight)ÚsizeZknnzJUnderlying estimator KNeighborsClassifier does not support sample weights.r'   Nc                   @   s   e Zd Zdd„ ZdS )z.test_sample_weight.<locals>.ClassifierErrorFitc                 S   s   t dƒ‚d S )Nz!Error unrelated to sample_weight.)Ú	TypeError)ÚselfrB   r.   r�   r1   r1   r2   r,   c  s    z2test_sample_weight.<locals>.ClassifierErrorFit.fitN)Ú__name__Ú
__module__Ú__qualname__r,   r1   r1   r1   r2   ÚClassifierErrorFitb  s   r”   z Error unrelated to sample_weight)r   r	   r   r   r,   rB   r.   ro   ÚonesÚlenr    rI   r   r;   ÚrandomZRandomStateÚuniformr   r)   r*   r�   r   r   )r\   r]   r^   r_   r‰   rŠ   r�   Úeclf3Zclf4rM   r”   rƒ   r1   r1   r2   Útest_sample_weight=  sH    
ÿþÿþÿÿÿ.rš   c                  C   sJ   G dd„ dt tƒ} | ƒ }td|fgdd�}|jttt ttƒf¡d� dS )z:Check that VotingClassifier passes sample_weight as kwargsc                   @   s   e Zd ZdZdd„ ZdS )z1test_sample_weight_kwargs.<locals>.MockClassifierzAMock Classifier to check that sample_weight is received as kwargsc                 _   s   d|v sJ ‚d S )Nr�   r1   )r�   r-   r.   Úargsr�   r1   r1   r2   r,   q  s    z5test_sample_weight_kwargs.<locals>.MockClassifier.fitN)r‘   r’   r“   Ú__doc__r,   r1   r1   r1   r2   ÚMockClassifiern  s   r�   ZmockrH   r7   rŒ   N)	r   r   r   r,   r-   r.   ro   r•   r–   )r�   rƒ   rC   r1   r1   r2   Útest_sample_weight_kwargsk  s    rž   c                 C   sâ   t | d�}td| d d�}tƒ }td|fd|fgdddgd	� tt¡}td|fd
|fgdddgd	�}|j|d� tt¡ t| 	t¡| 	t¡ƒ t
| t¡| t¡ƒ |jd d  ¡ | ¡ ksÀJ ‚|jd d  ¡ | ¡ ksÞJ ‚d S )Nrb   rR   )rT   rQ   Ú	max_depthr$   rU   rH   r!   r%   )r8   r&   Únb)r    r   )r   r	   r   r   r,   rB   r.   Ú
set_paramsr    rI   r   r;   r#   Ú
get_params)r\   r]   r^   r_   r‰   rŠ   r1   r1   r2   Ú!test_voting_classifier_set_params{  s(    
ÿÿþÿÿr£   c                  C   s¸  t dd�} tddd�}tƒ }td| fd|fd|fgdg d	¢d
� tt¡}td| fd|fd|fgdg d¢d
�}|jdd� tt¡ t| 	t¡| 	t¡ƒ t
|jƒd dks¬J ‚t|jƒdks¾J ‚tdd„ |jD ƒƒsÖJ ‚| ¡ d dksêJ ‚|jdd� tt¡ |jdd� tt¡ t| 	t¡| 	t¡ƒ t| t¡| t¡ƒ d}tjt|d��( |jdddd� tt¡ W d   ƒ n1 �s€0    Y  t dgdgg¡}t ddg¡}td|fd|fgdddgdd� ||¡}td|fd|fgdddgdd�}|jdd� ||¡ t| |¡t ddgddggddgddggg¡ƒ t| |¡t ddgddggg¡ƒ |jdd� |jdd� t| |¡t ddgddgg¡ƒ t| |¡t dgdgg¡ƒ d S )Nra   rb   rR   rS   r$   rU   r    r6   )r!   r   r…   rf   )r!   r!   r…   Údrop)rU   r%   c                 s   s   | ]}t |ttfƒV  qd S )N)r=   r   r   )Ú.0Úestr1   r1   r2   Ú	<genexpr>ª  s   z*test_set_estimator_drop.<locals>.<genexpr>rH   )r8   z4All estimators are dropped. At least one is requiredr'   )r$   rU   r    r!   r   r…   F)r#   r8   r&   Úflatten_transformr}   r|   r   r~   )r   r	   r   r   r,   r-   r.   r¡   r    rI   Údictr#   r–   Zestimators_Úallr¢   r   r;   r)   r*   r+   ro   ry   rJ   )r]   r^   r_   r‰   rŠ   rM   ZX1Úy1r1   r1   r2   Útest_set_estimator_drop“  sp    
ýüýÿ8üûü$þ$"r¬   c                 C   s†   t | d�}td| d�}td|fd|fgddgdd	�}td|fd|fgt d
¡dd	�}| tt¡ | tt¡ t| 	t¡| 	t¡ƒ d S )Nrb   rR   rS   r$   rU   r!   r%   rH   )r#   r&   r8   )r!   r%   )
r   r	   r   ro   ry   r,   rB   r.   r   r;   )r\   r]   r^   r‰   rŠ   r1   r1   r2   Útest_estimator_weights_formatÔ  s    
ÿÿÿr­   c           	      C   s6  t | d�}td| d�}tƒ }t ddgddgdd	gd
dgg¡}t g d¢¡}td|fd|fd|fgdd� ||¡}td|fd|fd|fgddd� ||¡}td|fd|fd|fgddd� ||¡}t| |¡j	dƒ t| |¡j	dƒ t| |¡j	dƒ t
| |¡| |¡ƒ t
| |¡ dd¡ d¡| |¡ƒ dS )z:Check transform method of VotingClassifier on toy dataset.rb   rR   rS   rq   rr   rs   rt   ru   rv   rw   rx   r{   r$   rU   rV   rH   r7   T©r#   r8   r¨   F)r€   é   )r"   r€   r%   r   r!   N)r   r	   r   ro   ry   r   r,   r    rJ   Úshaper   ZswapaxesZreshape)	r\   r]   r^   r_   r-   r.   r‰   rŠ   r™   r1   r1   r2   Útest_transformå  s>    
"ÿþýüýüÿr±   zX, y, voterrU   é   )rT   c                 C   sn   t |ƒ}tƒ  | ¡}|j||t |j¡d� |jdd� |j||t |j¡d� | |¡}|j|jksjJ ‚d S )NrŒ   r¤   )r$   )	r   r   Úfit_transformr,   ro   r•   r°   r¡   rI   )r-   r.   ZvoterrB   Zy_predr1   r1   r2   Ú test_none_estimator_with_weights  s    
r´   r¦   Útreerb   ©r#   r   r   )Zidsc                 C   sJ   ddgddgddgg}g d¢}t | dƒr,J ‚|  ||¡ | jdksFJ ‚d S )	Nr!   r%   r"   r€   r²   r¯   ©r   r!   r%   Ún_features_in_)rA   r,   r¸   )r¦   r-   r.   r1   r1   r2   Útest_n_features_in+  s
    r¹   r†   ra   )r#   Úverbosec                 C   s`   t  ddgddgddgddgg¡}t  g d	¢¡}d
}t| ƒ ||¡ t || ¡ d ¡s\J ‚d S )Nrq   rr   rs   rt   ru   rv   rw   rx   r{   za\[Voting\].*\(1 of 2\) Processing lr, total=.*\n\[Voting\].*\(2 of 2\) Processing rf, total=.*\n$r   )ro   ry   r   r,   Úrer(   Z
readouterr)r†   Zcapsysr-   r.   Úpatternr1   r1   r2   Útest_voting_verboseF  s    "ÿr½   c                  C   sh   ddgddgddgg} g d¢}t dtƒ fd	td
d�fdgd�}| | |¡ | ¡ }ddg}t||ƒ dS )z1Check get_feature_names_out output for regressor.r!   r%   r"   r€   r²   r¯   r·   r$   rµ   r   rb   )Úignorer¤   r¶   Zvotingregressor_lrZvotingregressor_treeN)r   r   r   r,   Úget_feature_names_outr    )r-   r.   r8   Ú	names_outÚexpected_namesr1   r1   r2   Ú%test_get_features_names_out_regressore  s    ýÿrÂ   zkwargs, expected_namesrH   )r8   r¨   )Zvotingclassifier_lr0Zvotingclassifier_lr1Zvotingclassifier_lr2Zvotingclassifier_tree0Zvotingclassifier_tree1Zvotingclassifier_tree2r8   r6   Zvotingclassifier_lrZvotingclassifier_treec                 C   s�   ddgddgddgddgg}g d¢}t f d	d
tdd�fdtdd�fgi| ¤Ž}| ||¡ | |¡}| ¡ }|jd t|ƒks‚J ‚t||ƒ dS )zBCheck get_feature_names_out for classifier for different settings.r!   r%   r"   r€   r²   r¯   rx   )r   r!   r%   r   r#   r$   r   rb   rµ   N)	r   r   r   r,   rJ   r¿   r°   r–   r    )ÚkwargsrÁ   r-   r.   r8   ZX_transrÀ   r1   r1   r2   Ú&test_get_features_names_out_classifiery  s    þÿû
rÄ   c                  C   sŽ   ddgddgddgg} g d¢}t dtd	d
�fdtd	d
�fgddd�}| | |¡ d}tjt|d�� | ¡  W d  ƒ n1 s€0    Y  dS )zJCheck that error is raised when voting="soft" and flatten_transform=False.r!   r%   r"   r€   r²   r¯   r·   r$   r   rb   rµ   rH   Fr®   zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r'   N)r   r   r   r,   r)   r*   r+   r¿   )r-   r.   r8   rM   r1   r1   r2   Ú,test_get_features_names_out_classifier_errorž  s    þúÿrÅ   zEstimator, Childc                 C   sv   t  ddgddgddgg¡}g d¢}tjtdd��0 | d	|ƒ gƒj||g d
¢dd� W d  ƒ n1 sh0    Y  dS )z�Test that the right error message is raised when metadata is passed while
    not supported when `enable_metadata_routing=False`.r   r!   r%   r€   r¯   ©r!   r%   r"   z1is only supported if enable_metadata_routing=Truer'   rƒ   rm   Úa©r�   ÚmetadataN)ro   ry   r)   r*   r+   r,   )Ú	EstimatorÚChildr-   r.   r1   r1   r2   Ú*test_routing_passed_metadata_not_supported¹  s    ÿrÌ   )Zenable_metadata_routingc                 C   s   | d|ƒ fgƒ}|  ¡  d S )NÚsub_est)Zget_metadata_routing)rÊ   rË   r¦   r1   r1   r2   Ú%test_get_metadata_routing_without_fitÊ  s    rÎ   Úpropr�   rÉ   c                 C   sú   t  ddgddgddgg¡}g d¢}g d¢d }}| d	|tƒ d
�jf i |di¤Žfd|tƒ d
�jf i |di¤Žfgƒ}|j||fi ||dkr�|n|i¤Ž |jD ]T}|dkr¶||i}	n||i}	|d j}
t|
ƒsÔJ ‚|
D ]}tf |dddœ|	¤Ž qØq dS )z3Test that metadata is routed correctly for Voting*.r   r!   r%   r€   r¯   rÆ   rm   rÇ   Zsub_est1)ÚregistryTZsub_est2r�   r,   )ÚobjÚmethodÚparentN)	ro   ry   r   Zset_fit_requestr,   r#   rÐ   r–   r   )rÊ   rË   rÏ   r-   r.   r�   rÉ   r¦   r†   rÃ   rÐ   rÍ   r1   r1   r2   Ú+test_metadata_routing_for_voting_estimatorsÕ  s*    þþûÿ$


rÔ   c                 C   sš   t  ddgddgddgg¡}g d¢}g d¢d }}| d	|ƒ fgƒ}d
|j› d�}tjtt |¡d��" |j||||d� W d  ƒ n1 sŒ0    Y  dS )zCTest that the right error is raised when metadata is not requested.r   r!   r%   r€   r¯   rÆ   rm   rÇ   rÍ   zb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr'   rÈ   N)	ro   ry   r‘   r)   r*   r+   r»   Úescaper,   )rÊ   rË   r-   r.   r�   rÉ   r¦   Úerror_messager1   r1   r2   Ú1test_metadata_routing_error_for_voting_estimatorsü  s    ÿÿr×   )^rœ   r»   Únumpyro   r)   Zsklearnr   r   Zsklearn.baser   r   r   Zsklearn.datasetsr   Zsklearn.dummyr   Zsklearn.ensembler	   r
   r   r   Zsklearn.exceptionsr   Zsklearn.linear_modelr   r   Zsklearn.model_selectionr   r   r   Zsklearn.multiclassr   Zsklearn.naive_bayesr   Zsklearn.neighborsr   Zsklearn.preprocessingr   Zsklearn.svmr   Z%sklearn.tests.metadata_routing_commonr   r   r   r   Zsklearn.treer   r   Zsklearn.utils._testingr   r   r    Z	load_irisZirisÚdataÚtargetr-   r.   r³   rB   Zload_diabetesrK   rn   ÚmarkZparametrizer3   rG   rN   r`   rd   rg   rp   rz   r�   r„   rˆ   r‹   Úfilterwarningsrš   rž   r£   r¬   r­   r±   r´   r¹   r½   rÂ   rÄ   rÅ   rÌ   rÎ   rÔ   r×   r1   r1   r1   r2   Ú<module>   s  þþûþ

$4

-Aþÿýþÿýõþ
þÿþÿùð
	þûþûøþ
þôþ
þ
þþ!þ