
    0Phj                        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j4                    Z5e5j6        ddddf         e5j7        cZ8Z9 e%            :                    e8          Z; ej<        d          \  Z=Z>ej?        @                    ddg idfd e            fgddgddfg          d             ZAd ZBd  ZCd! ZDd" ZEd# ZFd$ ZGd% ZHd& ZId' ZJd( ZKd) ZLej?        M                    d*          d+             ZNd, ZOd- ZPd. ZQd/ ZRd0 ZSej?        @                    d1e8e9 ed e            fd2 ed34          fg          fe=e> ed e            fd2 ed34          fg          fg          d5             ZTej?        @                    d6 ed e            fd7 e/d8          fg9           ed ed8          fd7 e.d8          fg9          gd:d;g<          d=             ZUej?        @                    d> ed e            fd2 ed?8          fgd@           ed ed?8          fd2 ed?8          fgd@          g          dA             ZVdB ZWej?        @                    dCdDddEg dFfdGdHidIdJgfg          dK             ZXdL ZYej?        @                    dMee)fee*fg          dN             ZZej?        @                    dMee)fee*fg           edO          dP                         Z[ej?        @                    dMee)fee*fg          ej?        @                    dQdRdSg           edO          dT                                     Z\ej?        @                    dMee)fee*fg           edO          dU                         Z]dS )Vz4Testing 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)
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                     t          di | }t          j        t          |          5  |                    t
          t                     d d d            d S # 1 swxY w Y   d S )Nmatch )r   pytestraises
ValueErrorfitXy)paramserr_msgensembles      b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/ensemble/tests/test_voting.py%test_voting_classifier_estimator_initr7   0   s      ))&))H	z	1	1	1  Q                 s   !AAAc                     t          dt                      fdt                      fgd          } d}d}t          j        t          |          5 }| j         d d d            n# 1 swxY w Y   t          |j        j        t                    sJ |t          |j        j                  v sJ t          | d          rJ |                     t          t                     t          | d          rJ d S )	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-   r.   AttributeErrorr@   
isinstancevalue	__cause__strhasattrr0   X_scaledr2   )eclf	inner_msg	outer_msg	exec_infos       r6   test_predictproba_hardvotingrL   C   s5   .001E;M;O;O3PQ  D
 DIEI	~Y	7	7	7 9              io/@@@@@IO5666666t_-----HHXqt_-------s   A##A'*A'c                     t          dt                      fdt                      fgd          } t          dt                      fg          }d}t	          j        t          |dz            5  |                     t                     d d d            n# 1 swxY w Y   t	          j        t          |dz            5  | 	                    t                     d d d            n# 1 swxY w Y   t	          j        t          |dz            5  | 
                    t                     d d d            n# 1 swxY w Y   t	          j        t          |d	z            5  |                    t                     d d d            n# 1 swxY w Y   t	          j        t          |d	z            5  |
                    t                     d d d            d S # 1 swxY w Y   d S )
Nr9   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-   r.   r   predictr1   r@   	transformX_r)rH   eregmsgs      r6   test_notfittedrU   U   s   .001E;M;O;O3PQ  D T>#3#34566D	C  
~S3E-E	F	F	F  Q              	~S3E-E	F	F	F  1              	~S3E-E	F	F	F  q              	~S3D-D	E	E	E  S              	~S3D-D	E	E	E  s                 sZ   .BBB>C%%C),C)D55D9<D9FF	F	.GGGc                    t          d|           }t          d|           }t                      }t          d|fd|fd|fgd	          }t	          |t
          t          d
          }|                                dk    sJ dS )z7Check classification by majority label on dataset iris.	liblinear)solverrandom_state
   n_estimatorsrY   r&   rfgnbr;   r<   accuracyscoring?N)r   r
   r   r   r   r1   r2   meanglobal_random_seedclf1clf2clf3rH   scoress         r6   test_majority_label_irisrj   k   s    [?QRRRD!r@RSSSD<<D4L4,>v  D T1a<<<F;;==C    c                     t          dd          } t          d          }t          d| fd|fgd          }|                     t          t
                                        t                    d	         d
