
    Kik                        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  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K/J0r0J1r1  SSK2J3r3J4r4J5r5  \Rl                  " 5       r7\7Rp                  SS2SS24   \7Rr                  sr:r;\'" 5       Ry                  \:5      r=\R|                  " SS9u  r?r@\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       rCS! rDS" rES# rFS$ rGS% rHS& rIS' rJS( rKS) rLS* rMS+ rNS, rOS- rPS. rQS/ rRS0 rSS1 rT\R                  R                  S2\:\;\" S\" 5       4S3\" S4S594/5      4\?\@\" S\" 5       4S3\" S4S594/5      4/5      S6 5       rU\R                  R                  S7\" S\" 5       4S8\1" SS994/S:9\" S\" SS994S8\0" SS994/S:9/S;S</S=9S> 5       rV\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       rWSC rX\R                  R                  SDSESSF./ SGQ4SHSI0SJSK/4/5      SL 5       rYSM rZ\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)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      d/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/ensemble/tests/test_voting.py%test_voting_classifier_estimator_initr9   1   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   r/   r0   AttributeErrorrB   
isinstancevalue	__cause__strhasattrr2   X_scaledr4   )eclf	inner_msg	outer_msg	exec_infos       r8   test_predictproba_hardvotingrN   L   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
   r/   r0   r   predictr3   rB   	transformX_r)rJ   eregmsgs      r8   test_notfittedrW   ^   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_estimatorsrZ   r(   rfgnbr=   r>   accuracyscoring?N)r   r   r   r   r   r3   r4   meanglobal_random_seedclf1clf2clf3rJ   scoress         r8   test_majority_label_irisrk   t   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.{   rY   r(   r^   r=   r>   4   r)   r#   N)r   r   r   r2   r3   r4   rR   )rg   rh   rJ   s      r8   test_tie_situationrp      s    3/D!s3DttTl'CFSD88Aq>!!!$R(A---88Aq>!!!$R(A---88Aq>!!!$R(A---rl   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.rY   r[   r\   r(   r^   r_   rP   r#   r)   r[   r&   r?   r*   r`   ra   rc   N)r   r   r   r   r   rI   r4   rd   re   s         r8   test_weights_irisrt      sm    +=>D!r@RSD<D4L4,>D
 T8Q
CF;;=Crl   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.rd   )strategymedianquantile皙?)rv   rx   rr   )r*   g      ?)	test_sizer   )axisr*   r)   decimalNr#   r#   r#   )r
   r   r   rT   y_rr2   rR   npaverageasarrayr    )reg1reg2reg3rU   	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                    r8   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Crl   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.rY   r[   r\   皙      333333ffffff333333皙皙?333333?g @gffffff?g@gffffff@)r#   r#   r#   r)   r)   r)   r(   r^   r_   r=   r~   rs   rP   N)	r   r   r   r   arrayr"   r2   rR   r   )rf   rg   rh   ri   r3   r4   rJ   s          r8   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Erl   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.rn   rY   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?ry   333333?ffffff?g5w?g9=qX?g_?g$/AY?              ?r)   r      r#   r$   r(   r^   r_   rP   )r)   r#   r#   rs   r|   r@   rA   r,   r=   r>   N)r   r   r   r   r   r   r2   rB   r    r/   r0   rC   rD   rE   rF   rG   )rg   rh   ri   r3   r4   clf1_resclf2_resclf3_rest00t11t21t31rJ   eclf_resrK   rL   rM   s                    r8   !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#   Frn   )	n_classesn_labelsallow_unlabeledrZ   linear)kernelovrr=   r>   N)r	   r   r   r   r2   NotImplementedError)r3   r4   clfrJ   s       r8   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#   rY   r$   )rZ   r]   r(   r^   r_   rP   r>   r   g      Y@r=   )      ?r   r   )r   r   r   )lr__Cr?   r*   r)   )	estimator
param_gridcvN)r   r   r   r   r   r2   rI   r4   )rg   rh   ri   rJ   r5   grids         r8   test_gridsearchr     s}    1-D!qqAD<D4L4,>vD
 u6"#_5F $a@DHHXqrl   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.rY   r[   r\   r   r   r   r   r   r   r   r   r   r(   r^   r_   rP   r#   )r&   r?   n_jobsr)   N)r   r   r   r   r   r   r2   r"   rR   r!   rB   )rf   rg   rh   ri   r3   r4   eclf1eclf2s           r8   test_parallel_fitr   2  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Mrl   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 VotingClassifierrY   r[   r\   F)r7   r(   r^   svcrP   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>.ClassifierErrorFitii  c                     [        S5      e)Nz!Error unrelated to sample_weight.)	TypeError)selfrI   r4   r   s       r8   r2   2test_sample_weight.<locals>.ClassifierErrorFit.fitj  s    ?@@rl   r.   N)__name__
