
    Ki<                     >   S r SSKrSSKrSSKJrJr  SSKrSSKrSSK	r	SSK
Jr  SSKJr  SSKJrJrJr  SSKJrJr  SSKJrJrJrJrJrJrJrJr  SS	K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*J+r+  SSK,J-r-  SSK.J/r/J0r0  SSK1J2r2  SSK3J4r4J5r5  SSK6J7r7J8r8J9r9J:r:J;r;  SSK<J=r=J>r>  SSK?J@r@  SSKAJBrBJCrCJDrD  SSKEJFrFJGrG  \@" S5      rH\" 5       rI\HR                  \IR                  R                  5      rM\IR                  \M   \IlN        \IR                  \M   \IlK        \" 5       rO\HR                  \OR                  R                  5      rM\OR                  \M   \OlN        \OR                  \M   \OlK        S rP\	R                  R                  S\" \G\F-   SSSSS.SSSSS.SSSS .SSSS!.// S"Q5      5      S# 5       rSS$ rT\	R                  R                  S%\G\F-   5      S& 5       rU " S' S(\5      rVS) rWS* rXS+ rYS, rZS- r[S. r\S/ r]S0 r^\	R                  R                  S1 5       r`S2 ra\	R                  R                  S3 5       rbS4 rcSbS5 jrdS6 reS7 rfS8 rgS9 rhS: riS; rj " S< S=\5      rk " S> S?\5      rl\	R                  R                  S@\\/5      \	R                  R                  SASS/5      \	R                  R                  SBSS/5      \	R                  R                  SCSDSE/5      SF 5       5       5       5       rmSG rnSH roSI rpSJ rqSK rrSL rsSM rtSN ruSO rvSP rwSQ rxSR ry\	R                  R                  SS\" \" STSU95      S4\" \" STSU95      S4\" \#" 5       5      S4\" \5" 5       5      S4/5      SV 5       rz\" SSW9\	R                  R                  SX\" \" STSY9STSZ9\" \" STSY9STSZ9/5      S[ 5       5       r{\	R                  R                  S\\9S]S]4\8S^S_4\7S^S]4/5      \" SSW9S` 5       5       r|\	R                  R                  SX\" \" STSY9STSZ9\" \" STSY9STSZ9/5      Sa 5       r}g)czE
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
    N)cycleproduct)config_context)BaseEstimator)load_diabetes	load_irismake_hastie_10_2)DummyClassifierDummyRegressor)AdaBoostClassifierAdaBoostRegressorBaggingClassifierBaggingRegressorHistGradientBoostingClassifierHistGradientBoostingRegressorRandomForestClassifierRandomForestRegressor)_get_n_samples_bootstrap)SelectKBest)LogisticRegression
