
    -iYw                     :   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
  S SKJrJrJr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JrJrJrJ r J!r!J"r"J#r#  S SK$J%r%J&r&  S SK'J(r(J)r)  S SK*J+r+  S SK,J-r-J.r.J/r/J0r0  S SK1J2r2  S SK3J4r4  S SK5J6r6  S SK7J8r8  S SK9J:r:J;r;J<r<  S SK=J>r>J?r?J@r@JArAJBrBJCrC  S rDS rES rF\R                  R                  S\A\@-   \?-   \C-   \B-   \>-   5      S 5       rIS rJS rKS rL\R                  " 5       rN\NR                  rP\NR                  rR\8" \RSS9rS\8" \RSS9rT\R                  " \R\S\T45      rV\PR                  u  rXrY\VR                  S   rZ\[" \R                  " \R5      5      r]\^" \_" \R                  \R\S\T45      5      r`S  raS! rbS" rcS# rdS$ reS% rfS& rgS' rhS( riS) rjS* rk\R                  R                  S+S,S-/5      S. 5       rlS/ rmS0 rn\R                  R                  S1S-S2/5      S3 5       ro\R                  R                  S4\A5      S5 5       rpS6 rq\R                  R                  S1/ S7Q5      \R                  R                  S+S,S8/5      S9 5       5       rrS: rs\R                  R                  S4\A5      S; 5       rtS< ru\R                  R                  S=/ S>Q5      S? 5       rv\R                  R                  S@\" SSA9\." \" SSA95      \-" \" SSA95      /5      SB 5       rw " SC SD\5      rx " SE SF\5      ry\R                  R                  SG\." \y" SHSI95      \R                  " 5       4\/" \x" 5       5      \R                  " SJS SK94/5      SL 5       rzSM r{\R                  R                  SN\.\4\/\!4/5      SO 5       r|\R                  R                  SP\^\R                  \~/5      SQ 5       rSR rSS rST rSU r\R                  R                  SV\-SW4\.SX4/5      SY 5       rSZ r\R                  R                  S[\-\0/5      S\ 5       rg)]    N)	cpu_count)datasets)ClassifierMixinclone)load_linnerudmake_classificationmake_multilabel_classificationmake_regression)DummyClassifierDummyRegressor)GradientBoostingRegressorRandomForestClassifierStackingRegressor)NotFittedError)SimpleImputer)LassoLinearRegressionLogisticRegressionOrthogonalMatchingPursuitPassiveAggressiveClassifierRidgeSGDClassifierSGDRegressor)jaccard_scoremean_squared_error)GridSearchCVtrain_test_split)OneVsRestClassifier)ClassifierChainMultiOutputClassifierMultiOutputRegressorRegressorChain)make_pipeline)	LinearSVC)DecisionTreeClassifier)shuffle)assert_almost_equalassert_array_almost_equalassert_array_equal)BSR_CONTAINERSCOO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSDOK_CONTAINERSLIL_CONTAINERSc                     [         R                  " SSS9u  pU S S US S p2U SS  USS  pT[        R                  " U5      n[	        S5       H<  n[        SS9nUR                  X#S S 2U4   5        UR                  U5      US S 2U4'   M>     [        [        SS95      nUR                  X#5        UR                  U5      n	[        Xi5        g N   r   	n_targetsrandom_state2   r5   )
r   r
   np
zeros_likeranger   fitpredictr!   r'   )
XyX_trainy_trainX_testy_test
referencesnrgry_preds
             Q/var/www/html/venv/lib/python3.13/site-packages/sklearn/tests/test_multioutput.pytest_multi_target_regressionrH   =   s    ##aa@DA"vq"vWrsVQrsVFv&J1X'Q7A';;v.
1a4 
 8aH
