
    ri7                     l   d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZmZ  ed      \  ZZ  eed      Zedd e dd cZ!Z"ejF                  jI                  dg d      d        Z%ejF                  jI                  dddg      d        Z&ejF                  jI                  dddddgg      ejF                  jI                  dddg      d               Z'ejF                  jI                  dg d      d        Z(ejF                  jI                  dddg      d        Z)ejF                  jI                  dddg      d        Z*ejF                  jI                  dddg      ejF                  jI                  dddg      d               Z+ejF                  jI                  d  e       e!e"d!dd"if e       e!e"d#d"d$d%f e       ee d&ddifg      d'        Z,ejF                  jI                  dddg      d(        Z-ejF                  jI                  dddg      d)        Z.ejF                  jI                  d* ed+d ,      df ed+d ,      df e       dfg      d-        Z/d. Z0ejF                  jI                  dg d/      d0        Z1d1 Z2y)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                     t        | g      }d}|j                  j                   d}t        j                  t
        |      5  t        |||        ddd       y# 1 sw Y   yxY w)zLCheck 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       _/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/utils/tests/test_response.py(test_get_response_values_regressor_errorr+      sc     1?BSTL(A''0011OPG	z	1 O\1oNO O Os   AA%return_response_method_usedc                     t        dd      \  }}t               j                  ||      }t        ||d|       }t	        |d   |j                  |             |d   J | r|d   dk(  sJ yy)	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8DAq "&&q!,I"	!$?	G wqz9#4#4Q#781:"qzY&&& #    r2   r   c                    t        dd      \  }}t        d      j                  ||      }t        ||| |      }t	        | t
              r| d   n| }t        ||      }t        |d    ||             |d   J |r|d   |k(  sJ yy)	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     !<DAq&A6::1a@"	'$?	G )$?_    02HIwqz#4Q#781:"qz3333 #r;   )r   r   r2   r   c                     t        ddd      \  }}t               j                  ||      }d}t        j                  t
        |      5  t        ||| d       d	d	d	       y	# 1 sw Y   y	xY w)
zVCheck 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   sj     qqIDAq#%))!Q/J VG	z	1 
+ 		

 
 
s   	A""A+r   r   c                    t        ddd      \  }}t        j                  |      }t               j	                  ||      }d}t        j                  t        |      5  t        |||        ddd       y# 1 sw Y   yxY w)	zpCheck 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   sy     )2QRSNA{]];/N')--a@J	  
z	1 MZOLM M Ms   A66A?c                    t        ddddgd      \  }}t               j                  ||      }d}t        |||d| 	      }t	        |d   |j                  |             |d
   d
k(  sJ | r
|d   dk(  sJ t        ||||j                  d   | 	      }t	        |d   |j                  |      dz         |d
   dk(  sJ | r|d   dk(  sJ yy)zaCheck 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
	DAq $%))!Q/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                    t        ddddgd      \  }}t               j                  ||      }t        |||d|       }t	        |d    t        ||      |      ddd	f          |d	   d	k(  sJ | rt        |      d
k(  sJ |d   |k(  sJ t        |      dk(  sJ t        ||||j                  d   |       ^}}}t	        | t        ||      |      dddf          |dk(  sJ y)zQCheck 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
	DAq $%))!Q/J #	'$?G GAJ D
O DQ G1 MN1:??"7|q   qz_,,,7|q    1	'%%a($?FI F@GJ@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                     t        |       j                  ||      } t        j                  t        |      5  t        | |fi | ddd       y# 1 sw Y   yxY w)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      sM    : i $$Q*I	z	1 <#Iq;F;< < <s   AAc                    t               j                  t        t              }t	        |t        d|       }t        |d   |j                  t              dddf          |d   dk(  sJ | r
|d   dk(  sJ t	        |t        dd|       }t        |d   |j                  t              dddf          |d   dk(  sJ | r|d   dk(  sJ yy)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                 ~   t               j                  t        t              }t	        |t        d|       }t        |d   |j                  t                     |d   dk(  sJ | r
|d   dk(  sJ t	        |t        dd|       }t        |d   |j                  t              dz         |d   dk(  sJ | r|d   dk(  sJ yy)	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                    t        |       } | j                  t        t               t	        | t        |      \  }}|J |j
                  t        j
                  d   t        | j                        fk(  sJ |dk(  r-t        j                  |dk\  |dk        j                         sJ y|dk(  r|dk  j                         sJ yy)zCheck 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	/	/s"''))) 
0r;   c                  n   t               j                  t        t              } t	        | t        ddgd      \  }}}t        || j                  t              dddf          |dk(  sJ |dk(  sJ t	        | t        ddgd      \  }}}t        || j                  t                     |dk(  sJ |dk(  sJ y)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 *>(*=>$(	*&FI FJ44X>q!tDE>>o--- *>,o>$(	*&FI FJ88BC>>1111r;   )r   r   r2   c                    t        d      \  }}t        t                     j                  ||      }t	        |||       \  }}|J |j
                  |j
                  k(  sJ | dk(  r-t        j                  |dk\  |dk        j                         sJ y | dk(  r1|dk  j                         dkD  sJ |dkD  j                         dkD  sJ y t        j                  |dk(  |dk(        j                         sJ y )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9DAq 2 4599!Q?I,1oFI <<177"""/)~~fk6Q;7;;===	/	/
!A%%%
!A%%%}}Vq[&A+6::<<<r;   c                     t         j                  j                  d      j                  dd      } t        j                  t        j
                  d      d      }t               j                  | |      }t        j                         5  t        j                  dt               t        || d       d	d	d	       y	# 1 sw Y   y	xY w)
a  
    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


"
"1a
(C		 	 	" Fg{3S!_EF F Fs   )B99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;   