
    Mpjk                        S r SSKrSSKrSSKrSSKJrJr  SSKJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SSKJrJrJrJrJr  SS	KJr  SS
KJrJr  SSKJrJrJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&  SSK'J(r(  SSK)J*r*  SSK+J,r,J-r-J.r.J/r/  SSK0J1r1J2r2  SSK3J4r4J5r5J6r6  \Rn                  " 5       r8\8Rr                  SS2SS24   \8Rt                  sr;r<\(" 5       R{                  \;5      r>\R~                  " SS9u  r@rA\R                  R                  SS/ 0S4S\" 5       /0S4SS\" 5       4/0S4S\" 5       4/SS/S.S4/5      S  5       rDS! rES" rFS# rGS$ rHS% rIS& rJS' rKS( rLS) rMS* rNS+ rOS, rPS- rQS. rRS/ rSS0 rTS1 rU\R                  R                  S2\;\<\" S\" 5       4S3\" S4S594/5      4\@\A\" S\" 5       4S3\" S4S594/5      4/5      S6 5       rV\R                  R                  S7\" S\" 5       4S8\2" SS994/S:9\" S\" SS994S8\1" SS994/S:9/S;S</S=9S> 5       rW\R                  R                  S?\" S\" 5       4S3\" S@S994/SSA9\" S\" S@S994S3\" S@S994/SSA9/5      SB 5       rXSC rY\R                  R                  SDSESSF./ SGQ4SHSI0SJSK/4/5      SL 5       rZSM r[\R                  R                  SN\\,4\\-4/5      SO 5       r\\R                  R                  SN\\,4\\-4/5      \" SSP9SQ 5       5       r]\R                  R                  SN\\,4\\-4/5      \R                  R                  SRSSST/5      \" SSP9SU 5       5       5       r^\R                  R                  SN\\,4\\-4/5      \" SSP9SV 5       5       r_g)Wz4Testing for the VotingClassifier and VotingRegressor    N)config_contextdatasets)BaseEstimatorClassifierMixinclone)CalibratedClassifierCV)make_multilabel_classification)DummyRegressor)GradientBoostingClassifier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)
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                     [        S0 U D6n[        R                  " [        US9   UR	                  [
        [        5        S S S 5        g ! , (       d  f       g = f)Nmatch )r   pytestraises
ValueErrorfitXy)paramserr_msgensembles      ^/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/sklearn/ensemble/tests/test_voting.py%test_voting_classifier_estimator_initr:   2   s9    ,  )&)H	z	1Q 
2	1	1s   A		
Ac                     [        S[        5       4S[        5       4/SS9n SnSn[        R                  " [        US9 nU R
                    S S S 5        [        WR                  R                  [        5      (       d   eU[        UR                  R                  5      ;   d   e[        U S5      (       a   eU R                  [        [        5        [        U S5      (       a   eg ! , (       d  f       N= f)	Nlr1lr2hardr'   voting1predict_proba is not available when voting='hard'3'VotingClassifier' has no attribute 'predict_proba'r-   predict_proba)r   r   r0   r1   AttributeErrorrC   
isinstancevalue	__cause__strhasattrr3   X_scaledr5   )eclf	inner_msg	outer_msg	exec_infos       r9   test_predictproba_hardvotingrO   M   s    .01E;M;O3PQD
 DIEI	~Y	79 
8ioo//@@@@IOO556666t_----HHXqt_----- 
8	7s   C$$
C2c                  b   [        S[        5       4S[        5       4/SS9n [        S[        5       4/5      nSn[        R
                  " [        US-  S9   U R                  [        5        S S S 5        [        R
                  " [        US-  S9   U R                  [        5        S S S 5        [        R
                  " [        US-  S9   U R                  [        5        S S S 5        [        R
                  " [        US	-  S9   UR                  [        5        S S S 5        [        R
                  " [        US	-  S9   UR                  [        5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N|= f! , (       d  f       g = f)
Nr<   r=   softr?   drzfThis %s instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.r   r-   r   )r   r   r   r
   r0   r1   r   predictr4   rC   	transformX_r)rK   eregmsgs      r9   test_notfittedrX   _   s5   .01E;M;O3PQD T>#3456D	C  
~S3E-E	FQ 
G	~S3E-E	F1 
G	~S3E-E	Fq 
G	~S3D-D	ES 
F	~S3D-D	Es 
F	E 
G	F	F	F	F	F	E	E	E	Es<   EE-	E>F=F 
E*-
E;>
F
F 
F.c                     [        U S9n[        SU S9n[        5       n[        SU4SU4SU4/SS9n[	        U[
        [        S	S
9nUR                  5       S:  d   eg)z7Check classification by majority label on dataset iris.random_state
   n_estimatorsr[   r)   rfgnbr>   r?   accuracyscoring?N)r   r   r   r   r   r4   r5   meanglobal_random_seedclf1clf2clf3rK   scoress         r9   test_majority_label_irisrl   u   si    +=>D!r@RSD<D4L4,>vD T1a<F;;=C    c                     [        SS9n [        SS9n[        SU 4SU4/SS9nU R                  [        [
        5      R                  [        5      S   S:X  d   eUR                  [        [
        5      R                  [        5      S   S	:X  d   eUR                  [        [
        5      R                  [        5      S   S	:X  d   eg
)zECheck voting classifier selects smaller class label in tie situation.{   rZ   r)   r_   r>   r?   4   r*   r$   N)r   r   r   r3   r4   r5   rS   )rh   ri   rK   s      r9   test_tie_situationrq      s    3/D!s3DttTl'CFSD88Aq>!!!$R(A---88Aq>!!!$R(A---88Aq>!!!$R(A---rm   c                     [        U S9n[        SU S9n[        5       n[        SU4SU4SU4/S/ SQS	9n[	        U[
        [        S
S9nUR                  5       S:  d   eg)z>Check classification by average probabilities on dataset iris.rZ   r\   r]   r)   r_   r`   rQ   r$   r*   r\   r'   r@   r+   ra   rb   rd   N)r   r   r   r   r   rJ   r5   re   rf   s         r9   test_weights_irisru      sm    +=>D!r@RSD<D4L4,>D
 T8Q
CF;;=Crm   c                     [        SS9n [        SS9n[        SSS9n[        SU 4SU4SU4// SQS9n[        [        [        S	S
9u  pEpgU R                  XF5      R                  U5      nUR                  XF5      R                  U5      n	UR                  XF5      R                  U5      n
UR                  XF5      R                  U5      n[        R                  " [        R                  " XU
/5      S/ SQS9n[        XSS9  [        SU 4SU4SU4/SS9n[        SU 4SU4SU4// SQS9nUR                  XF5        UR                  XF5        UR                  U5      nUR                  U5      n[        UUSS9  g)zACheck weighted average regression prediction on diabetes dataset.re   )strategymedianquantile皙?)rw   ry   rs   )r+   g      ?)	test_sizer   )axisr+   r*   decimalNr$   r$   r$   )r
   r   r   rU   y_rr3   rS   npaverageasarrayr!   )reg1reg2reg3rV   	X_r_trainX_r_test	y_r_trainy_r_test	reg1_pred	reg2_pred	reg3_pred	ereg_predavgereg_weights_noneereg_weights_equalereg_none_predereg_equal_preds                    r9   test_weights_regressorr      s   6*D8,D:<D
$(D)J+=>
D 0@SD0,I .66x@I.66x@I.66x@I.66x@I
**


I)45AzC 	2'
$(D)J+=> )
$(D)J+=>	 )/90&..x8N(00:OCrm   c           	         [        U S9n[        SU S9n[        5       n[        R                  " SS/SS/SS	/S
S/SS/SS//5      n[        R                  " / SQ5      n[        UR                  XE5      R                  U5      / SQ5        [        UR                  XE5      R                  U5      / SQ5        [        UR                  XE5      R                  U5      / SQ5        [        SU4SU4SU4/S/ SQS9n[        UR                  XE5      R                  U5      / SQ5        [        SU4SU4SU4/S/ SQS9n[        UR                  XE5      R                  U5      / SQ5        g)z6Manually check predicted class labels for toy dataset.rZ   r\   r]   皙      333333ffffff333333皙皙?333333?g @gffffff?g@gffffff@)r$   r$   r$   r*   r*   r*   r)   r_   r`   r>   r   rt   rQ   N)	r   r   r   r   arrayr#   r3   rS   r   )rg   rh   ri   rj   r4   r5   rK   s          r9   test_predict_on_toy_problemr      sO   +=>D!r@RSD<D

d|dD\C:SzCQT:V	A 	#$Atxx~--a02DEtxx~--a02DEtxx~--a02DE4L4,>D
 txx~--a02DE4L4,>D
 txx~--a02DErm   c                     [        SS9n [        SS9n[        5       n[        R                  " SS/SS/SS/S	S
//5      n[        R                  " / SQ5      n[        R                  " SS/SS/SS/SS//5      n[        R                  " SS/SS/SS/SS//5      n[        R                  " SS/SS/SS/SS//5      nSUS   S   -  US   S   -   US   S   -   S -  nSUS!   S!   -  US!   S!   -   US!   S!   -   S -  n	SUS   S!   -  US   S!   -   US   S!   -   S -  n
SUS"   S!   -  US"   S!   -   US"   S!   -   S -  n[        S#U 4S$U4S%U4/S&/ S'QS(9nUR                  X45      R                  U5      n[        XS   S   S!S)9  [        XS!   S!   S!S)9  [        XS   S!   S!S)9  [        XS"   S!   S!S)9  S*nS+n[        R                  " [        US,9 n[        S#U 4S$U4S%U4/S-S.9nUR                  X45      R                  U5        S/S/S/5        [        WR                  R                  [        5      (       d   eU[        UR                  R                  5      ;   d   eg/! , (       d  f       N_= f)0z1Calculate predicted probabilities on toy dataset.ro   rZ   r   r   r   r   r   r   r   r   r$   r$   r*   r*   g7sa"?g=?gRhp?gℶZ/?gl^Ԭ;?g(1BW?gU(V6?g&d?g?rz   333333?ffffff?g5w?g9=qX?g_?g$/AY?              ?r*   r      r$   r%   r)   r_   r`   rQ   )r*   r$   r$   rt   r}   rA   rB   r-   r>   r?   N)r   r   r   r   r   r   r3   rC   r!   r0   r1   rD   rE   rF   rG   rH   )rh   ri   rj   r4   r5   clf1_resclf2_resclf3_rest00t11t21t31rK   eclf_resrL   rM   rN   s                    r9   !test_predict_proba_on_toy_problemr      s   3/D!s3D<D
4,ttTlS#JGHA
Axx$$$$		
H xx#sc3Z#sc3ZHIHxx
Y	*j!9C:SzRH x{1~A.!Q?1
DCx{1~A.!Q?1
DCx{1~A.!Q?1
DCx{1~A.!Q?1
DC4L4,>D
 xx~++A.Ha[^Q7a[^Q7a[^Q7a[^Q7CIEI	~Y	79ttTlUDMB6
 	$$Q'	 
8 ioo//@@@@IOO556666 
8	7s   4I
I+c                      [        SSSSS9u  p[        [        SS95      n[        SU4/S	S
9n UR	                  X5        g! [
         a     gf = f)z7Check if error is raised for multilabel classification.r*   r$   Fro   )	n_classesn_labelsallow_unlabeledr[   linear)kernelovrr>   r?   N)r	   r   r   r   r3   NotImplementedError)r4   r5   clfrK   s       r9   test_multilabelr     s\    )aSDA c2
3C~fED s   A 
AAc                      [        SS9n [        SSS9n[        5       n[        SU 4SU4SU4/SS	9nS
S/SS// SQ/ SQ/S.n[	        X4SS9nUR                  [        [        5        g)zCheck GridSearch support.r$   rZ   r%   )r[   r^   r)   r_   r`   rQ   r?   r   g      Y@r>   )      ?r   r   )r   r   r   )lr__Cr@   r+   r*   )	estimator
param_gridcvN)r   r   r   r   r   r3   rJ   r5   )rh   ri   rj   rK   r6   grids         r9   test_gridsearchr      s}    1-D!qqAD<D4L4,>vD
 u6"#_5F $a@DHHXqrm   c                    [        U S9n[        SU S9n[        5       n[        R                  " SS/SS/SS	/S
S//5      n[        R                  " / SQ5      n[        SU4SU4SU4/SSS9R                  XE5      n[        SU4SU4SU4/SSS9R                  XE5      n[        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        g)z:Check parallel backend of VotingClassifier on toy dataset.rZ   r\   r]   r   r   r   r   r   r   r   r   r   r)   r_   r`   rQ   r$   )r'   r@   n_jobsr*   N)r   r   r   r   r   r   r3   r#   rS   r"   rC   )rg   rh   ri   rj   r4   r5   eclf1eclf2s           r9   test_parallel_fitr   3  s    +=>D!r@RSD<D
4,ttTlS#JGHA
A4L4,>vVW	c!i 
 4L4,>vVW	c!i 
 u}}Q'q)9:e11!4e6I6I!6LMrm   c           	      d   [        U S9n[        SU S9n[        [        U S9SS9n[	        SU4SU4SU4/S	S
9R                  [        [        [        R                  " [        [        5      45      S9n[	        SU4SU4SU4/S	S
9R                  [        [        5      n[        UR                  [        5      UR                  [        5      5        [        UR                  [        5      UR                  [        5      5        [        R                  R!                  U 5      R#                  [        [        5      4S9n[	        SU4/S	S
9nUR                  [        [        US9  UR                  [        [        U5        [        UR                  [        5      UR                  [        5      5        [        UR                  [        5      UR                  [        5      5        [%        5       n[	        SU4SU4SU4/S	S
9nSn	[&        R(                  " [*        U	S9   UR                  [        [        US9  SSS5         " S S[,        [.        5      n
U
" 5       n[&        R(                  " [*        SS9   UR                  [        [        US9  SSS5        g! , (       d  f       Ne= f! , (       d  f       g= f)z1Tests sample_weight parameter of VotingClassifierrZ   r\   r]   F)r8   r)   gbdtsvcrQ   r?   sample_weight)sizeknnzJUnderlying estimator KNeighborsClassifier does not support sample weights.r-   Nc                       \ rS rSrS rSrg).test_sample_weight.<locals>.ClassifierErrorFitij  c                     [        S5      e)Nz!Error unrelated to sample_weight.)	TypeError)selfrJ   r5   r   s       r9   r3   2test_sample_weight.<locals>.ClassifierErrorFit.fitk  s    ?@@rm   r/   N)__name__
__module____qualname____firstlineno__r3   __static_attributes__r/   rm   r9   ClassifierErrorFitr   j  s    	Arm   r   z Error unrelated to sample_weight)r   r   r   r   r   r3   rJ   r5   r   oneslenr#   rS   r"   rC   randomRandomStateuniformr   r0   r1   r   r   r   )rg   rh   ri   rj   r   r   r   eclf3clf4rW   r   r   s               r9   test_sample_weightr   F  s4   +=>D%2DVWD!#3E"FQVWD4L64.5$-@	c(ARWWc!fY%7c8 
 4L64.5$-@	c(A 
 u}}X.h0GHH%u':':8'D II))*<=EECPQF9EUM$vFE	IIhI7HHXq-(u}}X.X0FGH%t'9'9('C  !D4L5$-%?E WC	y	,		(A]	; 
-
A_m A 
C	y(J	K!=9 
L	K 
-	, 
L	Ks   J-J!
J!
J/c            	           " S S[         [        5      n U " 5       n[        SU4/SS9nUR                  [        [
        [        R                  " [        [
        5      45      S9  g)z:Check that VotingClassifier passes sample_weight as kwargsc                       \ rS rSrSrS rSrg)1test_sample_weight_kwargs.<locals>.MockClassifieriv  zAMock Classifier to check that sample_weight is received as kwargsc                     SU;   d   eg )Nr   r/   )r   r4   r5   argsr   s        r9   r3   5test_sample_weight_kwargs.<locals>.MockClassifier.fity  s    "m333rm   r/   N)r   r   r   r   __doc__r3   r   r/   rm   r9   MockClassifierr   v  s
    O	4rm   r   mockrQ   r?   r   N)	r   r   r   r3   r4   r5   r   r   r   )r   r   rK   s      r9   test_sample_weight_kwargsr   s  sO    4- 4 
CvFD 	HHQ#a&!3H4rm   c                    [        U S9n[        SU S S9n[        5       n[        SU4SU4/SSS/S	9R	                  [
        [        5      n[        SU4S
U4/SSS/S	9nUR                  US9R	                  [
        [        5        [        UR                  [
        5      UR                  [
        5      5        [        UR                  [
        5      UR                  [
        5      5        UR                  S   S   R                  5       UR                  5       :X  d   eUR                  S   S   R                  5       UR                  5       :X  d   eg )NrZ   r\   )r^   r[   	max_depthr)   r_   rQ   r$   r*   )r@   r+   nb)r   r   )r   r   r   r   r3   rJ   r5   
set_paramsr#   rS   r"   rC   r'   
get_params)rg   rh   ri   rj   r   r   s         r9   !test_voting_classifier_set_paramsr     s:   +=>D!&8DD <D
d|$VaV	c(A 
 
d|$VaVE 
!!(A.u}}X.h0GHH%u':':8'D Aq!,,.$//2CCCCAq!,,.$//2CCCCrm   c            	         [        SS9n [        SSS9n[        5       n[        SU 4SU4SU4/S/ S	QS
9R	                  [
        [        5      n[        SU 4SU4SU4/S/ SQS
9nUR                  SS9R	                  [
        [        5        [        UR                  [
        5      UR                  [
        5      5        [        UR                  5      S   S:X  d   e[        UR                  5      S:X  d   e[        S UR                   5       5      (       d   eUR                  5       S   S:X  d   eUR                  SS9R	                  [
        [        5        UR                  SS9R	                  [
        [        5        [        UR                  [
        5      UR                  [
        5      5        [!        UR#                  [
        5      UR#                  [
        5      5        Sn[$        R&                  " [(        US9   UR                  SSSS9R	                  [
        [        5        S S S 5        [*        R,                  " S/S//5      n[*        R,                  " SS/5      n[        SU4SU4/SSS/SS9R	                  Xg5      n[        SU4SU4/SSS/SS9nUR                  SS9R	                  Xg5        [!        UR/                  U5      [*        R,                  " SS/SS//SS/SS///5      5        [!        UR/                  U5      [*        R,                  " SS/SS///5      5        UR                  SS9  UR                  SS9  [        UR/                  U5      [*        R,                  " SS/SS//5      5        [        UR/                  U5      [*        R,                  " S/S//5      5        g ! , (       d  f       GN= f)Nro   rZ   r\   r]   r)   r_   r   r>   )r$   r   r   rt   )r$   r$   r   drop)r_   r*   c              3   N   #    U  H  n[        U[        [        45      v   M     g 7f)N)rE   r   r   ).0ests     r9   	<genexpr>*test_set_estimator_drop.<locals>.<genexpr>  s$      EVc
3+Z899EVs   #%rQ   )r@   z4All estimators are dropped. At least one is requiredr-   )r)   r_   r   r$   r   r   F)r'   r@   r+   flatten_transformr   r   r   r   )r   r   r   r   r3   r4   r5   r   r#   rS   dictr'   r   estimators_allr   r"   rC   r0   r1   r2   r   r   rT   )rh   ri   rj   r   r   rW   X1y1s           r9   test_set_estimator_dropr     sx    3/D!rDD<D4L4,t= 
c!Qi	 
 4L4,t=E
 
##Aq)u}}Q'q)9:  !$'6111u  !Q&&& EJEVEV     d#v---	F#''1-	F#''1-u}}Q'q)9:e11!4e6I6I!6LM
@C	z	-Fv&9==aC 
. 
A3*	B	1a&	B4L4,/C	
 
c"k 
 4L4,/C	E 
##B+
C:Sz*c3Z#s,DEF eoob1288sCj3PS*=U<V3WX	F#	F#ur*BHHq!fq!f5E,FGur*BHHqcA3Z,@A9 
.	-s   =*N00
N?c                 f   [        U S9n[        SU S9n[        SU4SU4/SS/SS	9n[        SU4SU4/[        R                  " S
5      SS	9nUR                  [        [        5        UR                  [        [        5        [        UR                  [        5      UR                  [        5      5        g )NrZ   r\   r]   r)   r_   r$   r*   rQ   )r'   r+   r@   )r$   r*   )
r   r   r   r   r   r3   rJ   r5   r"   rC   )rg   rh   ri   r   r   s        r9   test_estimator_weights_formatr    s    +=>D!r@RSD4L4,/!QE 4L4,/&9IRXE 
IIh	IIhH%u':':8'Drm   c                 F   [        U S9n[        SU S9n[        5       n[        R                  " SS/SS/SS	/S
S//5      n[        R                  " / SQ5      n[        SU4SU4SU4/SS9R                  XE5      n[        SU4SU4SU4/SSS9R                  XE5      n[        SU4SU4SU4/SSS9R                  XE5      n[        UR                  U5      R                  S5        [        UR                  U5      R                  S5        [        UR                  U5      R                  S5        [        UR                  U5      UR                  U5      5        [        UR                  U5      R                  SS5      R                  S5      UR                  U5      5        g)z:Check transform method of VotingClassifier on toy dataset.rZ   r\   r]   r   r   r   r   r   r   r   r   r   r)   r_   r`   rQ   r?   Tr'   r@   r   F)r      )r%   r   r*   r   r$   N)r   r   r   r   r   r   r3   r#   rT   shaper"   swapaxesreshape)	rg   rh   ri   rj   r4   r5   r   r   r   s	            r9   test_transformr    s   +=>D!r@RSD<D
4,ttTlS#JGHA
A4L4,>v	c!i 
 4L4,> 
c!i	 

 4L4,> 
c!i	 
 uq)//8uq)//8uq)//;eooa0%//!2DE##Aq)11&95??1;Mrm   zX, y, voterr_      )r^   c                 |   [        U5      n[        5       R                  U 5      nUR                  X1[        R
                  " UR                  5      S9  UR                  SS9  UR                  X1[        R
                  " UR                  5      S9  UR                  U5      nUR                  UR                  :X  d   eg )Nr   r   )r)   )	r   r   fit_transformr3   r   r   r  r   rS   )r4   r5   voterrJ   y_preds        r9    test_none_estimator_with_weightsr    s    : %LE--a0H	IIh)9I:		IIh)9I:]]8$F<<177"""rm   r   treerZ   r'   r   r   )idsc                     [        U 5      n SS/SS/SS//n/ SQn[        U S5      (       a   eU R                  X5        U R                  S:X  d   eg )	Nr$   r*   r%   r   r	  r  r   r$   r*   n_features_in_)r   rI   r3   r  )r   r4   r5   s      r9   test_n_features_inr  3  s]    & *C
Q!Q!Q AAs,----GGAM"""rm   r   ro   )r'   verbosec                    [         R                  " SS/SS/SS/SS//5      n[         R                  " / S	Q5      nS
n[        U 5      R                  X#5        [        R
                  " XAR                  5       S   5      (       d   eg )Nr   r   r   r   r   r   r   r   r   za\[Voting\].*\(1 of 2\) Processing lr, total=.*\n\[Voting\].*\(2 of 2\) Processing rf, total=.*\n$r   )r   r   r   r3   rer.   
readouterr)r   capsysr4   r5   patterns        r9   test_voting_verboser  O  s{    ( 	4,ttTlS#JGHA
A	=  
)88G..034444rm   c                      SS/SS/SS//n / SQn[        S[        5       4S	[        S
S94S/S9nUR                  X5        UR	                  5       nSS/n[        X45        g)z1Check get_feature_names_out output for regressor.r$   r*   r%   r   r	  r  r  r)   r  r   rZ   )ignorer   r  votingregressor_lrvotingregressor_treeN)r   r   r    r3   get_feature_names_outr#   )r4   r5   r@   	names_outexpected_namess        r9   %test_get_features_names_out_regressorr$  n  s|     Q!Q!Q AA#%&*:;
F JJq,,.I*,BCNy1rm   zkwargs, expected_namesrQ   )r@   r   )votingclassifier_lr0votingclassifier_lr1votingclassifier_lr2votingclassifier_tree0votingclassifier_tree1votingclassifier_tree2r@   r>   votingclassifier_lrvotingclassifier_treec           
          SS/SS/SS/SS//n/ SQn[        SS	S
[        SS94S[        SS94/0U D6nUR                  X#5        UR	                  U5      nUR                  5       nUR                  S   [        U5      :X  d   e[        Xa5        g)zBCheck get_feature_names_out for classifier for different settings.r$   r*   r%   r   r	  r  r   )r   r$   r*   r   r'   r)   r   rZ   r  Nr/   )	r   r   r   r3   rT   r!  r  r   r#   )kwargsr#  r4   r5   r@   X_transr"  s          r9   &test_get_features_names_out_classifierr0    s    & Q!Q!Q!S*AA %156+;<

 F JJqq!G,,.I==s>2222y1rm   c                     SS/SS/SS//n / SQn[        S[        S	S
94S[        S	S
94/SSS9nUR                  X5        Sn[        R
                  " [        US9   UR                  5         SSS5        g! , (       d  f       g= f)zJCheck that error is raised when voting="soft" and flatten_transform=False.r$   r*   r%   r   r	  r  r  r)   r   rZ   r  rQ   Fr  zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r-   N)r   r   r   r3   r0   r1   r2   r!  )r4   r5   r@   rW   s       r9   ,test_get_features_names_out_classifier_errorr2    s    
Q!Q!Q AA%156+;<
 F JJq	$  
z	-$$& 
.	-	-s   A55
BzEstimator, Childc                     [         R                  " SS/SS/SS//5      n/ SQn[        R                  " [        SS9   U " S	U" 5       /5      R                  X#/ S
QSS9  SSS5        g! , (       d  f       g= f)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   r   ar   metadataN)r   r   r0   r1   r2   r3   )	EstimatorChildr4   r5   s       r9   *test_routing_passed_metadata_not_supportedr:    sp     	1a&1a&1a&)*AA	M
 	5%'"#''IPS'T
 
 
s   !A''
A5)enable_metadata_routingc                 D    U " SU" 5       4/5      nUR                  5         g )Nsub_est)get_metadata_routing)r8  r9  r   s      r9   %test_get_metadata_routing_without_fitr?    s$     i)*
+Crm   propr   r7  c           
         [         R                  " SS/SS/SS//5      n/ SQn/ SQSpeU " S	U" [        5       S
9R                  " S0 US0D64SU" [        5       S
9R                  " S0 US0D64/5      nUR                  " X440 X"S:X  a  UOU0D6  UR
                   HI  nUS:X  a  X%0n	OX&0n	US   R                  n
[        U
5      (       d   eU
 H  n[        SUSSS.U	D6  M     MK     g)z3Test that metadata is routed correctly for Voting*.r   r$   r*   r   r  r4  r   r5  sub_est1)registryTsub_est2r   r3   )objmethodparentNr/   )	r   r   r   set_fit_requestr3   r'   rC  r   r   )r8  r9  r@  r4   r5   r   r7  r   r   r.  rC  r=  s               r9   +test_metadata_routing_for_voting_estimatorsrI    s    	1a&1a&1a&)*AA'8
 y{+;;KtTlK
 y{+;;KtTlK		
C GGASTO,C=RS^^	?"*F%FQ<((8}}}G#VeVvV   $rm   c                 B   [         R                  " SS/SS/SS//5      n/ SQn/ SQSpTU " S	U" 5       4/5      nS
UR                   S3n[        R                  " [
        [        R                  " U5      S9   UR                  X#XES9  SSS5        g! , (       d  f       g= f)zCTest that the right error is raised when metadata is not requested.r   r$   r*   r   r  r4  r   r5  r=  zb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr-   r6  N)	r   r   r   r0   r1   r2   r  escaper3   )r8  r9  r4   r5   r   r7  r   error_messages           r9   1test_metadata_routing_error_for_voting_estimatorsrM    s     	1a&1a&1a&)*AA'8
i)*
+C	!!& 0	6 
 
z=)A	BME 
C	B	Bs   6B
B)`r   r  numpyr   r0   sklearnr   r   sklearn.baser   r   r   sklearn.calibrationr   sklearn.datasetsr	   sklearn.dummyr
   sklearn.ensembler   r   r   r   r   sklearn.exceptionsr   sklearn.linear_modelr   r   sklearn.model_selectionr   r   r   sklearn.multiclassr   sklearn.naive_bayesr   sklearn.neighborsr   sklearn.preprocessingr   sklearn.svmr   %sklearn.tests.metadata_routing_commonr   r   r   r   sklearn.treer   r    sklearn.utils._testingr!   r"   r#   	load_irisirisdatatargetr4   r5   r  rJ   load_diabetesrU   r   markparametrizer:   rO   rX   rl   rq   ru   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r$  r0  r2  r:  r?  rI  rM  r/   rm   r9   <module>rg     s   : 	   , > > 6 ; (  . E S S 2 * 2 0   G  yyAaC$++1))!,!!T2S  2U	

 .012U	

 S"4"6789U	

 "#5#789q!fM>	
*+*.$,
 . !DHF>17h&N&*:Z5 D0>BB">  -/01qAB		
 +-.0a@A		
2#32# 	')*.A>?	
 	)q9:/Q?@	
 
./!  $#%$# ')*,#>? 	
 	)s;<-3?@ 	
&	5'&	52(  D9
	
 F	35LMN"2#"2('6 +,@R.ST
U	
U +,@R.ST - .	
 +,@R.ST /:!>?-W . @	WB +,@R.ST -F .	
Frm   