
    Ki7                     T   S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	J
r
  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJrJr  S SKJrJr  \" SS9u  rr \" \SS9r\SS \ SS sr!r"\RF                  RI                  S/ SQ5      S 5       r%\RF                  RI                  SSS/5      S 5       r&\RF                  RI                  SSSSS//5      \RF                  RI                  SSS/5      S 5       5       r'\RF                  RI                  S/ SQ5      S 5       r(\RF                  RI                  SSS/5      S 5       r)\RF                  RI                  SSS/5      S 5       r*\RF                  RI                  SSS/5      \RF                  RI                  SSS/5      S 5       5       r+\RF                  RI                  S \" 5       \!\"S!SS"04\" 5       \!\"S#S"S$S%.4\" 5       \\ S&SS04/5      S' 5       r,\RF                  RI                  SSS/5      S( 5       r-\RF                  RI                  SSS/5      S) 5       r.\RF                  RI                  S*\" S+S S,9S4\" S+S S,9S4\" 5       S4/5      S- 5       r/S. r0\RF                  RI                  S/ S/Q5      S0 5       r1S1 r2g)2    N)clone)	load_irismake_classificationmake_multilabel_classificationmake_regression)IsolationForest)LinearRegressionLogisticRegression)ClassifierChain)scale)DecisionTreeClassifierDecisionTreeRegressor)_MockEstimatorOnOffPrediction)_get_response_values_get_response_values_binary)assert_allcloseassert_array_equalT)