k    sJ |                    t          t
                                        t                    d	         dk    sJ |                    t          t
                                        t                    d	         dk    sJ dS )zECheck voting classifier selects smaller class label in tie situation.{   rW   )rY   rX   rY   r&   r]   r;   r<   I   r'   r"   N)r   r
   r   r0   r1   r2   rP   )rf   rg   rH   s      r6   test_tie_situationrp   x   s    3{CCCD!s333DttTl'CFSSSD88Aq>>!!!$$R(A----88Aq>>!!!$$R(A----88Aq>>!!!$$R(A------rk   c                    t          |           }t          d|           }t                      }t          d|fd|fd|fgdg d	          }t	          |t
          t          d
          }|                                dk    sJ dS )z>Check classification by average probabilities on dataset iris.rn   rZ   r[   r&   r]   r^   rN   r"   r'   rZ   r%   r=   r(   r_   r`   rb   N)r   r
   r   r   r   rG   r2   rc   rd   s         r6   test_weights_irisrt      s    +=>>>D!r@RSSSD<<D4L4,>

  D
 T8Q
CCCF;;==Crk   c                     t          d          } t          d          }t          dd          }t          d| fd|fd|fgg d          }t          t          t          d	
          \  }}}}|                     ||                              |          }|                    ||                              |          }	|                    ||                              |          }
|                    ||                              |          }t          j        t          j	        ||	|
g          dg d          }t          ||d           t          d| fd|fd|fgd          }t          d| fd|fd|fgg d          }|                    ||           |                    ||           |                    |          }|                    |          }t          ||d           dS )zACheck weighted average regression prediction on diabetes dataset.rc   )strategymedianquantile皙?)rv   rx   rr   )r(   g      ?)	test_sizer   )axisr(   r'   decimalNr"   r"   r"   )r	   r   r   rR   y_rr0   rP   npaverageasarrayr   )reg1reg2reg3rS   	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                    r6   test_weights_regressorr      s/   6***D8,,,D:<<<D
$(D)J+=>


  D 0@SD0 0 0,IxH I..66x@@II..66x@@II..66x@@II..66x@@I
*

Iy)455Azzz  C 	32222'
$(D)J+=>   )
$(D)J+=>			   )Y///9i000&..x88N(00::OCCCCCCrk   c           	         t          |           }t          d|           }t                      }t          j        ddgddgdd	gd
dgddgddgg          }t          j        g d          }t          |                    ||                              |          g d           t          |                    ||                              |          g d           t          |                    ||                              |          g d           t          d|fd|fd|fgdg d          }t          |                    ||                              |          g d           t          d|fd|fd|fgdg d          }t          |                    ||                              |          g d           dS )z6Manually check predicted class labels for toy dataset.rn   rZ   r[   皙      333333ffffff333333皙皙?333333?g @gffffff?g@gffffff@)r"   r"   r"   r'   r'   r'   r&   r]   r^   r;   r~   rs   rN   N)	r   r
   r   r   arrayr!   r0   rP   r   )re   rf   rg   rh   r1   r2   rH   s          r6   test_predict_on_toy_problemr      s   +=>>>D!r@RSSSD<<D

d|dD\C:SzCQT:V	 	A 	###$$Atxx1~~--a002D2D2DEEEtxx1~~--a002D2D2DEEEtxx1~~--a002D2D2DEEE4L4,>		  D
 txx1~~--a002D2D2DEEE4L4,>		  D
 txx1~~--a002D2D2DEEEEErk   c                  
   t          d          } t          d          }t                      }t          j        ddgddgddgd	d
gg          }t          j        g d          }t          j        ddgddgddgddgg          }t          j        ddgddgddgddgg          }t          j        ddgddgddgddgg          }d|d         d         z  |d         d         z   |d         d         z   d z  }d|d!         d!         z  |d!         d!         z   |d!         d!         z   d z  }	d|d         d!         z  |d         d!         z   |d         d!         z   d z  }
d|d"         d!         z  |d"         d!         z   |d"         d!         z   d z  }t          d#| fd$|fd%|fgd&g d'(          }|                    ||                              |          }t          ||d         d         d!)           t          |	|d!         d!         d!)           t          |
|d         d!         d!)           t          ||d"         d!         d!)           d*}d+}t          j
        t          |,          5 }t          d#| fd$|fd%|fgd-.          }|                    ||                              |           d/d/d/           n# 1 swxY w Y   t          |j        j        t                    sJ |t          |j        j                  v sJ d/S )0z1Calculate predicted probabilities on toy dataset.rm   rn   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^   rN   )r'   r"   r"   rs   r|   r>   r?   r*   r;   r<   N)r   r
   r   r   r   r   r0   r@   r   r-   r.   rA   rB   rC   rD   rE   )rf   rg   rh   r1   r2   clf1_resclf2_resclf3_rest00t11t21t31rH   eclf_resrI   rJ   rK   s                    r6   !test_predict_proba_on_toy_problemr      s   3///D!s333D<<D