ICGGG[[ F
+    c                  T   [         R                  " SSS9u  pU S S US S p2U SS  USS  pT[        R                  " U5      nSn[	        S5       H[  n[        SSS9n	U	R                  US U US U2U4   5        U	R                  X'S  X7S 2U4   5        U	R                  U5      US S 2U4'   M]     [        [        SSS95      n	U	R                  US U US U 5        U	R                  X'S  X7S  5        U	R                  U5      n
[        Xj5        [        [        [        5      S5      (       a   eg )	Nr2   r   r3   r6         r5   max_iterpartial_fit)r   r
   r8   r9   r:   r   rO   r<   r!   r'   hasattrr   )r=   r>   r?   r@   rA   rB   rC   
half_indexrD   sgrrF   s              rG   (test_multi_target_regression_partial_fitrS   O   s7   ##aa@DA"vq"vWrsVQrsVFv&JJ1XA6,gkzk1n.EF,gk1n.EF;;v.
1a4	  |QG
HCOOGKZ('+:*>?OOGK('+*>?[[ F
++E2MBBBBBrI   c                      [         R                  " SSS9u  p[        [        SS95      nSn[        R
                  " [        US9   UR                  X5        S S S 5        g ! , (       d  f       g = f)N   r   r3   r7   zat least two dimensionsmatch)r   r
   r!   r   pytestraises
ValueErrorr;   )r=   r>   rE   msgs       rG   'test_multi_target_regression_one_targetr\   f   sP    ##aa@DA
8aH
IC
#C	z	- 
.	-	-s   A  
A.sparse_containerc                 H   [         R                  " SSS9u  pUS S US S pCUSS  n[        [        SS95      n[        [        SS95      nUR	                  X45        UR	                  U " U5      U5        [        UR                  U5      UR                  U " U5      5      5        g r1   )r   r
   r!   r   r;   r'   r<   )r]   r=   r>   r?   r@   rA   rE   
rgr_sparses           rG   #test_multi_target_sparse_regressionr`   o   s     ##aa@DA"vq"vWrsVF
u!4
5C%e&;<JGGGNN#G,g6FZ//0@0HIrI   c                  (   / SQ/ SQ/n SS/SS//nSS/n[        [        5       5      nSn[        R                  " [        US9   UR                  XU5        S S S 5        [        [        S	S
95      nUR                  XU5        g ! , (       d  f       N3= f)NrU      r2      rL      T㥛 	@X9v@g?g333333?zdoes not support sample weightsrV   r   r7   )r!   r   rX   rY   rZ   r;   r   )r=   r>   wrE   r[   s        rG   $test_multi_target_sample_weights_apirj      s    	IA
%(A	c
A
8:
;C
+C	z	-a 
. 8aH
ICGGA! 
.	-s   B
Bc                  ,   / SQ/ SQ/n SS/SS//nSS/n[        [        SSS	95      nUR                  XU5        SS/n[        [        SSS	95      nUR                  XU5        UR                  U 5      S   S   UR                  U 5      S   S   :w  d   eg )
Nrb   rd   rg   rh          @      ?r   rL   rM   )r!   r   rO   r<   )r=   r>   ri   rgr_wrE   s        rG   +test_multi_target_sample_weight_partial_fitro      s    	IA
%(A	c
A 1q!IJE	aA 
c
A
|QG
HCOOA!;;q>!Q5==#3A#6q#9999rI   c                  J   / SQ/ SQ/n SS/SS//nSS/n[        [        SS95      nUR                  XU5        / SQ/ SQ/ SQ/nSS/SS/SS//n[        [        SS95      nUR                  XE5        / S	Q/ S
Q/n[        UR	                  U5      UR	                  U5      5        g )Nrb   rd   rg   rh   rl   rm   r   r7   g      ?g      @      @rr   g      @g      @)r!   r   r;   r'   r<   )Xwywri   rn   r=   r>   rE   rA   s           rG    test_multi_target_sample_weightsrv      s    
Y	B%.5%.	)B	c
A !:!JKE	IIba 
Iy)A
%%8A
8aH
ICGGAM/FF+U]]6-BCrI   rU   r7   rc   c                     [        SSSS9n [        U SS9nUR                  [        [        [
        5        UR                  S   nUR                  [        [        5        UR                  S   n[        5       S:  a  X#Ld   eg g )Nlog_lossrU   rL   lossr5   rN   re   )n_jobsr   )r   r    rO   r=   r>   classesestimators_r   )sgd_linear_clfmorest1est2s       rG   8test_multi_output_classification_partial_fit_parallelismr      sp    "
QON
q
9COOAq'"??1DOOAq??1D{Q rI   c                     [        SSS9n [        U 5      nUR                  [        [        5        [        US5      (       a   e[        SSSS9n [        U 5      nUR                  [        [        5        [        US5      (       d   eg )NrU   rL   rM   predict_probarx   ry   )r   r    r;   r=   r>   rP   )r~   multi_target_linears     rG   'test_hasattr_multi_output_predict_probar      s~     #A>N/?Aq!*O<<<< #
QON/?Aq!&8888rI   c                     [        SSS9n SS0nS n[        U UUSSS	9n[        U5      nUR                  [        [
        5        UR                  [        5        [        SSS9n [        U 5      nUR                  [        [
        5        S
nSnSn[        R                  " [        US9 nUR                  [        5        S S S 5        [        WR                  R                  [        5      (       d   eU[        UR                  R                  5      ;   d   e[        UR                  R                  R                  [        5      (       d   eU[        UR                  R                  R                  5      ;   d   eg ! , (       d  f       N= f)NrU   rL   rM   rz   )hingerx   modified_huberc                 (    [        U S5      (       a  gg)Nr   rm   g        )rP   )	estimatorr=   r>   s      rG   custom_scorer6test_multi_output_predict_proba.<locals>.custom_scorer   s    9o..rI   r2   raise)
param_gridscoringcverror_scorez8probability estimates are not available for loss='hinge'z0'SGDClassifier' has no attribute 'predict_proba'8'MultiOutputClassifier' has no attribute 'predict_proba'rV   )r   r   r    r;   r=   r>   r   rX   rY   AttributeError
isinstancevalue	__cause__str)	r~   paramr   grid_clfr   
inner2_msg
inner1_msg	outer_msg	exec_infos	            rG   test_multi_output_predict_probar      sJ   "A>N<=E H 09Aq!%%a( #A>N/?Aq!KJCJJI	~Y	79))!, 
8 ioo//@@@@Y__667777ioo//99>JJJJY__66@@AAAA 
8	7s   'E::
Fc                     [        SSSS9n [        U 5      n[        R                  S   S-  nUR	                  [        S U [
        S U [        S9  UR                  [        5      n[        [        4UR                  :X  d   eUR	                  [        US  [
        US  5        UR                  [        5      n[        [        4UR                  :X  d   e[        S5       H  n[        U 5      n U R	                  [        S U [
        S U2U4   [        U   S9  [        U R                  [        5      US S 2U4   5        U R	                  [        US  [
        US 2U4   5        [        U R                  [        5      US S 2U4   5        M     g )	Nrx   rU   rL   ry   r   rc   )r|   r2   )r   r    r=   shaperO   r>   r|   r<   	n_samples	n_outputsr:   r   r)   )r~   r   rQ   first_predictionssecond_predictionsis         rG   ,test_multi_output_classification_partial_fitr     so    #
QON/? qJ##AkzNAkzNG#T+33A6y!%6%<%<<<<##AjkNAjkNC,44Q7y!%7%=%==== 1X~.""kzNAkzk1n-wqz 	# 	
 	>11!46G16MN""1Z[>1Z[!^3DE>11!46HA6NO rI   c                      [        SSSS9n [        U 5      nSn[        R                  " [        US9   UR                  [        [        5        S S S 5        g ! , (       d  f       g = f)Nrx   rU   rL   ry   z8classes must be passed on the first call to partial_fit.rV   )r   r    rX   rY   rZ   rO   r=   r>   )r~   r   r[   s      rG   Gtest_multi_output_classification_partial_fit_no_first_classes_exceptionr   -  sJ    "
QON/?
DC	z	-''1- 
.	-	-s   A
A$c                     [        SSS9n [        U 5      nUR                  [        [        5        UR                  [        5      n[        [        4UR                  :X  d   eUR                  [        5      n[        U5      [        :X  d   eU H  n[        [        4UR                  :X  a  M   e   [        [        R                  " [        R                  " U5      SS9U5        [!        S5       H  n[#        U 5      nUR                  [        [        S S 2U4   5        [%        UR                  [        5      5      [%        US S 2U4   5      :X  d   e[        [%        UR                  [        5      5      [%        X5   5      5        M     g )N
   rU   n_estimatorsr5   axisr2   )r   r    r;   r=   r>   r<   r   r   r   r   len	n_classesr)   r8   argmaxdstackr:   r   list)forestmulti_target_forestpredictionsr   class_probabilitiesr   forest_s          rG    test_multi_output_classificationr   5  s9    $!DF/7 Aq!%--a0Ky![%6%6666'55a8M}***,9%)<)B)BBBB  - ryy=!9BKP 1X-AqAwGOOA&'4AqD0A+BBBB4 5 5a 894@P;QR	 rI   c                     [        SS9n [        U 5      n[        U5      nUR                  [        [
        5        UR                  [        5      n[        [        4UR                  :X  d   e[        S5       Hc  n[        U5      nUR                  [        [
        S S 2U4   5        [        UR                  [        5      5      [        US S 2U4   5      :X  a  Mc   e   g )Nr   r7   r2   )r$   r   r    r;   r=   r>   r<   r   r   r   r:   r   r   )svcmulti_class_svcmulti_target_svcr   r   multi_class_svc_s         rG   %test_multiclass_multioutput_estimatorr   R  s    

#C)#.O,_=A"**1-Ky![%6%6666 1X 1Q!Q$($,,Q/0DQT9J4KKKK rI   c            	         Sn [         R                  R                  U 5      nUR                  SS9n[         R                  " / SQ5      R                  SS5      n[         R                  " / SQ5      R                  SS5      n[         R                  " X4/SS9n[        [        U S	95      nUR                  X%5        UR                  U5      n[         R                  " S
S/SS/SS/SS/SS//5      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      /n[        [        U5      5       H  n	[        Xy   X   5        M     g )Ni  )rL   rL   )size)bar   r   r   rL   rU   )defr   r   r   r7   g7E-?gd]7 v?gYA?gzXP?gZ]3?gJE?gJo8?g[|c?gx?g{du?)ggK
?g!U5?g}i?)gg362?gPm?gKɱ?)g?gn۔~?g	2b?)g_E֖?glE?g
̖B?)g͢?g ?g}DBˉ?)r8   randomRandomStatenormalarrayreshapeconcatenater    r   r;   r   r:   r   r'   )
seedrngr=   y1y2Yclfy_resulty_actualr   s
             rG   3test_multiclass_multioutput_estimator_predict_probar   d  s+   D ))


%C 	


A 
+	,	4	4Q	:B	+	,	4	4Q	:B
xa(A
 2 E
FCGGAM  #H
Z(Z(Z(Z(Z(	
 	44443	
H* 3x=!HK5 "rI   c                  ~   / SQ/ SQ/n SS/SS//n[         R                  " SS/5      n[        SSS	9n[        U5      nUR	                  XU5        / SQ/ SQ/ SQ/nSS/SS/SS//n[        SSS	9n[        U5      nUR	                  XV5        / S
Q/ SQ/n[        UR                  U5      UR                  U5      5        g )Nrb   rd   r2   rc   rl   rm   r   rU   r   rq   rs   )r8   asarrayr   r    r;   r'   r<   )	rt   ru   ri   r   clf_wr=   r>   r   rA   s	            rG   /test_multi_output_classification_sample_weightsr     s    
Y	Ba&1a&	B


C:A#!DF!&)E	IIba 
Iy)A
Q!Q!Q A#!DF

'CGGAM/FF+U]]6-BCrI   c                     / SQ/ SQ/ SQ/n SS/SS/SS//n[         R                  " / SQ5      n[        SSS	9n[        U5      nUR	                  XU5        / SQ/ SQ/ SQ/ SQ/nSS/SS/SS/SS//n[        SSS	9n[        U5      nUR	                  XV5        / SQ/n[        UR                  U5      UR                  U5      5        g )
Nrb   rd   rq   r2   rc   )rl   rm   rm   rU      rM   )r8   r   r   r    r;   r(   r<   )	rt   ru   ri   r~   r   r=   r>   r   rA   s	            rG   ;test_multi_output_classification_partial_fit_sample_weightsr     s    
Y	0Ba&1a&1a&	!B


?#A"B?N!.1E	IIba 
Iy/:A
Q!Q!Q!Q(A"B?N

/CGGAMFckk&15==3HIrI   c                  x   [        [        SS95      n [        R                  " [        5         U R                  [        [        5        S S S 5        [        R                  " [        [        45      nU R                  [        [        5        [        R                  " [        5         U R                  [        U5        S S S 5        Sn[        R                  " [        US9   U R                  [        [        S S 2S4   5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Ne= f! , (       d  f       g = f)Nr   r7   zUnknown label typerV   rU   )r    r$   rX   rY   r   scorer=   r>   r8   column_stackr   r   r;   rZ   )mocy_newr[   s      rG   test_multi_output_exceptionsr     s      	q 9
:C	~	&		!Q 
'
 OORH%EGGAqM	z	"		!U 
# C	z	-1QT7 
.	- 
'	& 
#	"
 
.	-s#   D	$D"D+	
D
D(+
D9response_methodr   r<   c                     [        [        5       5      n[        R                  " [        5         [        X5      " [        5        SSS5        g! , (       d  f       g= f)zECheck that we raise the proper error when the estimator is not fittedN)r    r   rX   rY   r   getattrr=   )r   r   s     rG   "test_multi_output_not_fitted_errorr     s7       2 4
5C	~	&%a( 
'	&	&s   A
Ac                     [        [        5       5      n [        U S5      (       d   eU R                  [        [
        5        [        U S5      (       d   e[        [        5       5      n [        U S5      (       a   eSnSn[        R                  " [        US9 nU R                  [        5        SSS5        [        WR                  R                  [        5      (       d   eU[        UR                  R                  5      :X  d   eU R                  [        [
        5        [        U S5      (       a   e[        R                  " [        US9 nU R                  [        5        SSS5        [        UR                  R                  [        5      (       d   eU[        UR                  R                  5      :X  d   eg! , (       d  f       GN= f! , (       d  f       Nq= f)zRCheck the behavior for the delegation of predict_proba to the underlying
estimatorr   r   z3'LinearSVC' object has no attribute 'predict_proba'rV   N)r    r   rP   r;   r=   r>   r$   rX   rY   r   r   r   r   r   r   )r   r   	inner_msgr   s       rG   (test_multi_output_delegate_predict_probar     s\   
   2 4
5C3((((GGAqM3((((  	
,CsO,,,,JIEI	~Y	79! 
8ioo//@@@@IOO556666GGAqMsO,,,,	~Y	79! 
8ioo//@@@@IOO556666 
8	7 
8	7s   F:G:
G	
Gc                      [        SSSSSS9u  p[        R                  " U VVs/ s H,  n[        US5      SS   Vs/ s H  n[	        U5      PM     snPM.     snn5      nX4$ s  snf s  snnf )	Ni  d      r   r   )r   
n_featuresr   n_informativer5   z#06brc   )r   r8   r   formatint)r=   r>   yyyyyY_multis        rG   -generate_multilabel_dataset_with_correlationsr     so     3"BUVDA hhqQqVB-?-CD-CcS-CDqQRG: EQs   A(
A#A(
#A(
chain_methoddecision_functionc                     [        5       u  p[        [        5       U S9R                  X5      nUR	                  U5      nUR
                  UR
                  :X  d   eUR                  U5      nUS:  n[        Xd5        [        US5      (       a   eg )Nr   r   r   )	r   r   r$   r;   r<   r   r   r)   rP   )r   r=   r   classifier_chainY_pred
Y_decisionY_binarys          rG   5test_classifier_chain_fit_and_predict_with_linear_svcr     s     9:DA&! 
c!i 
 %%a(F<<177"""!33A6JQHx('99999rI   csr_containerc                    [        5       u  pU " U5      n[        [        5       5      R                  X25      nUR	                  U5      n[        [        5       5      R                  X5      nUR	                  U5      n[        XV5        g N)r   r   r   r;   r<   r)   )r   r=   r   X_sparser   Y_pred_sparseY_pred_denses          rG   6test_classifier_chain_fit_and_predict_with_sparse_datar    st     9:DAQH&'9';<@@M$,,X6M&'9';<@@F#++A.L}3rI   c                  x   [        5       u  pU S S2S S 24   nU SS 2S S 24   nUS S2S S 24   nUSS 2S S 24   n[        [        5       5      nUR                  X$5        UR	                  U5      n[        [        5       5      nUR                  X$5        UR	                  U5      n	[        XYSS9[        XWSS9:  d   eg )NiX  samplesaverage)r   r   r   r;   r<   r   r   )
r=   r   r?   rA   Y_trainY_testovr
Y_pred_ovrchainY_pred_chains
             rG   +test_classifier_chain_vs_independent_modelsr    s     9:DAajGstQwZFajGstQwZF
02
3CGGGV$J.01E	IIg==(LyAMIE   rI   )r<   r   predict_log_probar   r  c           	      T   [        5       u  p#[        [        5       U S9nUR                  X#5        UR	                  U5      nUR
                  UR
                  :X  d   eUR                   Vs/ s H  ofR                  R                  PM     sn[        [        UR
                  S   UR
                  S   UR
                  S   -   5      5      :X  d   e[        XA5      " U5      nUS:X  a  [        R                  " U5      nUS:  n[        X5        [        U[         5      (       d   eg s  snf )Nr   rU   r        ?)r   r   r   r;   r<   r   r}   coef_r   r   r:   r   r8   expr)   r   r   )	r   r   r=   r   r  r   cY_probr   s	            rG   %test_classifier_chain_fit_and_predictr  6  s     9:DA.0|LE	IIaO]]1F<<177""""'"3"34"3QGGLL"34aggaj!''!*qwwqz129    U,Q/F--}Hx(e_---- 5s   +D%c            	         [        5       u  p[        [        5       5      nUR                  X5        UR	                  U 5      nUR
                  UR
                  :X  d   eUR                   Vs/ s H  oDR                  R                  PM     sn[        [        U R
                  S   U R
                  S   UR
                  S   -   5      5      :X  d   eg s  snf )NrU   )r   r"   r   r;   r<   r   r}   r  r   r   r:   )r=   r   r  r   r  s        rG   $test_regressor_chain_fit_and_predictr  O  s    8:DA57#E	IIaO]]1F<<177""""'"3"34"3QGGLL"34aggaj!''!*qwwqz129   4s   ,Cc                    [        5       u  pU " U5      n[        [        5       SS9[        [	        5       SS9/nU HA  nUR                  X25        UR                  U5      nUR                  UR                  :X  a  MA   e   g )Nr2   r   )r   r   r   r"   r   r;   r<   r   )r   r=   r   r  base_chainsr  r   s          rG   7test_base_chain_fit_and_predict_with_sparse_data_and_cvr  [  su     9:DAQH*,3uw1%K 		(x(||qww&&& rI   c                     [        5       u  p[        [        5       5      [        [	        5       5      4 GH6  n[        U5      R                  SSS9nUR                  X5        [        U5      R                  UR                  S9nUR                  X5        [        UR                  UR                  5        [        UR                  5      [        [        S5      5      :w  d   e[        UR                  5      S:X  d   e[        [        UR                  5      5      S:X  d   e[        UR                   UR                   5       H%  u  pV[#        UR$                  UR$                  5        M'     GM9     g )Nr   *   )orderr5   r!  re   )r   r   r   r"   r   r   
set_paramsr;   order_r)   r   r!  r:   r   setzipr}   r(   r  )r=   r   r  chain_randomchain_fixedr   r   s          rG   test_base_chain_random_orderr)  j  s   8:DA!"4"679PQU|..XB.OEl--L4G4G-H;--|/B/BCL&&'4a>999<&&'1,,,3|**+,111 l668O8OPJD%djj$**= Q RrI   zchain_type, chain_method))
classifierr<   )r*  r   )r*  r  )r*  r   )	regressor c                    [        5       u  p#U S:X  a  [        [        5       US9nO[        [	        5       5      nUR                  X#5        [        U5      R                  SS9nUR                  X#5        UR                  U5      nUR                  U5      nUR                  UR                  :X  d   e[        R                  " Xv:H  5      (       a   e[        U[        5      (       a  [        X6SS9S:  d   eg [        X65      S:  d   eg )	Nr*  r   r2   r  r  r  g?g      ?)r   r   r   r"   r   r;   r   r#  r<   r   r8   allr   r   r   )
chain_typer   r=   r   r  chain_cv	Y_pred_cvr   s           rG   (test_base_chain_crossval_fit_and_predictr2  |  s     9:DA\! 2 4<Puw'	IIaOU|&&!&,HLL  #I]]1F??fll***vvf)****%))Q9=CCC!!/$666rI   r   )r   c                    U R                  [        [        5        [        U R                  [
        5      (       d   e[        U R                  5      [        :X  d   e[        [        U R                  5       H  u  p[        X5        M     g r  )r;   r=   r>   r   classes_r   r   r   r&  r|   r)   )r   estimator_classesexpected_classess      rG   test_multi_output_classes_r7    si     MM!Qi(($////y!!"i////27I<N<N/O+,? 0PrI   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )DummyRegressorWithFitParamsi  c                 0   > X@l         [        TU ]	  XU5      $ r  _fit_paramssuperr;   selfr=   r>   sample_weight
fit_params	__class__s        rG   r;   DummyRegressorWithFitParams.fit      %w{1//rI   r<  r  __name__
__module____qualname____firstlineno__r;   __static_attributes____classcell__rB  s   @rG   r9  r9        0 0rI   r9  c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )DummyClassifierWithFitParamsi  c                 0   > X@l         [        TU ]	  XU5      $ r  r;  r>  s        rG   r;    DummyClassifierWithFitParams.fit  rD  rI   rE  r  rF  rM  s   @rG   rP  rP    rN  rI   rP  zestimator, datasetprior)strategyr2   r3   c                     Uu  p#[         R                  " U5      nU R                  X#US9  U R                   H  nSUR                  ;   a  M   e   g )N)
some_paramrV  )r8   r9   r;   r}   r<  )r   datasetr=   r>   rV  dummy_estimators         rG   *test_multioutput_estimator_with_fit_paramsrY    sM     DAq!JMM!:M.$00::::: 1rI   c                  `   [         R                  R                  S5      n [        R                  " SSS9u  pU R                  UR                  S   5      n " S S[        5      n[        U" 5       5      nSU0nUR                  " X40 UD6  UR                   H  nUR                  UL a  M   e   g )Nr   r2   r3   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )0test_regressor_chain_w_fit_params.<locals>.MySGDi  c                 <   > US   U l         [        TU ]  " X40 UD6  g )Nr@  )sample_weight_r=  r;   )r?  r=   r>   rA  rB  s       rG   r;   4test_regressor_chain_w_fit_params.<locals>.MySGD.fit  s!    ",_"=DGK+
+rI   )r^  rF  rM  s   @rG   MySGDr\    s    	, 	,rI   r`  r@  )r8   r   r   r   r
   randr   r   r"   r;   r}   r^  )r   r=   r>   weightr`  model	fit_paramests           rG   !test_regressor_chain_w_fit_paramsrf    s    
))


"C##aa@DAXXaggaj!F, ,
 57#E !&)I	IIa i   !!V+++ !rI   zMultiOutputEstimator, Estimatorc                    [         R                  R                  S5      nUR                  SS5      UR	                  SSS5      pCUR                  SS/UR                  SS	/S
9R                  [        5      n[         R                  X5'   [        [        5       U" 5       5      nU " U5      R                  X45      R                  X45        g )Nr   r6   rc   rU   r  )r6   r2   r   g{Gz?gGz?)p)r8   r   r   randnbinomialchoicer   astypeboolnanr#   r   r;   r   )MultiOutputEstimator	Estimatorr   r=   r>   maskpipes          rG   test_support_missing_valuesrs    s     ))


#C99RS\\!S':q::q!fagg$:6==dCDffAG)+6D""1(..q4rI   
order_typec                     / SQ/ SQ/ SQ/nSS/SS/SS//nU " SS/5      n[        [        SSS9US	9nUR                  X5        / SQ/nSS//n[        UR	                  U5      U5        g )
Nrb   rd   rq   r2   rc   rU   r   r   r"  )r   r   r;   r(   r<   )rt  r=   r>   r!  r  rA   rB   s          rG   !test_classifier_chain_tuple_orderrv    s}    	I/A
Q!Q!Q A1vEAA>eE 
IIaOF!fXFemmF3V<rI   c                      / SQ/ SQ/ SQ/n SS/SS/SS//n[        SS/5      n[        [        5       US9n[        R                  " [
        SS	9   UR                  X5        S S S 5        g ! , (       d  f       g = f)
Nrb   rd   rq   r2   rc   rU   r"  zinvalid orderrV   )tupler   r   rX   rY   rZ   r;   )r=   r>   r!  r  s       rG   )test_classifier_chain_tuple_invalid_orderry    sh    	I/A
Q!Q!Q A1a&ME24EBE	z	9		! 
:	9	9s   A**
A8c                     [        SSSSSS9u  p[        XSS9u  p4pVSn[        [        5       / SQSS	S
9nUR	                  X55        [
        R                  " XpR                  5       S   5      (       d   eg )Nr   rL   r2   r   )r   r   r   n_labelsr5   r7   z\[Chain\].*\(1 of 3\) Processing order 0, total=.*\n\[Chain\].*\(2 of 3\) Processing order 1, total=.*\n\[Chain\].*\(3 of 3\) Processing order 2, total=.*\n$)r   rU   rc   Tr!  r5   verbose)r	   r   r   r%   r;   rerW   
readouterr)	capsysr=   r>   r?   rA   r@   rB   patternr*  s	            rG   test_classifier_chain_verboser    s    )!q11DA (81'M$GW	A  ! 	J NN7$88G..034444rI   c                     [        SSSS9u  p[        XSS9u  p4pVSn[        [        5       / SQSSS	9nUR	                  X55        [
        R                  " XpR                  5       S   5      (       d   eg )
N}   r2   r   )r   r4   r5   r7   z\[Chain\].*\(1 of 3\) Processing order 1, total=.*\n\[Chain\].*\(2 of 3\) Processing order 0, total=.*\n\[Chain\].*\(3 of 3\) Processing order 2, total=.*\n$)rU   r   rc   Tr|  )r
   r   r"   r   r;   r~  rW   r  )	r  r=   r>   r?   rA   r@   rB   r  r+  s	            rG   test_regressor_chain_verboser  )  sz    SAAFDA'71'M$GW	A 
 	I MM'#88G..034444rI   c                      [        SS9u  p[        S[        SS94/[        5       SS9n[	        US9R                  X5      nUR                  U 5        g	)
zgTest that MultiOutputRegressor checks the fitted estimator for
predict. Non-regression test for #16549.T)
return_X_ysgdrU   r7   rc   )
estimatorsfinal_estimatorr   )r   N)r   r   r   r   r!   r;   r<   )r=   r>   stackerregs       rG   4test_multioutputregressor_ducktypes_fitted_estimatorr  <  sV     D)DALa89:G 
1
5
5a
;C KKNrI   zCls, methodr;   rO   c                     [        SS9u  p#U " [        5       5      n[        R                  " [        SS9   [        XA5      " X#SS9  SSS5        g! , (       d  f       g= f)z_Check that we raise an error when passing metadata not requested by the
underlying classifier.
r6   )r   zis only supported ifrV   rU   )testN)r   r   rX   rY   rZ   r   )Clsmethodr=   r>   r   s        rG   test_fit_params_no_routingr  L  sI     ,DA
)+
,C	z)?	@Q* 
A	@	@s   A
Ac                      [        [        5       5      n Sn[        R                  " [        US9   [        U S5        S S S 5        g ! , (       d  f       g = f)Nz:This 'MultiOutputRegressor' has no attribute 'partial_fit'rV   rO   )r!   r   rX   rY   r   r   )re  r[   s     rG   *test_multioutput_regressor_has_partial_fitr  Z  s;     /1
2C
FC	~S	1]# 
2	1	1s   A
Arp  c                    [         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[        5       n[        R                  " [
        5         U " US9R                  X5        SSS5        [        R                  " [        5         U " X3S9R                  X5        SSS5        g! , (       d  f       NG= f! , (       d  f       g= f)	z=Check that we warn about the deprecation of `base_estimator`.rU   rc   r2   re   r   )base_estimatorN)r  r   )	r8   r   r   rX   warnsFutureWarningr;   rY   rZ   )rp  r=   r>   r   s       rG   test_base_estimator_deprecationr  d  s     	1a&1a&!"A
1a&1a&!"A"$I	m	$+//5 
% 
z	"@DDQJ 
#	" 
%	$ 
#	"s   B4C4
C
C)r~  numpyr8   rX   joblibr   sklearnr   sklearn.baser   r   sklearn.datasetsr   r   r	   r
   sklearn.dummyr   r   sklearn.ensembler   r   r   sklearn.exceptionsr   sklearn.imputer   sklearn.linear_modelr   r   r   r   r   r   r   r   sklearn.metricsr   r   sklearn.model_selectionr   r   sklearn.multiclassr   sklearn.multioutputr   r    r!   r"   sklearn.pipeliner#   sklearn.svmr$   sklearn.treer%   sklearn.utilsr&   sklearn.utils._testingr'   r(   r)   sklearn.utils.fixesr*   r+   r,   r-   r.   r/   rH   rS   r\   markparametrizer`   rj   ro   rv   	load_irisirisdatar=   targetr   r   y3r   r>   r   r   r   r   r   uniquer   r   mapr|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r)  r2  r7  r9  rP  rY  rf  rs  r   rx  rv  ry  r  r  r  r  r  r   rI   rG   <module>r     s   	     /  : 
 . (	 	 	 > B 2  + ! / ! 
 ,$C.   	
  : D& II	[[Ra Ra OORRL! 	:GGAJ			"	
s299r2rl+
,	 9 'BTP>.S:L$*6ZD(J&( *_i,HI) J)7:	 )5H)IJ: K:$ .94 :4. J *_>Q,RS. T	
.(	 .9' :'>$ 	7	7. A.4!DE.A>?@@0. 00? 0  "">"PQ335	

 !!<!>?$$qqA	
	;;,* %/03G2OP
5
5 bhh'>?= @=5,5&  _e,/Dm.TU++$ &GHK IKrI   