return_X_yF)copyd   response_method)decision_functionpredict_probapredict_log_probac                     [        U /S9nSnUR                  R                   S3n[        R                  " [
        US9   [        XU S9  SSS5        g! , (       d  f       g= f)zHCheck the error message with regressor an not supported response
method.)response_methods)mocking_datamocking_targetz should either be a classifiermatchr   N)r   	__class____name__pytestraises
ValueErrorr   )r   my_estimatorXerr_msgs       c/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_response.py(test_get_response_values_regressor_errorr+      sT     1?BSTL(A''0011OPG	z	1\oN 
2	1	1s   A
A!return_response_method_usedc                     [        SSS9u  p[        5       R                  X5      n[        UUSU S9n[	        US   UR                  U5      5        US   b   eU (       a  US   S:X  d   egg)	z=Check the behaviour of `_get_response_values` with regressor.
   r   	n_samplesrandom_statepredictr   r,      N   )r   r	   fitr   r   r2   )r,   r(   y	regressorresultss        r*   "test_get_response_values_regressorr:   ,   s     Ra8DA "&&q,I"	!$?	G wqz9#4#4Q#781:"qzY&&& #    r2   r   c                    [        SSS9u  p#[        SS9R                  X#5      n[        UUU US9n[	        U [
        5      (       a  U S   OU n[        XF5      n[        US   U" U5      5        US   b   eU(       a  US   U:X  d   egg)	zDCheck the behaviour of `_get_response_values` with outlier detector.2   r   r/   r1   r3   r4   Nr5   )r   r   r6   r   
isinstancelistgetattrr   )r   r,   r(   r7   outlier_detectorr9   chosen_response_methodprediction_methods           r*   *test_get_response_values_outlier_detectionrE   =   s     !<DA&A6::1@"	'$?	G )$??_    0Iwqz#4Q#781:"qz3333 #r;   )r   r   r2   r   c                     [        SSSS9u  p[        5       R                  X5      nSn[        R                  " [
        US9   [        UUU SS9  S	S	S	5        g	! , (       d  f       g	= f)
zRCheck that `_get_response_values` raises the proper error message with
classifier.r.   r5   r   r0   	n_classesr1   zDpos_label=whatever is not a valid label: It should be one of \[0 1\]r   whateverr   	pos_labelN)r   r
   r6   r$   r%   r&   r   )r   r(   r7   
classifierr)   s        r*   5test_get_response_values_classifier_unknown_pos_labelrM   X   s]     qqIDA#%))!/J VG	z	1+ 		
 
2	1	1s   A
A&r   r   c                     [        SSSS9u  p[        R                  " U5      n[        5       R	                  X5      nSn[
        R                  " [        US9   [        XAU S9  SSS5        g! , (       d  f       g= f)	zlCheck that `_get_response_values` will raise an error when `y_pred` has a
single class with `predict_proba`.r.   r5   r   rG   zJGot predict_proba of shape \(10, 1\), but need classifier with two classesr   r!   N)	r   np
zeros_liker   r6   r$   r%   r&   r   )r   r(   y_two_classy_single_classrL   r)   s         r*   Htest_get_response_values_classifier_inconsistent_y_pred_for_binary_probarS   m   sf     )2QRSNA]];/N')--a@J	  
z	1ZOL 
2	1	1s   A,,
A:c                    [        SSSS/SS9u  p[        5       R                  X5      nSn[        UUUSU S	9n[	        US   UR                  U5      5        US
   S
:X  d   eU (       a  US   S:X  d   e[        UUUUR                  S   U S	9n[	        US   UR                  U5      S-  5        US
   S:X  d   eU (       a  US   S:X  d   egg)z]Check the behaviour of `_get_response_values` with `decision_function`
and binary classifier.r.   r5   333333?ffffff?r   r0   rH   weightsr1   r   Nr   rK   r,   r4   )r   r
   r6   r   r   r   classes_)r,   r(   r7   rL   r   r9   s         r*   <test_get_response_values_binary_classifier_decision_functionr\      s    c
	DA $%))!/J)O #	'$?G GAJ
 < <Q ?@1:??"qz0000 #	'%%a($?G GAJ
 < <Q ?" DE1:??"qz0000 #r;   c                    [        SSSS/SS9u  p#[        5       R                  X#5      n[        UUUSU S9n[	        US   [        XA5      " U5      SS2S	4   5        US	   S	:X  d   eU (       a  [        U5      S
:X  d   eUS   U:X  d   eO[        U5      S:X  d   e[        UUUUR                  S   U S9tpgn[	        U[        XA5      " U5      SS2S4   5        US:X  d   eg)zMCheck that `_get_response_values` with `predict_proba` and binary
classifier.r.   r5   rU   rV   r   rW   NrY   r4      )r   r
   r6   r   r   rA   lenr[   )	r,   r   r(   r7   rL   r9   y_predrK   _s	            r*   8test_get_response_values_binary_classifier_predict_probarb      s    c
	DA $%))!/J #	'$?G GAJ
 DQ G1 MN1:??"7|q   qz_,,,7|q    1	'%%a($?F FGJ@CAqDIJ>>r;   z estimator, X, y, err_msg, paramsz.Expected 'estimator' to be a binary classifierautozCpos_label=unknown is not a valid label: It should be one of \[0 1\]unknownrJ   z.be a binary classifier. Got 3 classes instead.c                     [        U 5      R                  X5      n [        R                  " [        US9   [        X40 UD6  SSS5        g! , (       d  f       g= f)zMCheck that we raise the proper error messages in _get_response_values_binary.r   N)r   r6   r$   r%   r&   r   )	estimatorr(   r7   r)   paramss        r*   test_get_response_errorrh      s@    : i $$Q*I	z	1#I;F; 
2	1	1s   A


Ac                    [        5       R                  [        [        5      n[	        U[        SU S9n[        US   UR                  [        5      SS2S4   5        US   S:X  d   eU (       a  US   S:X  d   e[	        U[        SSU S9n[        US   UR                  [        5      SS2S4   5        US   S:X  d   eU (       a  US   S:X  d   egg)zKCheck the behaviour of `_get_response_values_binary` using `predict_proba`.r   r3   r   Nr4   r5   rY   )r   r6   X_binaryy_binaryr   r   r   r,   rL   r9   s      r*   test_get_response_predict_probarm      s     ()--hAJ)'$?	G GAJ
 8 8 B1a4 HI1:??"qz_,,,)'$?G GAJ
 8 8 B1a4 HI1:??"qz_,,, #r;   c                    [        5       R                  [        [        5      n[	        U[        SU S9n[        US   UR                  [        5      5        US   S:X  d   eU (       a  US   S:X  d   e[	        U[        SSU S9n[        US   UR                  [        5      S-  5        US   S:X  d   eU (       a  US   S:X  d   egg)	zMCheck the behaviour of `_get_response_values_binary` using decision_function.r   r3   r   r4   r5   rY   rZ   N)r
   r6   rj   rk   r   r   r   rl   s      r*   #test_get_response_decision_functionro     s     $%))(H=J)+$?	G GAJ
 < <X FG1:??"qz0000)+$?G GAJ
 < <X F KL1:??"qz0000 #r;   zestimator, response_methodr5   )	max_depthr1   c                    [        U 5      n U R                  [        [        5        [	        U [        US9u  p#Ub   eUR
                  [        R
                  S   [        U R                  5      4:X  d   eUS:X  a3  [        R                  " US:  US:*  5      R                  5       (       d   egUS:X  a  US:*  R                  5       (       d   egg)zwCheck that we can call `_get_response_values` with a multiclass estimator.
It should return the predictions untouched.
r!   Nr   r   r4   r   g        )r   r6   r(   r7   r   shaper_   r[   rO   logical_andall)rf   r   predictionsrK   s       r*   #test_get_response_values_multiclassrv   .  s     i IMM!Q11oK S1C1C-D EEEE/)~~kQ.q0@AEEGGGG	/	/s"'')))) 
0r;   c                  b   [        5       R                  [        [        5      n [	        U [        SS/SS9u  pn[        XR                  [        5      SS2S4   5        US:X  d   eUS:X  d   e[	        U [        SS/SS9u  pn[        XR                  [        5      5        US:X  d   eUS:X  d   eg)zMCheck the behaviour of passing a list of responses to `_get_response_values`.r   r   Tr3   Nr4   )r
   r6   rj   rk   r   r   r   r   )rL   r`   rK   r   s       r*   +test_get_response_values_with_response_listrx   H  s    #%))(H=J *>(*=>$(	*&F F44X>q!tDE>>o--- *>,o>$(	*&F F88BC>>1111r;   )r   r   r2   c                     [        SS9u  p[        [        5       5      R                  X5      n[	        X1U S9u  pEUb   eUR
                  UR
                  :X  d   eU S:X  a3  [        R                  " US:  US:*  5      R                  5       (       d   eg U S:X  a3  US:  R                  5       S:  d   eUS:  R                  5       S:  d   eg [        R                  " US:H  US:H  5      R                  5       (       d   eg )Nr   r>   r!   r   r4   r   )r   r   r
   r6   r   rr   rO   rs   rt   sum
logical_or)r   r(   Yrf   r`   rK   s         r*   -test_get_response_values_multilabel_indicatorr}   c  s     *q9DA 2 4599!?I,oF <<177"""/)~~fk6Q;7;;====	/	/
!A%%%
!A%%%}}Vq[&A+6::<<<<r;   c                     [         R                  R                  S5      R                  SS5      n [         R                  " [         R
                  " S5      S5      n[        5       R                  X5      n[        R                  " 5          [        R                  " S[        5        [        X SS9  S	S	S	5        g	! , (       d  f       g	= f)
z
Ensure `_get_response_values` doesn't raise spurious warning.

"The number of unique classes is greater than > 50% of samples"
warning should not be raised when calling `type_of_target(classes_)`.

Non-regression test for issue #31583.
r   x   r^         errorr   r!   N)rO   randomRandomStaterandnrepeataranger
   r6   warningscatch_warningssimplefilterUserWarningr   )r(   r7   clfs      r*   9test_response_values_type_of_target_on_classes_no_warningr   z  s     			a &&sA.A
		"))B-#A


"
"1
(C		 	 	"g{3S_E 
#	"	"s   	&B88
C)3r   numpyrO   r$   sklearn.baser   sklearn.datasetsr   r   r   r   sklearn.ensembler   sklearn.linear_modelr	   r
   sklearn.multioutputr   sklearn.preprocessingr   sklearn.treer   r   sklearn.utils._mockingr   sklearn.utils._responser   r   sklearn.utils._testingr   r   r(   r7   rj   rk   markparametrizer+   r:   rE   rM   rS   r\   rb   rh   rm   ro   rv   rx   r}   r    r;   r*   <module>r      sO        - 0 ' F @ U FD!1	!%tWag ( ROO 6uF' G'  #&99%EF 6uF4 G	
4, J
	
" *_>Q,RSM TM" 6uF&1 G&1R 6uF*_>Q,RS& T G&R & "#<'	
 #$R &Y?	
 #$<0	
4<54< 6uF- G-6 6uF1 G16  	!!	<oN	!!	<>QR		23**$26 H==(Fr;   