4,ttTlS#JGHHA
Ax$$$$		
 H x#sc3Z#sc3ZHIIHx
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1~~++A..HXa[^Q7777Xa[^Q7777Xa[^Q7777Xa[^Q7777CIEI	~Y	7	7	7 (9ttTlUDMB6
 
 
 	A$$Q'''	( ( ( ( ( ( ( ( ( ( ( ( ( ( ( io/@@@@@IO566666666s   *AJ::J>J>c                      t          dddd          \  } }t          t          d                    }t          d|fgd	
          }	 |                    | |           dS # t
          $ r Y dS w xY w)z7Check if error is raised for multilabel classification.r'   r"   Frm   )	n_classesn_labelsallow_unlabeledrY   linear)kernelovrr;   r<   N)r   r   r   r   r0   NotImplementedError)r1   r2   clfrH   s       r6   test_multilabelr     s    )aS  DAq c222
3
3C~fEEEDA   s   	A! !
A/.A/c                     t          d          } t          dd          }t                      }t          d| fd|fd|fgd	          }d
dgddgg dg dgd}t	          ||d          }|                    t          t                     dS )zCheck GridSearch support.r"   rn   r#   )rY   r\   r&   r]   r^   rN   r<   r   g      Y@r;   )      ?r   r   )r   r   r   )lr__Cr=   r(   r'   )	estimator
param_gridcvN)r   r
   r   r   r   r0   rG   r2   )rf   rg   rh   rH   r3   grids         r6   test_gridsearchr     s    1---D!qqAAAD<<D4L4,>v  D
 u6"#OO___5 F $6a@@@DHHXqrk   c                 d   t          |           }t          d|           }t                      }t          j        ddgddgdd	gd
dgg          }t          j        g d          }t          d|fd|fd|fgdd                              ||          }t          d|fd|fd|fgdd                              ||          }t          |                    |          |                    |                     t          |
                    |          |
                    |                     dS )z:Check parallel backend of VotingClassifier on toy dataset.rn   rZ   r[   r   r   r   r   r   r   r   r   r   r&   r]   r^   rN   r"   )r%   r=   n_jobsr'   N)r   r
   r   r   r   r   r0   r!   rP   r    r@   )re   rf   rg   rh   r1   r2   eclf1eclf2s           r6   test_parallel_fitr   )  sF   +=>>>D!r@RSSSD<<D
4,ttTlS#JGHHA
A4L4,>vVW  	c!Qii 
 4L4,>vVW  	c!Qii 
 u}}Q''q)9)9:::e11!44e6I6I!6L6LMMMMMrk   zignore::FutureWarningc           	         t          |           }t          d|           }t          d|           }t          d|fd|fd|fgd	
                              t
          t          t          j        t          t                    f                    }t          d|fd|fd|fgd	
                              t
          t                    }t          |                    t
                    |                    t
                               t          |                    t
                    |                    t
                               t          j                            |                               t          t                    f          }t          d|fgd	
          }|                    t
          t          |           |                    t
          t          |           t          |                    t
                    |                    t
                               t          |                    t
                    |                    t
                               t#                      }t          d|fd|fd|fgd	
          }d}	t%          j        t(          |	          5  |                    t
          t          |           ddd           n# 1 swxY w Y    G d dt*          t,                    }
 |
            }t%          j        t(          d          5  |                    t
          t          |           ddd           dS # 1 swxY w Y   dS )z1Tests sample_weight parameter of VotingClassifierrn   rZ   r[   T)probabilityrY   r&   r]   svcrN   r<   sample_weight)sizeknnzJUnderlying estimator KNeighborsClassifier does not support sample weights.r*   Nc                       e Zd Zd ZdS ).test_sample_weight.<locals>.ClassifierErrorFitc                      t          d          )Nz!Error unrelated to sample_weight.)	TypeError)selfrG   r2   r   s       r6   r0   z2test_sample_weight.<locals>.ClassifierErrorFit.fitc  s    ?@@@rk   N)__name__
__module____qualname__r0   r,   rk   r6   ClassifierErrorFitr   b  s(        	A 	A 	A 	A 	Ark   r   z Error unrelated to sample_weight)r   r
   r   r   r0   rG   r2   r   oneslenr!   rP   r    r@   randomRandomStateuniformr   r-   r.   r   r   r   )re   rf   rg   rh   r   r   r   eclf3clf4rT   r   r   s               r6   test_sample_weightr   =  s    +=>>>D!r@RSSSD4.@AAAD4L4,>v  	c(ARWc!ffY%7%7c88 
 4L4,>v  	c(A 
 u}}X..h0G0GHHHH%%u':':8'D'D   I))*<==EECPQFF9EUUM$vFFFE	IIh=)))HHXq-(((u}}X..X0F0FGGGH%%t'9'9('C'C    !!D4L5$-%?  E WC	y	,	,	, . .		(A}---. . . . . . . . . . . . . . .
A A A A A_m A A A 


C	y(J	K	K	K : :!=999: : : : : : : : : : : : : : : : : :s$   +"KK K"#MMMc            	          G d dt           t                    }  |             }t          d|fgd          }|                    t          t
          t          j        t          t
                    f                     dS )z:Check that VotingClassifier passes sample_weight as kwargsc                       e Zd ZdZd ZdS )1test_sample_weight_kwargs.<locals>.MockClassifierzAMock Classifier to check that sample_weight is received as kwargsc                     d|v sJ d S )Nr   r,   )r   r1   r2   argsr   s        r6   r0   z5test_sample_weight_kwargs.<locals>.MockClassifier.fitq  s    "m333333rk   N)r   r   r   __doc__r0   r,   rk   r6   MockClassifierr   n  s)        OO	4 	4 	4 	4 	4rk   r   mockrN   r<   r   N)	r   r   r   r0   r1   r2   r   r   r   )r   r   rH   s      r6   test_sample_weight_kwargsr   k  s    4 4 4 4 4- 4 4 4 .

CvFFFD 	HHQ#a&&!3!3H44444rk   c                 f   t          |           }t          d| d           }t                      }t          d|fd|fgdddg	                              t
          t                    }t          d|fd
|fgdddg	          }|                    |                              t
          t                     t          |	                    t
                    |	                    t
                               t          |                    t
                    |                    t
                               |j        d         d                                         |                                k    sJ |j        d         d                                         |                                k    sJ d S )Nrn   rZ   )r\   rY   	max_depthr&   r]   rN   r"   r'   )r=   r(   nb)r   r   )r   r
   r   r   r0   rG   r2   
set_paramsr!   rP   r    r@   r%   
get_params)re   rf   rg   rh   r   r   s         r6   !test_voting_classifier_set_paramsr   {  s   +=>>>D!&8D  D <<D
d|$VaV  	c(A 
 
d|$VaV  E 
!!(A...u}}X..h0G0GHHHH%%u':':8'D'D   Aq!,,..$//2C2CCCCCAq!,,..$//2C2CCCCCCCrk   c            	      	   t          d          } t          dd          }t                      }t          d| fd|fd|fgdg d	
                              t
          t                    }t          d| fd|fd|fgdg d
          }|                    d                              t
          t                     t          |	                    t
                    |	                    t
                               t          |j                  d         dk    sJ t          |j                  dk    sJ t          d |j        D                       sJ |                                d         dk    sJ |                    d                              t
          t                     |                    d                              t
          t                     t          |	                    t
                    |	                    t
                               t!          |                    t
                    |                    t
                               d}t%          j        t(          |          5  |                    ddd                              t
          t                     d d d            n# 1 swxY w Y   t+          j        dgdgg          }t+          j        ddg          }t          d|fd|fgdddgd                              ||          }t          d|fd|fgdddgd          }|                    d                              ||           t!          |                    |          t+          j        ddgddggddgddggg                     t!          |                    |          t+          j        ddgddggg                     |                    d           |                    d           t          |                    |          t+          j        ddgddgg                     t          |                    |          t+          j        dgdgg                     d S )Nrm   rn   rZ   r[   r&   r]   r   r;   )r"   r   r   rs   )r"   r"   r   drop)r]   r'   c              3   N   K   | ] }t          |t          t          f          V  !d S )N)rB   r   r   ).0ests     r6   	<genexpr>z*test_set_estimator_drop.<locals>.<genexpr>  sC        >A
3+Z899     rk   rN   )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   r0   r1   r2   r   r!   rP   dictr%   r   estimators_allr   r    r@   r-   r.   r/   r   r   rQ   )rf   rg   rh   r   r   rT   X1y1s           r6   test_set_estimator_dropr     s    3///D!rDDDD<<D4L4,t=   
c!Qii	 
 4L4,t=  E
 
##Aq)))u}}Q''q)9)9::: !!$'61111u !!Q&&&&  EJEV        d#v----	F##''1---	F##''1---u}}Q''q)9)9:::e11!44e6I6I!6L6LMMM
@C	z	-	-	- D DFv&99==aCCCD D D D D D D D D D D D D D D 
A3*		B	1a&		B4L4,/C	  
 
c"bkk 
 4L4,/C	  E 
##B+++
C:Sz*c3Z#s,DEFF   eoob1128sCj3PS*=U<V3W3WXXX	F###	F###ur**BHq!fq!f5E,F,FGGGur**BHqcA3Z,@,@AAAAAs   ;7J>>KKc                    t          |           }t          d|           }t          d|fd|fgddgd	          }t          d|fd|fgt          j        d
          d	          }|                    t          t                     |                    t          t                     t          |	                    t                    |	                    t                               d S )Nrn   rZ   r[   r&   r]   r"   r'   rN   )r%   r(   r=   )r"   r'   )
r   r
   r   r   r   r0   rG   r2   r    r@   )re   rf   rg   r   r   s        r6   test_estimator_weights_formatr     s    +=>>>D!r@RSSSD4L4,/!Q  E 4L4,/&9I9IRX  E 
IIh	IIhH%%u':':8'D'D    rk   c                    t          |           }t          d|           }t                      }t          j        ddgddgdd	gd
dgg          }t          j        g d          }t          d|fd|fd|fgd                              ||          }t          d|fd|fd|fgdd                              ||          }t          d|fd|fd|fg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.rn   rZ   r[   r   r   r   r   r   r   r   r   r   r&   r]   r^   rN   r<   Tr%   r=   r   F)r      )r#   r   r'   r   r"   N)r   r
   r   r   r   r   r0   r!   rQ   shaper    swapaxesreshape)	re   rf   rg   rh   r1   r2   r   r   r   s	            r6   test_transformr    s   +=>>>D!r@RSSSD<<D
4,ttTlS#JGHHA
A4L4,>v  	c!Qii 
 4L4,>   
c!Qii	 

 4L4,>   
c!Qii	 
 uq))/888uq))/888uq))/;;;eooa00%//!2D2DEEE##Aq))11&995??1;M;M    rk   zX, y, voterr]      )r\   c                    t          |          }t                                          |           }|                    ||t	          j        |j                             |                    d           |                    ||t	          j        |j                             |                    |          }|j        |j        k    sJ d S )Nr   r   )r&   )	r   r   fit_transformr0   r   r   r   r   rP   )r1   r2   voterrG   y_preds        r6    test_none_estimator_with_weightsr    s    : %LLE--a00H	IIh)9)9I:::		IIh)9)9I:::]]8$$F<17""""""rk   r   treern   r%   r   r   )idsc                     ddgddgddgg}g d}t          | d          rJ |                     ||           | j        dk    sJ d S )	Nr"   r'   r#   r   r  r   r   r"   r'   n_features_in_)rF   r0   r  )r   r1   r2   s      r6   test_n_features_inr  +  sg    & Q!Q!Q A		As,-----GGAqMMM""""""rk   r   rm   )r%   verbosec                    t          j        ddgddgddgddgg          }t          j        g d	          }d
}t          |                               ||           t	          j        ||                                d                   sJ d S )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   r0   rer+   
readouterr)r   capsysr1   r2   patterns        r6   test_voting_verboser  F  s    ( 	4,ttTlS#JGHHA
A	=  
)A8GV..0034444444rk   c                     ddgddgddgg} g d}t          dt                      fd	t          d
          fdg          }|                    | |           |                                }ddg}t          ||           dS )z1Check get_feature_names_out output for regressor.r"   r'   r#   r   r  r   r  r&   r	  r   rn   )ignorer   r
  votingregressor_lrvotingregressor_treeN)r   r   r   r0   get_feature_names_outr!   )r1   r2   r=   	names_outexpected_namess        r6   %test_get_features_names_out_regressorr  e  s     Q!Q!Q A		A#%%&*:::;
  F JJq!,,..I*,BCNy.11111rk   zkwargs, expected_namesrN   )r=   r   )votingclassifier_lr0votingclassifier_lr1votingclassifier_lr2votingclassifier_tree0votingclassifier_tree1votingclassifier_tree2r=   r;   votingclassifier_lrvotingclassifier_treec           	      h   ddgddgddgddgg}g d}t          dd	d
t          d          fdt          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   r   )r   r"   r'   r   r%   r&   r   rn   r	  Nr,   )	r   r   r   r0   rQ   r  r   r   r!   )kwargsr  r1   r2   r=   X_transr  s          r6   &test_get_features_names_out_classifierr*  y  s    & Q!Q!Q!S*AA  %15556+;;;<

  F JJq!q!!G,,..I=s>222222y.11111rk   c                  L   ddgddgddgg} g d}t          dt          d	
          fdt          d	
          fgdd          }|                    | |           d}t	          j        t          |          5  |                                 ddd           dS # 1 swxY w Y   dS )zJCheck that error is raised when voting="soft" and flatten_transform=False.r"   r'   r#   r   r  r   r  r&   r   rn   r	  rN   Fr   zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r*   N)r   r   r   r0   r-   r.   r/   r  )r1   r2   r=   rT   s       r6   ,test_get_features_names_out_classifier_errorr,    s   
Q!Q!Q A		A%15556+;;;<
   F JJq!	$  
z	-	-	- ' '$$&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   7BB BzEstimator, Childc                    t          j        ddgddgddgg          }g d}t          j        t          d          5   | d	 |            g                              ||g d
d           ddd           dS # 1 swxY w Y   dS )zTest 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-   r.   r/   r0   )	EstimatorChildr1   r2   s       r6   *test_routing_passed_metadata_not_supportedr4    s     	1a&1a&1a&)**A		A	M
 
 
 U U 		5%%''"##''1IIIPS'TTTU U U U U U U U U U U U U U U U U Us   /A99A= A=)enable_metadata_routingc                 Z     | d |            fg          }|                                  d S )Nsub_est)get_metadata_routing)r2  r3  r   s      r6   %test_get_metadata_routing_without_fitr9    s9     )i)*
+
+Crk   propr   r1  c           
         t          j        ddgddgddgg          }g d}g dd}} | d	  |t                      
          j        di |difd  |t                      
          j        di |difg          } |j        ||fi ||dk    r|n|i |j        D ]D}|dk    r||i}	n||i}	|d         j        }
t          |
          sJ |
D ]}t          d|ddd|	 EdS )z3Test that metadata is routed correctly for Voting*.r   r"   r'   r   r   r.  r~   r/  sub_est1)registryTsub_est2r   r0   )objmethodparentNr,   )	r   r   r   set_fit_requestr0   r%   r=  r   r   )r2  r3  r:  r1   r2   r   r1  r   r   r(  r=  r7  s               r6   +test_metadata_routing_for_voting_estimatorsrC    s    	1a&1a&1a&)**A		A'ii8M
) ;y{{+++;KKtTlKK
 ;y{{+++;KKtTlKK		
 C CGAqSSTDO,C,C==RSSS^ 	W 	W	?""M*FFH%FQ<(8}} 	W 	WG#VeVVvVVVV	W	W 	Wrk   c                 T   t          j        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          j        |                    5  |                    ||||           ddd           dS # 1 swxY w Y   dS )zCTest that the right error is raised when metadata is not requested.r   r"   r'   r   r   r.  r~   r/  r7  zb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr*   r0  N)	r   r   r   r-   r.   r/   r  escaper0   )r2  r3  r1   r2   r   r1  r   error_messages           r6   1test_metadata_routing_error_for_voting_estimatorsrG    s*    	1a&1a&1a&)**A		A'ii8M
)i)*
+
+C	6!&	6 	6 	6 
 
z=)A)A	B	B	B F F1MHEEEF F F F F F F F F F F F F F F F F Fs   6BB!$B!)^r   r  numpyr   r-   sklearnr   r   sklearn.baser   r   r   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targetr1   r2   r  rG   load_diabetesrR   r   markparametrizer7   rL   rU   rj   rp   rt   r   r   r   r   r   r   filterwarningsr   r   r   r   r   r  r  r  r  r  r*  r,  r4  r9  rC  rG  r,   rk   r6   <module>ra     s   : : 				      , , , , , , , , > > > > > > > > > > ; ; ; ; ; ; ( ( ( ( ( (            . - - - - - E E E E E E E E S S S S S S S S S S 2 2 2 2 2 2 * * * * * * 2 2 2 2 2 2 0 0 0 0 0 0                  G F F F F F F F          xyAaC$+1>))!,,!8!T222S  2U	

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