
    Kix                     h   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"  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.J/r/  S SK0J1r1  S SK2J3r3  S SK4J5r5  S SK6J7r7  S SK8J9r9J:r:J;r;  S SK<J=r=J>r>J?r?J@r@JArAJBrB  S rCS rDS rE\R                  R                  S\@\?-   \>-   \B-   \A-   \=-   5      S 5       rHS rIS rJS rK\R                  " 5       rM\MR                  rO\MR                  rQ\7" \QSS9rR\7" \QSS9rS\R                  " \Q\R\S45      rU\OR                  u  rWrX\UR                  S   rY\Z" \R                  " \Q5      5      r\\]" \^" \R                  \Q\R\S45      5      r_\R                  R                  S  5       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\@5      S5 5       rpS6 rq\R                  R                  S1/ S7Q5      \R                  R                  S+S,S8/5      S9 5       5       rrS: rs\R                  R                  S4\@5      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[\,\//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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   r4   )
r   r
   np
zeros_likeranger   fitpredictr    r&   )
XyX_trainy_trainX_testy_test
referencesnrgry_preds
             `/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/tests/test_multioutput.pytest_multi_target_regressionrG   <   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 )	Nr1   r   r2   r5         r4   max_iterpartial_fit)r   r
   r7   r8   r9   r   rN   r;   r    r&   hasattrr   )r<   r=   r>   r?   r@   rA   rB   
half_indexrC   sgrrE   s              rF   (test_multi_target_regression_partial_fitrR   N   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BrH   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   r2   r6   zat least two dimensionsmatch)r   r
   r    r   pytestraises
ValueErrorr:   )r<   r=   rD   msgs       rF   'test_multi_target_regression_one_targetr[   e   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 r0   )r   r
   r    r   r:   r&   r;   )r\   r<   r=   r>   r?   r@   rD   
rgr_sparses           rF   #test_multi_target_sparse_regressionr_   n   s     ##aa@DA"vq"vWrsVF
u!4
5C%e&;<JGGGNN#G,g6FZ//0@0HIrH   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rT      r1      rK      T㥛 	@X9v@g?g333333?zdoes not support sample weightsrU   r   r6   )r    r   rW   rX   rY   r:   r   )r<   r=   wrD   rZ   s        rF   $test_multi_target_sample_weights_apiri      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 )
Nra   rc   rf   rg          @      ?r   rK   rL   )r    r   rN   r;   )r<   r=   rh   rgr_wrD   s        rF   +test_multi_target_sample_weight_partial_fitrn      s    	IA
%(A	c
A 1q!IJE	aA 
c
A
|QG
HCOOA!;;q>!Q5==#3A#6q#9999rH   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 )Nra   rc   rf   rg   rk   rl   r   r6   g      ?g      @      @rq   g      @g      @)r    r   r:   r&   r;   )Xwywrh   rm   r<   r=   rD   r@   s           rF    test_multi_target_sample_weightsru      s    
Y	B%.5%.	)B	c
A !:!JKE	IIba 
Iy)A
%%8A
8aH
ICGGAM/FF+U]]6-BCrH   rT   r6   rb   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_lossrT   rK   lossr4   rM   rd   )n_jobsr   )r   r   rN   r<   r=   classesestimators_r   )sgd_linear_clfmorest1est2s       rF   8test_multi_output_classification_partial_fit_parallelismr      sp    "
QON
q
9COOAq'"??1DOOAq??1D{Q rH   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 )NrT   rK   rL   predict_probarw   rx   )r   r   r:   r<   r=   rO   )r}   multi_target_linears     rF   'test_hasattr_multi_output_predict_probar      s~     #A>N/?Aq!*O<<<< #
QON/?Aq!&8888rH   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)NrT   rK   rL   ry   )hingerw   modified_huberc                 (    [        U S5      (       a  gg)Nr   rl   g        )rO   )	estimatorr<   r=   s      rF   custom_scorer6test_multi_output_predict_proba.<locals>.custom_scorer   s    9o..rH   r1   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'rU   )r   r   r   r:   r<   r=   r   rW   rX   AttributeError
isinstancevalue	__cause__str)	r}   paramr   grid_clfr   
inner2_msg
inner1_msg	outer_msg	exec_infos	            rF   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 )	Nrw   rT   rK   rx   r   rb   )r{   r1   )r   r   r<   shaperN   r=   r{   r;   	n_samples	n_outputsr9   r   r(   )r}   r   rP   first_predictionssecond_predictionsis         rF   ,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 rH   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)Nrw   rT   rK   rx   z8classes must be passed on the first call to partial_fit.rU   )r   r   rW   rX   rY   rN   r<   r=   )r}   r   rZ   s      rF   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
   rT   n_estimatorsr4   axisr1   )r   r   r:   r<   r=   r;   r   r   r   r   len	n_classesr(   r7   argmaxdstackr9   r   list)forestmulti_target_forestpredictionsr   class_probabilitiesr   forest_s          rF    test_multi_output_classificationr   7  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	 rH   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   r6   r1   )r#   r   r   r:   r<   r=   r;   r   r   r   r9   r   r   )svcmulti_class_svcmulti_target_svcr   r   multi_class_svc_s         rF   %test_multiclass_multioutput_estimatorr   T  s    

#C)#.O,_=A"**1-Ky![%6%6666 1X 1Q!Q$($,,Q/0DQT9J4KKKK rH   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  )rK   rK   )size)bar   r   r   rK   rT   )defr   r   r   r6   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ˉ?)r7   randomRandomStatenormalarrayreshapeconcatenater   r   r:   r   r9   r   r&   )
seedrngr<   y1y2Yclfy_resulty_actualr   s
             rF   3test_multiclass_multioutput_estimator_predict_probar   f  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 "rH   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 )Nra   rc   r1   rb   rk   rl   r   rT   r   rp   rr   )r7   asarrayr   r   r:   r&   r;   )	rs   rt   rh   r   clf_wr<   r=   r   r@   s	            rF   /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CrH   c                     / SQ/ SQ/ SQ/n SS/SS/SS//n[         R                  " / SQ5      n[        S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 S	9n[        U5      nUR	                  XV5        / SQ/n[        UR                  U5      UR                  U5      5        g )
Nra   rc   rp   r1   rb   )rk   rl   rl   rT      )r4   rM   tol)r7   r   r   r   r:   r'   r;   )	rs   rt   rh   r}   r   r<   r=   r   r@   s	            rF   ;test_multi_output_classification_partial_fit_sample_weightsr     s    
Y	0Ba&1a&1a&	!B


?#A"BDIN!.1E	IIba 
Iy/:A
Q!Q!Q!Q(A"BDIN

/CGGAMFckk&15==3HIrH   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   r6   zUnknown label typerU   rT   )r   r#   rW   rX   r   scorer<   r=   r7   column_stackr   r   r:   rY   )mocy_newrZ   s      rF   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   rW   rX   r   getattrr<   )r   r   s     rF   "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'rU   N)r   r   rO   r:   r<   r=   r#   rW   rX   r   r   r   r   r   r   )r   r   	inner_msgr   s       rF   (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_informativer4   z#06brb   )r   r7   r   formatint)r<   r=   yyyyyY_multis        rF   -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(   rO   )r   r<   r   classifier_chainY_pred
Y_decisionY_binarys          rF   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9rH   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          rF   6test_classifier_chain_fit_and_predict_with_sparse_datar    st     9:DAQH&'9';<@@M$,,X6M&'9';<@@F#++A.L}3rH   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>   r@   Y_trainY_testovr
Y_pred_ovrchainY_pred_chains
             rF   +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   rH   )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   rT   r        ?)r   r   r   r:   r;   r   r|   coef_r   r   r9   r   r7   expr(   r   r   )	r   r   r<   r   r  r   cY_probr   s	            rF   %test_classifier_chain_fit_and_predictr  8  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 )NrT   )r   r!   r   r:   r;   r   r|   r  r   r   r9   )r<   r   r  r   r  s        rF   $test_regressor_chain_fit_and_predictr  Q  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 )Nr1   r   )r   r   r   r!   r   r:   r;   r   )r   r<   r   r  base_chainsr  r   s          rF   7test_base_chain_fit_and_predict_with_sparse_data_and_cvr  ]  su     9:DAQH*,3uw1%K 		(x(||qww&&& rH   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   *   )orderr4   r!  rd   )r   r   r   r!   r   r   
set_paramsr:   order_r(   r   r!  r9   r   setzipr|   r'   r  )r<   r   r  chain_randomchain_fixedr   r   s          rF   test_base_chain_random_orderr)  l  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rH   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   r1   r  r  r  g?g      ?)r   r   r   r!   r   r:   r   r#  r;   r   r7   allr   r   r   )
chain_typer   r<   r   r  chain_cv	Y_pred_cvr   s           rF   (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6rH   r   )r   c                 &   [        U 5      R                  [        [        5      n [	        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=   r   classes_r   r   r   r&  r{   r(   )r   estimator_classesexpected_classess      rF   test_multi_output_classes_r7    sr     i $$Q*Ii(($////y!!"i////27I<N<N/O+,? 0PrH   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        rF   r:   DummyRegressorWithFitParams.fit      %w{1//rH   r<  r  __name__
__module____qualname____firstlineno__r:   __static_attributes____classcell__rB  s   @rF   r9  r9        0 0rH   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        rF   r:    DummyClassifierWithFitParams.fit  rD  rH   rE  r  rF  rM  s   @rF   rP  rP    rN  rH   rP  zestimator, datasetprior)strategyr1   r2   c                     [        U 5      n 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  )r   r7   r8   r:   r|   r<  )r   datasetr<   r=   rV  dummy_estimators         rF   *test_multioutput_estimator_with_fit_paramsrY    sW     i IDAq!JMM!:M.$00::::: 1rH   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   r1   r2   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       rF   r:   4test_regressor_chain_w_fit_params.<locals>.MySGD.fit  s!    ",_"=DGK+
+rH   )r^  rF  rM  s   @rF   MySGDr\    s    	, 	,rH   r`  r@  )r7   r   r   r   r
   randr   r   r!   r:   r|   r^  )r   r<   r=   weightr`  model	fit_paramests           rF   !test_regressor_chain_w_fit_paramsrf    s    
))


"C##aa@DAXXaggaj!F, ,
 57#E !&)I	IIa i   !!V+++ !rH   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   r5   rb   rT   r  )r5   r1   r   g{Gz?gGz?)p)r7   r   r   randnbinomialchoicer   astypeboolnanr"   r   r:   r   )MultiOutputEstimator	Estimatorr   r<   r=   maskpipes          rF   test_support_missing_valuesrs    s     ))


#C99RS\\!S':q::q!fagg$:6==dCDffAG)+6D""1(..q4rH   
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 )
Nra   rc   rp   r1   rb   rT   r   r   r"  )r   r   r:   r'   r;   )rt  r<   r=   r!  r  r@   rA   s          rF   !test_classifier_chain_tuple_orderrv    s}    	I/A
Q!Q!Q A1vEAA>eE 
IIaOF!fXFemmF3V<rH   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)
Nra   rc   rp   r1   rb   rT   r"  zinvalid orderrU   )tupler   r   rW   rX   rY   r:   )r<   r=   r!  r  s       rF   )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   rK   r1   r   )r   r   r   n_labelsr4   r6   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   rT   rb   Tr!  r4   verbose)r	   r   r   r$   r:   rerV   
readouterr)	capsysr<   r=   r>   r@   r?   rA   patternr*  s	            rF   test_classifier_chain_verboser    s    )!q11DA (81'M$GW	A  ! 	J NN7$88G..034444rH   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}   r1   r   )r   r3   r4   r6   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$)rT   r   rb   Tr|  )r
   r   r!   r   r:   r~  rV   r  )	r  r<   r=   r>   r@   r?   rA   r  r+  s	            rF   test_regressor_chain_verboser  ,  sz    SAAFDA'71'M$GW	A 
 	I MM'#88G..034444rH   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sgdrT   r6   rb   )
estimatorsfinal_estimatorr   )r   N)r   r   r   r   r    r:   r;   )r<   r=   stackerregs       rF   4test_multioutputregressor_ducktypes_fitted_estimatorr  ?  sV     D)DALa89:G 
1
5
5a
;C KKNrH   zCls, methodr:   rN   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.
r5   )r   zis only supported ifrU   rT   )testN)r   r   rW   rX   rY   r   )Clsmethodr<   r=   r   s        rF   test_fit_params_no_routingr  O  sG     ,DA
mo
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'rU   rN   )r    r   rW   rX   r   r   )re  rZ   s     rF   *test_multioutput_regressor_has_partial_fitr  ]  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`.rT   rb   r1   rd   r   )base_estimatorN)r  r   )	r7   r   r   rW   warnsFutureWarningr:   rX   rY   )rp  r<   r=   r   s       rF   test_base_estimator_deprecationr  g  s     	1a&1a&!"A
1a&1a&!"A"$I	m	$+//5 
% 
z	"@DDQJ 
#	" 
%	$ 
#	"s   B4C4
C
C)r~  numpyr7   rW   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   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.   rG   rR   r[   markparametrizer_   ri   rn   ru   	load_irisirisdatar<   targetr   r   y3r   r=   r   r   r   r   r   uniquer   r   mapr{   thread_unsafer   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   rH   rF   <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rH   