Perceptron)GridSearchCVParameterGridtrain_test_split)KNeighborsClassifierKNeighborsRegressor)make_pipeline)FunctionTransformerscale)SparseRandomProjection)SVCSVR)"ConsumingClassifierWithOnlyPredict)ConsumingClassifierWithoutPredictLogProba&ConsumingClassifierWithoutPredictProba	_Registrycheck_recorded_metadata)DecisionTreeClassifierDecisionTreeRegressor)check_random_state)assert_allcloseassert_array_almost_equalassert_array_equal)CSC_CONTAINERSCSR_CONTAINERSc                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        SS/SS/SS/SS/S	.5      nS [        5       [        S
S9[        SS9[        5       [        5       /n[        U[        U5      5       H2  u  px[        SUU SS.UD6R                  X5      R                  U5        M4     g )Nr   random_state      ?      ?      TFmax_samplesmax_features	bootstrapbootstrap_features   max_iter   )	max_depth)	estimatorr2   n_estimators )r*   r   irisdatatargetr   r
   r   r(   r   r!   zipr   r   fitpredict)	rngX_trainX_testy_trainy_testgrid
estimatorsparamsrA   s	            e/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/ensemble/tests/test_bagging.pytest_classificationrS   H   s    
Q
C'7		4;;S($GW :F#'-		
D 	B+J !uZ'89 	
	
 		

 #g
 :    z sparse_container, params, methodr3   r?   Tr7   r4   r6   Fr9   r:   r;   r8   r:   r;   )rI   predict_probapredict_log_probadecision_functionc                 b    " S S[         5      n[        S5      n[        [        [        R
                  5      [        R                  US9u  pVpxU " U5      n	U " U5      n
[        S
U" SSS9SS	.UD6R                  X5      n[        X5      " U
5      n[        S
U" SSS9SS	.UD6R                  XW5      n[        X5      " U5      n[        X5        [        U	5      nUR                   Vs/ s H  nUR                  PM     nn[        U Vs/ s H  nUU:H  PM
     sn5      (       d   eg s  snf s  snf )Nc                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )-test_sparse_classification.<locals>.CustomSVC   7SVC variant that records the nature of the training setc                 F   > [         TU ]  X5        [        U5      U l        U $ NsuperrH   type
data_type_selfXy	__class__s      rR   rH   1test_sparse_classification.<locals>.CustomSVC.fit       GK"1gDOKrT   rd   __name__
__module____qualname____firstlineno____doc__rH   __static_attributes____classcell__ri   s   @rR   	CustomSVCr\          E	 	rT   rv   r   r1   linearovr)kerneldecision_function_shaper5   rA   r2   rC   )r!   r*   r   r   rD   rE   rF   r   rH   getattrr,   rc   estimators_rd   all)sparse_containerrQ   methodrv   rJ   rK   rL   rM   rN   X_train_sparseX_test_sparsesparse_classifiersparse_resultsdense_classifierdense_resultssparse_typeitypests                      rR   test_sparse_classificationr   i   sC   4C  Q
C'7dii$++C($GW &g.N$V,M) 8UK  
c."	 
 .7FN ) 8UK  
c'	 
 ,5f=Mn<~&K#4#@#@A#@aQ\\#@EA%0%Q[ %01111 B0s   (D'	D,c                  n   [        S5      n [        [        R                  S S [        R                  S S U S9u  pp4[        SS/SS/SS/SS/S.5      nS [        5       [        5       [        5       [        5       4 H7  nU H.  n[        S
X`S	.UD6R                  X5      R                  U5        M0     M9     g )Nr   2   r1   r3   r4   TFr7   r|   rC   )r*   r   diabetesrE   rF   r   r   r)   r   r"   r   rH   rI   )rJ   rK   rL   rM   rN   rO   rA   rQ   s           rR   test_regressionr      s    
Q
C'7crHOOCR0s($GW : #J#'-		
D 		 FMyMfMQQgfo rT   r   c                    [        S5      n[        [        R                  S S [        R                  S S US9u  p#pE " S S[
        5      nSSSSS	.S
SSSS	.SSSS.SSSS./nU " U5      nU " U5      n	U H  n
[        SU" 5       SS.U
D6R                  X5      nUR                  U	5      n[        SU" 5       SS.U
D6R                  X$5      R                  U5      n[        U5      nUR                   Vs/ s H  oR                  PM     nn[        X5        [        U Vs/ s H  nUU:H  PM
     sn5      (       d   e[        X5        M     g s  snf s  snf )Nr   r   r1   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ ))test_sparse_regression.<locals>.CustomSVR   r^   c                 F   > [         TU ]  X5        [        U5      U l        U $ r`   ra   re   s      rR   rH   -test_sparse_regression.<locals>.CustomSVR.fit   rk   rT   rl   rm   ru   s   @rR   	CustomSVRr      rw   rT   r   r3   r?   Tr7   r4   r6   FrU   rV   r5   r|   rC   )r*   r   r   rE   rF   r"   r   rH   rI   rc   r~   rd   r,   r   )r   rJ   rK   rL   rM   rN   r   parameter_setsr   r   rQ   r   r   r   r   r   r   r   s                     rR   test_sparse_regressionr      s~    Q
C'7crHOOCR0s($GWC  "&		
 "&		
 dK$eLN" &g.N$V,M , 
k
5;

#n
& 	 +22=A My{MfMS"WV_ 	 >*'8'D'DE'D!'DE!.@e4eA$e45555!.@' ! F 5s   5E E
c                        \ rS rSrS rS rSrg)DummySizeEstimator   c                 b    UR                   S   U l        [        R                  " U5      U l        g Nr   )shapetraining_size_joblibhashtraining_hash_rf   rg   rh   s      rR   rH   DummySizeEstimator.fit   s"    ggaj$kk!nrT   c                 H    [         R                  " UR                  S   5      $ r   )nponesr   rf   rg   s     rR   rI   DummySizeEstimator.predict  s    wwqwwqz""rT   )r   r   N)rn   ro   rp   rq   rH   rI   rs   rC   rT   rR   r   r      s    -#rT   r   c                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        5       R                  X5      n[        [        5       SSU S9R                  X5      nUR                  X5      UR                  X5      :X  d   e[        [        5       SSU S9R                  X5      nUR                  X5      UR                  X5      :  d   e[        [        5       SS9R                  X5      n/ nUR                   H=  nUR                  UR                  S   :X  d   eUR                  UR                  5        M?     [        [!        U5      5      [        U5      :X  d   eg )Nr   r1   r4   F)rA   r8   r:   r2   T)rA   r:   )r*   r   r   rE   rF   r)   rH   r   scorer   r~   r   r   appendr   lenset)rJ   rK   rL   rM   rN   rA   ensembletraining_hashs           rR   test_bootstrap_samplesr     s^   
Q
C'7xS($GW &'++G=I  ')	
 
c'  ??7,w0PPPP  ')	
 
c'  ??7,x~~g/OOOO
  *<*>$OSSH M))	''7==+;;;;Y556 * s=!"c-&8888rT   c                  V   [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSU S9R                  X5      nUR                   HG  n[        R                  R                  S   [        R                  " U5      R                  S   :X  a  MG   e   [        [        5       SSU S9R                  X5      nUR                   HG  n[        R                  R                  S   [        R                  " U5      R                  S   :  a  MG   e   g )Nr   r1   r4   F)rA   r9   r;   r2   r5   T)r*   r   r   rE   rF   r   r)   rH   estimators_features_r   r   unique)rJ   rK   rL   rM   rN   r   featuress          rR   test_bootstrap_featuresr   1  s   
Q
C'7xS($GW  ') 	
 
c'  11}}""1%8)<)B)B1)EEEE 2  ')	
 
c'  11}}""1%		((;(A(A!(DDDD 2rT   c            	      v   [        S5      n [        [        R                  [        R                  U S9u  pp4[
        R                  " SSS9   [        [        5       U S9R                  X5      n[        [
        R                  " UR                  U5      SS9[
        R                  " [        U5      5      5        [        UR                  U5      [
        R                  " UR!                  U5      5      5        [        [#        5       U SS	9R                  X5      n[        [
        R                  " UR                  U5      SS9[
        R                  " [        U5      5      5        [        UR                  U5      [
        R                  " UR!                  U5      5      5        S S S 5        g ! , (       d  f       g = f)
Nr   r1   ignore)divideinvalidr|   r5   )axis   )rA   r2   r8   )r*   r   rD   rE   rF   r   errstater   r(   rH   r,   sumrW   r   r   exprX   r   rJ   rK   rL   rM   rN   r   s         rR   test_probabilityr   M  sH   
Q
C'7		4;;S($GW 
Hh	7$,.S

#g
 	 	"FF8))&1:BGGCK<P	
 	"""6*BFF83M3Mf3U,V	

 %(*!

#g
 	 	"FF8))&1:BGGCK<P	
 	"""6*BFF83M3Mf3U,V	
/ 
8	7	7s   EF**
F8c            
         [        S5      n [        [        R                  [        R                  U S9u  pp4[        5       [        5       4 H  n[        USSSU S9R                  X5      nUR                  X$5      n[        XvR                  -
  5      S:  d   eSn[        R                  " [        US9   [        US	SSU S9nUR                  X5        S S S 5        M     g ! , (       d  f       M  = f)
Nr   r1   d   TrA   rB   r:   	oob_scorer2   皙?{Some inputs do not have OOB scores. This probably means too few estimators were used to compute any reliable oob estimates.matchr5   )r*   r   rD   rE   rF   r(   r!   r   rH   r   abs
oob_score_pytestwarnsUserWarning)	rJ   rK   rL   rM   rN   rA   clf
test_scorewarn_msgs	            rR   test_oob_score_classificationr   p  s     Q
C'7		4;;S($GW -.6	
 #g
 	 YYv.
:./#555J 	 \\+X6## C GGG% 76% 7$ 76s   2C
C-	c            	         [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSSU S9R                  X5      nUR                  X$5      n[        XeR                  -
  5      S:  d   eSn[        R                  " [        US9   [        [        5       S	SSU S9nUR                  X5        S S S 5        g ! , (       d  f       g = f)
Nr   r1   r   Tr   r   r   r   r5   )r*   r   r   rE   rF   r   r)   rH   r   r   r   r   r   r   )	rJ   rK   rL   rM   rN   r   r   r   regrs	            rR   test_oob_score_regressionr     s     Q
C'7xS($GW ') 
c'  6*JzNN*+c111	F  
k	2+-
 	" 
3	2	2s   #'C
C!c                  <   [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSSU S9R                  X5      n[        5       R                  X5      n[        UR                  U5      UR                  U5      5        g )Nr   r1   r5   F)rA   rB   r:   r;   r2   )
r*   r   r   rE   rF   r   r   rH   r,   rI   )rJ   rK   rL   rM   rN   clf1clf2s          rR   test_single_estimatorr     s    
Q
C'7xS($GW %'  
c' 	  $$W6Ddll62DLL4HIrT   c                      [         R                  [         R                  p[        5       n[	        [        U5      R                  X5      S5      (       a   eg )NrY   )rD   rE   rF   r(   hasattrr   rH   )rg   rh   bases      rR   
test_errorr     sA    99dkkq!#D(.2218:MNNNNNrT   c                     [        [        R                  [        R                  SS9u  pp#[	        [        5       SSS9R                  X5      nUR                  U5      nUR                  SS9  UR                  U5      n[        XV5        [	        [        5       SSS9R                  X5      nUR                  U5      n[        XW5        [	        [        SS9SSS9R                  X5      nUR                  U5      nUR                  SS9  UR                  U5      n	[        X5        [	        [        SS9SSS9R                  X5      nUR                  U5      n
[        X5        g )	Nr   r1      n_jobsr2   r5   r   ry   )r{   )r   rD   rE   rF   r   r(   rH   rW   
set_paramsr,   r!   rY   )rK   rL   rM   rN   r   y1y2y3
decisions1
decisions2
decisions3s              rR   test_parallel_classificationr     sV   '7		4;;Q($GW ! 	c' 
 
			'Bq!				'Bb%  	c'  
			'Bb% !E*11	c'  ++F3Jq!++F3Jj5 E*11	c'  ++F3Jj5rT   c                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSS9R                  X5      nUR                  SS9  UR                  U5      nUR                  SS9  UR                  U5      n[        Xg5        [        [        5       SSS9R                  X5      nUR                  U5      n[        Xh5        g )Nr   r1   r   r   r5   r   r?   )r*   r   r   rE   rF   r   r)   rH   r   rI   r,   )	rJ   rK   rL   rM   rN   r   r   r   r   s	            rR   test_parallel_regressionr     s     Q
C'7xS($GW   5 7PQRVVH q!			&	!Bq!			&	!Bb% 5 7PQRVVH 
		&	!Bb%rT   c                      [         R                  [         R                  pSXS:H  '   SSS.n[        [	        [        5       5      USS9R                  X5        g )Nr5   r?   )r5   r?   )rB   estimator__Croc_auc)scoring)rD   rE   rF   r   r   r!   rH   )rg   rh   
parameterss      rR   test_gridsearchr     sI     99dkkqA1fI #)&AJ"35):yIMMaSrT   c                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        S SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        R                  [        R                  U S9u  pp4[        S SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   eg )Nr   r1   r   r   )r*   r   rD   rE   rF   r   rH   
isinstance
estimator_r(   r   r   r   r)   r"   r   s         rR   test_estimatorr   (  s    Q
C (8		4;;S($GW !aa@DDWVHh))+ABBBB  	c'  h))+ABBBB aaHLLH h)):6666 (8xS($GW  QQ?CCGUHh))+@AAAA 5 7PQRVVH h))+@AAAAaa@DDWVHh))3////rT   c                     [        [        [        SS9[        5       5      SS9n U R	                  [
        R                  [
        R                  5        [        U S   R                  S   S   R                  [        5      (       d   eg )Nr5   )kr?   )r9   r   )r   r   r   r(   rH   rD   rE   rF   r   stepsr2   intrA   s    rR   test_bagging_with_pipeliner   U  sg    !kA&(>(@APQI MM$))T[[)il((,Q/<<cBBBBrT   c                    [        SSS9u  pS nS HB  nUc  [        X@SS9nOUR                  US9  UR                  X5        [	        U5      U:X  a  MB   e   [        SU S	S9nUR                  X5        [        U Vs/ s H  ofR                  PM     sn5      [        U Vs/ s H  ofR                  PM     sn5      :X  d   eg s  snf s  snf )
Nr<   r5   	n_samplesr2   )r   
   T)rB   r2   
warm_startrB   r  F)r	   r   r   rH   r   r   r2   )r2   rg   rh   clf_wsrB   	clf_no_wstrees          rR   test_warm_startr  ]  s     bq9DAF>&)QUF <8

16{l***   "luI MM!f5fd!!f56#'01yt		y1;   51s   <C C
c                      [        SSS9u  p[        SSS9nUR                  X5        UR                  SS9  [        R
                  " [        5         UR                  X5        S S S 5        g ! , (       d  f       g = f)	Nr<   r5   r   r   T)rB   r  r6   r  )r	   r   rH   r   r   raises
ValueErrorrg   rh   r   s      rR   $test_warm_start_smaller_n_estimatorsr  w  sX    bq9DA
t
<CGGAMNNN"	z	" 
#	"	"s   A,,
A:c                  Z   [        SSS9u  p[        XSS9u  p#pE[        SSSS	9nUR                  X$5        UR	                  U5      nUS
-  nSn[
        R                  " [        US9   UR                  X$5        S S S 5        [        XvR	                  U5      5        g ! , (       d  f       N)= f)Nr<   r5   r   +   r1   r   TS   rB   r  r2   r4   z;Warm-start fitting without increasing n_estimators does notr   )	r	   r   r   rH   rI   r   r   r   r-   )	rg   rh   rK   rL   rM   rN   r   y_predr   s	            rR   "test_warm_start_equal_n_estimatorsr    s    bq9DA'72'N$GW
t"
MCGGG[[ FsNGLH	k	2! 
3v{{623 
3	2s   'B
B*c                  @   [        SSS9u  p[        XSS9u  p#pE[        SSSS	9nUR                  X$5        UR	                  S
S9  UR                  X$5        UR                  U5      n[        S
SSS	9nUR                  X$5        UR                  U5      n	[        Xy5        g )Nr<   r5   r   r  r1   r   TiE  r  r  r  F)r	   r   r   rH   r   rI   r,   )
rg   rh   rK   rL   rM   rN   r  r   r   r   s
             rR   test_warm_start_equivalencer    s     bq9DA'72'N$GWA$TRF
JJw 
2&
JJw 		B
D
QCGGG	V	Bb%rT   c                      [        SSS9u  p[        SSSS9n[        R                  " [        5         UR                  X5        S S S 5        g ! , (       d  f       g = f)Nr<   r5   r   r   T)rB   r  r   )r	   r   r   r
  r  rH   r  s      rR   $test_warm_start_with_oob_score_failsr    sA    bq9DA
tt
LC	z	" 
#	"	"s   A
Ac                     [         R                  [         R                  p[        R                  " U5      n[        SS9nSn[        R                  " [        US9   UR                  XUS9  S S S 5        [        R                  [        R                  p[        R                  " U5      n[        SS9nSn[        R                  " [        US9   UR                  XUS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NF)r:   zYWhen fitting BaggingClassifier with sample_weight it is recommended to use bootstrap=Truer   sample_weightzXWhen fitting BaggingRegressor with sample_weight it is recommended to use bootstrap=True)rD   rE   rF   r   	ones_liker   r   r   r   rH   r   r   )rg   rh   r  r   r   regs         rR   $test_warning_bootstrap_sample_weightr    s    99dkkqLLOM
e
,C	2  
k	2M2 
3 ==(//qLLOM
U
+C	2  
k	2M2 
3	2 
3	2 
3	2s   C&C7&
C47
Dc                     [         R                  [         R                  p[        SS9n[        R
                  " U5      S[        U5      -  -  nSn[        R                  " [        US9   UR                  XUS9  S S S 5        [        SSS9n[        R
                  " U5      nSUS	'   [        R                  " S
5      n[        R                  " [        US9   [        R                  " [        SS9   UR                  XUS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nr4   )r8   r?   zUsing the fractional value max_samples=1.0 when the total sum of sample weights is 0.5(\d*) results in a low number \(1\) of bootstrap samples. We recommend passing `max_samples` as an integer.r   r  F)r:   r8   r   zRmax_samples=151 must be <= n_samples=150 to be able to sample without replacement.z1When fitting BaggingClassifier with sample_weight)rD   rE   rF   r   r   r  r   r   r   r   rH   reescaper
  r  )rg   rh   r   r  expected_msgs        rR   =test_invalid_sample_weight_max_samples_bootstrap_combinationsr"    s    99dkkq 
,CLLOq3q6z2M	<  
k	6M2 
7
 e
=CLLOMM"99	L 
z	6\\R
 GGAG6
 
7	6 
7	6
 
 
7	6s0   )DD40D#D4
D #
D1	-D44
Ec                   (    \ rS rSrSrSS jrS rSrg)EstimatorAcceptingSampleWeighti  z&Fake estimator accepting sample_weightNc                 (    Xl         X l        X0l        gzRecord values passed during fitN)X_y_sample_weight_)rf   rg   rh   r  s       rR   rH   "EstimatorAcceptingSampleWeight.fit  s    +rT   c                     g r`   rC   r   s     rR   rI   &EstimatorAcceptingSampleWeight.predict      rT   )r'  r)  r(  r`   rn   ro   rp   rq   rr   rH   rI   rs   rC   rT   rR   r$  r$    s    0,rT   r$  c                   $    \ rS rSrSrS rS rSrg)EstimatorRejectingSampleWeighti  z&Fake estimator rejecting sample_weightc                     Xl         X l        gr&  r'  r(  r   s      rR   rH   "EstimatorRejectingSampleWeight.fit  s    rT   c                     g r`   rC   r   s     rR   rI   &EstimatorRejectingSampleWeight.predict  r-  rT   r2  Nr.  rC   rT   rR   r0  r0    s    0
rT   r0  bagging_classaccept_sample_weightmetadata_routingr8   r  g?c                 *   [         R                  " S5      R                  SS5      n[         R                  " SS/S5      n[         R                  " S5      nSUS'   SUS'   U(       a  [        5       nO
[        5       nUR                  u  p[        U[        5      (       a  [        X6R                  5       -  5      n
OUn
[        US	9   U(       a  U(       a  UR                  S
S9nU " XsSS9nUR                  XEUS9  [        UR                   UR"                  5       GH[  u  p[         R$                  " XS9n[        U5      ['        U5      s=:X  a  U
:X  d   e   e[         R(                  " USS/5      R+                  5       (       d   eU(       a~  UR,                  R                  X4:X  d   eUR.                  R                  U4:X  d   e[1        UR,                  U5        [1        UR.                  U5        [1        UR2                  U5        M  UR,                  R                  X4:X  d   eUR.                  R                  U
4:X  d   e[1        UR,                  XM   5        [1        UR.                  X]   5        GM^     S S S 5        g ! , (       d  f       g = f)Nr   r   r5   r   r   r6   r?   r   enable_metadata_routingTr  )r8   rB   )	minlength)r   arangereshaperepeatzerosr$  r0  r   r   floatr   r   r   set_fit_requestrH   rG   r~   estimators_samples_bincountr   isinr   r'  r(  r+   r)  )r6  r7  r8  r8   rg   rh   r  base_estimatorr  
n_featuresexpected_integer_max_samplesbaggingrA   samplescountss                  rR   %test_draw_indices_using_sample_weightrL    s    			#r1%A
		1a&"AHHSMMM!M!7979GGI+u%% (+;9J9J9L+L'M$'2$	0@	A 4+;;$;ONVWXA6"%g&9&97;V;V"WI[[>Fv;#g,N2NNNNNN777QF+//1111# ||))i-DDDD ||))i\999	a0	a0	 8 8&A !||)).J-WWWW ||)).J-LLLL	aj9	aj9# #X 
B	A	As   F5J
Jc                  \   Su  pn[        XU5      U :X  d   eSu  pn[        XU5      U:X  d   eSu  pn[        XU5      S:X  d   eSu  pnSn[        R                  " [        US9   [        XU5      [	        X-  5      :X  d   e S S S 5        Su  pn[        R                  " [        US9   [        XU5      S:X  d   e S S S 5        Sn[
        R                  R                  S	5      nS
SUR                  S
S9p!n [        R                  " [        US9   [        XU5      [	        XR                  5       -  5      :X  d   e S S S 5        [
        R                  " S5      n[        R                  " 5          [        R                  " S5        Su  pn[        XU5      U:X  d   eSSUR                  SS9p!n [        XU5      [	        XR                  5       -  5      :X  d   e S S S 5        g ! , (       d  f       GNj= f! , (       d  f       GNB= f! , (       d  f       N= f! , (       d  f       g = f)N)r  Nnot_used)r  r   rN  )r  h㈵>Nr5   )r  gQ?Nz?.+the number of samples.+low number.+max_samples.+as an integerr   zI.+the total sum of sample weights.+low number.+max_samples.+as an integerr   i@B rO  )sizer   error)r      Nr   r3   )r   r   r   r   r   r   randomdefault_rnguniformr   r   warningscatch_warningssimplefilter)r  r8   r  warning_msgwarning_msg_with_weightsrJ   s         rR   test_get_n_samples_bootstrapr[  3  s$   ,@)IM#IMJiWWW,=)IM G;VV -;)IM#IMJaOOO,:)IMSK	k	5'	NRU#S
 
 	
 
 
6
 -;)IM	k	5'	NRSSSS 
6 	T  ))


"C,5tS[[i[=XMI	k)A	B'	NRU++--S
 
 	
 
 
C
 GGAJM		 	 	"g&0=-	$Y]K	
 14S#++3+:O	'	NRU++--S
 
 	
 
 
#	") 
6	5 
6	5 
C	B 
#	"s1   &G(+G:,H3A+H(
G7:
H	
H
H+c                     [        SSS9u  p[        SSS9nUR                  X5        UR                  SSSS	9  UR                  X5        [        R
                  " [        5         [        US
5        S S S 5        g ! , (       d  f       g = f)Nr   r5   r   r   T)rB   r   Fr  )r  r   rB   r   )r	   r   rH   r   r   r
  AttributeErrorr}   r  s      rR   $test_oob_score_removed_on_warm_startr^  d  sf    c:DA
d
;CGGAMNNde"NEGGAM	~	&\" 
'	&	&s   $A::
Bc                      [        SSS9u  p[        [        5       SSSSS9nUR                  X5      R                  UR                  X5      R                  :X  d   eg )N   r5   r   r3   T)r8   r9   r   r2   )r	   r   r   rH   r   rg   rh   rI  s      rR   test_oob_score_consistencyrb  q  s\     c:DAG ;;q''7;;q+<+G+GGGGrT   c                     [        SSS9u  p[        [        5       SSSSS9nUR                  X5        UR                  nUR
                  nUR                  n[        U5      [        U5      :X  d   e[        US   5      [        U 5      S-  :X  d   eUS   R                  R                  S	:X  d   eSnX6   nXF   nXV   n	X   S S 2U4   n
X   nU	R                  nU	R                  X5        U	R                  n[        X5        g )
Nr`  r5   r   r3   F)r8   r9   r2   r:   r   r?   r   )r	   r   r   rH   rC  r   r~   r   dtypekindcoef_r,   )rg   rh   rI  estimators_samplesestimators_featuresrP   estimator_indexestimator_samplesestimator_featuresrA   rK   rM   
orig_coefs	new_coefss                 rR   test_estimators_samplesrn    s    c:DAG KK !44!66$$J !"c*o555!!$%Q1444a &&++s222 O*;,=+I#Q(:%:;G"GJMM'#Ij4rT   c                     [        5       n U R                  U R                  p![        [	        SS9[        5       5      n[        USSS9nUR                  X5        UR                  S   R                  S   S   R                  R                  5       nUR                  S   nUR                  S   nUR                  S   nX   S S 2U4   n	X'   n
UR                  X5        [        UR                  S   S   R                  U5        g )Nr?   )n_componentsr3   r   )rA   r8   r2   r   r5   )r   rE   rF   r   r    r   r   rH   r~   r   rf  copyrC  r   r-   )rD   rg   rh   base_pipeliner   pipeline_estimator_coefrA   estimator_sampleestimator_featurerK   rM   s              rR   %test_estimators_samples_deterministicrv    s     ;D99dkkq!A.0B0DM mST
UCGGAM!ooa066r:1=CCHHJ"I..q1003"A'8$89G!GMM'#yr*1-335LMrT   c                      Sn [        SU -  SS9u  p[        [        5       U SSS9nUR                  X5        UR                  U :X  d   eg )Nr   r?   r5   r   r3   )r8   r9   r2   )r	   r   r   rH   _max_samples)r8   rg   rh   rI  s       rR   test_max_samples_consistencyry    sV     Ka+oAFDA	G KK;...rT   c                  .   Sn S/S/S//S-  n/ SQS-  n/ SQS-  n/ SQS-  n[        SU S	9R                  X5      R                  n[        SU S	9R                  X5      R                  n[        SU S	9R                  X5      R                  nXV/Xw/:X  d   eg )
Nr   r   r   r5   )ABC)r   r   r5   )r   r5   r?   T)r   r2   )r   rH   r   )r2   rg   Y1Y2Y3x1x2x3s           rR   !test_set_oob_score_label_encodingr    s     L
sQC1A	1	B	aB	QBD|D	Q	  	D|D	Q	  	D|D	Q	 
 8xrT   c                 Z    U R                  SSS9n SU [        R                  " U 5      ) '   U $ )NrA  T)rq  r   )astyper   isfinite)rg   s    rR   replacer    s-    	t$AAr{{1~oHrT   c            	         [         R                  " / SQ/ SQS[         R                  S/S[         R                  S/S[         R                  * S//5      n [         R                  " / SQ5      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      /nU GH  n[	        5       n[        [        [        5      U5      nUR                  X5      R                  U 5        [        U5      nUR                  X5      R                  U 5      nUR                  UR                  :X  d   e[	        5       n[        U5      n[        R                  " [        5         UR                  X5        S S S 5        [        U5      n[        R                  " [        5         UR                  X5        S S S 5        GM     g ! , (       d  f       NS= f! , (       d  f       GM=  = f)Nr5   r   r   r?   N   r?   r  )r?   r   r   r   r   )r?   r5   	   )r   r     )r   arraynaninfr)   r   r   r  rH   rI   r   r   r   r
  r  )rg   y_valuesrh   	regressorpipelinebagging_regressory_hats          rR   *test_bagging_regressor_with_missing_inputsr    sb   
NNO	
	A 	!
	
H )+	 !4W!=yIQ""1%,X6!%%a+33A6ww%++%%% *+	 +]]:&LL ',X6]]:&!!!' '&  '& '&s   F/G /
F=	 
G	c            	         [         R                  " / SQ/ SQS[         R                  S/S[         R                  S/S[         R                  * S//5      n [         R                  " / SQ5      n[	        5       n[        [        [        5      U5      nUR                  X5      R                  U 5        [        U5      nUR                  X5        UR                  U 5      nUR                  UR                  :X  d   eUR                  U 5        UR                  U 5        [	        5       n[        U5      n[        R                  " [         5         UR                  X5        S S S 5        [        U5      n[        R                  " [         5         UR                  X5        S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = f)Nr  r  r?   r  )r   r  r  r  r  )r   r  r  r  r(   r   r   r  rH   rI   r   r   rX   rW   r   r
  r  )rg   rh   
classifierr  bagging_classifierr  s         rR   +test_bagging_classifier_with_missing_inputsr    sP   
NNO	
	A 	!A')J09:FHLLq!*841 &&q)E77ekk!!!((+$$Q' ()JZ(H	z	"Q 
#*84	z	"q$ 
#	" 
#	" 
#	"s   	F#F4#
F14
Gc                      [         R                  " SS/SS//5      n [         R                  " SS/5      n[        [        5       SSS9nUR	                  X5        g )Nr5   r?   r   r6   r   g333333?)r9   r2   )r   r  r   r   rH   ra  s      rR   test_bagging_small_max_featuresr  :  sP     	1a&1a&!"A
!QA 2 43UVWGKKrT   c                 R   [         R                  R                  U 5      nUR                  SS5      n[         R                  " S5      n " S S[
        5      n[        U" 5       SSS9nUR                  X#5        [        UR                  S   R                  UR                  S   5        g )N   r6   c                       \ rS rSrSrS rSrg)8test_bagging_get_estimators_indices.<locals>.MyEstimatoriM  z7An estimator which stores y indices information at fit.c                     X l         g r`   _sample_indicesr   s      rR   rH   <test_bagging_get_estimators_indices.<locals>.MyEstimator.fitP  s    #$ rT   r  N)rn   ro   rp   rq   rr   rH   rs   rC   rT   rR   MyEstimatorr  M  s
    E	%rT   r  r5   r   )rA   rB   r2   )r   rS  RandomStaterandnr=  r)   r   rH   r-   r~   r  rC  )global_random_seedrJ   rg   rh   r  r   s         rR   #test_bagging_get_estimators_indicesr  D  s    
 ))

 2
3C		"aA
		"A%+ % []QR
SCGGAMsq)993;R;RST;UVrT   zbagging, expected_allow_nanr5   r=   c                 X    U R                  5       R                  R                  U:X  d   eg)z*Check that bagging inherits allow_nan tag.N)__sklearn_tags__
input_tags	allow_nan)rI  expected_allow_nans     rR   test_bagging_allow_nan_tagr  Y  s(     ##%00::>PPPPrT   r:  modelr  )rA   rB   c                 `    U R                  [        R                  [        R                  5        g)zAMake sure that metadata routing works with non-default estimator.NrH   rD   rE   rF   r  s    rR   "test_bagging_with_metadata_routingr  k  s     
IIdii%rT   zsub_estimator, caller, calleerI   rX   rW   c           	         [         R                  " SS/SS/SS//5      n/ SQnS/Spe[        5       nU " US9nS	U-   S
-   n	[        X5      " SSS9  [	        US9n
U
R                  X45        [        X5      " [         R                  " SS/SS/SS//5      UUS9  [        U5      (       d   eU H  n[        UUUUUS9  M     g)am  Test that metadata routing works in `BaggingClassifier` with dynamic selection of
the sub-estimator's methods. Here we test only specific test cases, where
sub-estimator methods are not present and are not tested with `ConsumingClassifier`
(which possesses all the methods) in
sklearn/tests/test_metaestimators_metadata_routing.py: `BaggingClassifier.predict()`
dynamically routes to `predict` if the sub-estimator doesn't have `predict_proba`
and `BaggingClassifier.predict_log_proba()` dynamically routes to `predict_proba` if
the sub-estimator doesn't have `predict_log_proba`, or to `predict`, if it doesn't
have it.
r   r?   r5   r6   r  )r5   r?   r   a)registryset__requestT)r  metadatar   r   )rg   r  r  )objr   parentr  r  N)r   r  r&   r}   r   rH   r   r'   )sub_estimatorcallercalleerg   rh   r  r  r  rA   set_callee_requestrI  s              rR   3test_metadata_routing_with_dynamic_method_selectionr  |  s    0 	1a&1a&1a&)*AA c38{Hx0I&:5I*M)4GKKG
((QFQFQF+
,# x===	'	
 rT   c                 `    U R                  [        R                  [        R                  5        g)zZMake sure that we still can use an estimator that does not implement the
metadata routing.Nr  r  s    rR   -test_bagging_without_support_metadata_routingr    s     
IIdii%rT   )*   )~rr   r  rV  	itertoolsr   r   r   numpyr   r   sklearnr   sklearn.baser   sklearn.datasetsr   r   r	   sklearn.dummyr
   r   sklearn.ensembler   r   r   r   r   r   r   r   sklearn.ensemble._baggingr   sklearn.feature_selectionr   sklearn.linear_modelr   r   sklearn.model_selectionr   r   r   sklearn.neighborsr   r   sklearn.pipeliner   sklearn.preprocessingr   r   sklearn.random_projectionr    sklearn.svmr!   r"   %sklearn.tests.metadata_routing_commonr#   r$   r%   r&   r'   sklearn.treer(   r)   sklearn.utilsr*   sklearn.utils._testingr+   r,   r-   sklearn.utils.fixesr.   r/   rJ   rD   permutationrF   rP  permrE   r   rS   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   thread_unsafer   r   r   r   r  r  r  r  r  r  r"  r$  r0  rL  r[  r^  rb  rn  rv  ry  r  r  r  r  r  r  r  r  r  r  rC   rT   rR   <module>r     s   
  $    " & G G 9	 	 	 ? 1 ? Q Q G * < <    G , 
 ? {
t{{''(IIdO	kk$ ?
x++,d#//$'0B &'  # !!&*	  # !!&*	 U$Od%P	
  	O%.&2/.&2R8 +^n-LM5A N5Ap# #'9TE8 
F"&J!#HJ(O&6V & &4	T )0 )0XC44$&&3,7@
] 
	] 	 +;=N*OP/%?+eT];S	2/: 3 < @ Q/:d.
b
#H%5PN6/ 4&(R%@W* !	91E	FM	7C	DdK	-/	0%8	#%	 %(	QQ -,!<1	
 	+;!	
	
&
 .&
 #	/IF5	

 
,-@)L -#
 .#
T (a8	
 	#4!#DSTU	&	&rT   