__module____qualname____firstlineno__r2   __static_attributes__r.   rl   r8   ClassifierErrorFitr   i  s    	Arl   r   z Error unrelated to sample_weight)r   r   r   r   r   r2   rI   r4   r   oneslenr"   rR   r!   rB   randomRandomStateuniformr   r/   r0   r   r   r   )rf   rg   rh   ri   r   r   r   eclf3clf4rV   r   r   s               r8   test_sample_weightr   E  s4   +=>D!r@RSD!#3E"FQVWD4L4,>v	c(ARWWc!fY%7c8 
 4L4,>v	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>.MockClassifieriu  zAMock Classifier to check that sample_weight is received as kwargsc                     SU;   d   eg )Nr   r.   )r   r3   r4   argsr   s        r8   r2   5test_sample_weight_kwargs.<locals>.MockClassifier.fitx  s    "m333rl   r.   N)r   r   r   r   __doc__r2   r   r.   rl   r8   MockClassifierr   u  s
    O	4rl   r   mockrP   r>   r   N)	r   r   r   r2   r3   r4   r   r   r   )r   r   rJ   s      r8   test_sample_weight_kwargsr   r  sO    4- 4 
CvFD 	HHQ#a&!3H4rl   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 )NrY   r[   )r]   rZ   	max_depthr(   r^   rP   r#   r)   )r?   r*   nb)r   r   )r   r   r   r   r2   rI   r4   
set_paramsr"   rR   r!   rB   r&   
get_params)rf   rg   rh   ri   r   r   s         r8   !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Crl   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)Nrn   rY   r[   r\   r(   r^   r   r=   )r#   r   r   rs   )r#   r#   r   drop)r^   r)   c              3   N   #    U  H  n[        U[        [        45      v   M     g 7f)N)rD   r   r   ).0ests     r8   	<genexpr>*test_set_estimator_drop.<locals>.<genexpr>  s$      EVc
3+Z899EVs   #%rP   )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   r2   r3   r4   r   r"   rR   dictr&   r   estimators_allr   r!   rB   r/   r0   r1   r   r   rS   )rg   rh   ri   r   r   rV   X1y1s           r8   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 )NrY   r[   r\   r(   r^   r#   r)   rP   )r&   r*   r?   )r#   r)   )
r   r   r   r   r   r2   rI   r4   r!   rB   )rf   rg   rh   r   r   s        r8   test_estimator_weights_formatr     s    +=>D!r@RSD4L4,/!QE 4L4,/&9IRXE 
IIh	IIhH%u':':8'Drl   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.rY   r[   r\   r   r   r   r   r   r   r   r   r   r(   r^   r_   rP   r>   Tr&   r?   r   F)r      )r$   r   r)   r   r#   N)r   r   r   r   r   r   r2   r"   rS   shaper!   swapaxesreshape)	rf   rg   rh   ri   r3   r4   r   r   r   s	            r8   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rl   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_transformr2   r   r   r  r   rR   )r3   r4   voterrI   y_preds        r8    test_none_estimator_with_weightsr    s    : %LE--a0H	IIh)9I:		IIh)9I:]]8$F<<177"""rl   r   treerY   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   rH   r2   r  )r   r3   r4   s      r8   test_n_features_inr  2  s]    & *C
Q!Q!Q AAs,----GGAM"""rl   r   rn   )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   r2   rer-   
readouterr)r   capsysr3   r4   patterns        r8   test_voting_verboser  N  s{    ( 	4,ttTlS#JGHA
A	=  
)88G..034444rl   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   rY   )ignorer   r  votingregressor_lrvotingregressor_treeN)r   r   r   r2   get_feature_names_outr"   )r3   r4   r?   	names_outexpected_namess        r8   %test_get_features_names_out_regressorr"  m  s|     Q!Q!Q AA#%&*:;
F JJq,,.I*,BCNy1rl   zkwargs, expected_namesrP   )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   rY   r  Nr.   )	r   r   r   r2   rS   r  r  r   r"   )kwargsr!  r3   r4   r?   X_transr   s          r8   &test_get_features_names_out_classifierr.    s    & Q!Q!Q!S*AA %156+;<

 F JJqq!G,,.I==s>2222y1rl   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   rY   r  rP   Fr  zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r,   N)r   r   r   r2   r/   r0   r1   r  )r3   r4   r?   rV   s       r8   ,test_get_features_names_out_classifier_errorr0    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   r/   r0   r1   r2   )	EstimatorChildr3   r4   s       r8   *test_routing_passed_metadata_not_supportedr8    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)r6  r7  r   s      r8   %test_get_metadata_routing_without_fitr=    s$     i)*
+Crl   propr   r5  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  r2  r~   r3  sub_est1)registryTsub_est2r   r2   )objmethodparentNr.   )	r   r   r   set_fit_requestr2   r&   rA  r   r   )r6  r7  r>  r3   r4   r   r5  r   r   r,  rA  r;  s               r8   +test_metadata_routing_for_voting_estimatorsrG    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   $rl   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  r2  r~   r3  r;  zb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr,   r4  N)	r   r   r   r/   r0   r1   r  escaper2   )r6  r7  r3   r4   r   r5  r   error_messages           r8   1test_metadata_routing_error_for_voting_estimatorsrK    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   r/   sklearnr   r   sklearn.baser   r   r   sklearn.calibrationr   sklearn.datasetsr	   sklearn.dummyr
   sklearn.ensembler   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targetr3   r4   r	  rI   load_diabetesrT   r   markparametrizer9   rN   rW   rk   rp   rt   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r.  r0  r8  r=  rG  rK  r.   rl   r8   <module>re     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rl   