
    riGO                     6   d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ ej                   j#                  dddg      ej                   j#                  dd	d
g      d               Zej                   j#                  ddd g      ej                   j#                  dddg      ej                   j#                  dg d      d                      Zej                   j#                  d ej(                  g d      df ej(                  d dg      df ej(                  g d      dfg      d        Zej                   j#                  dddg      ej                   j#                  dd ej(                  g d      fd ej(                  g d      fg      d               Zej                   j#                  ddd i ej(                  ddgd!d"gg       ej(                  d dg      dd#d$fd ddgddggd!d"gd!d"ggd%d& ej(                  ddgg       ej(                  d dg      dd#d'fd ddgddggd!d"gd!d"ggd%d& ej(                  g d(       ej(                  g d)      dd#d*fd ddgddggd!d"gd!d"ggd%d& ej(                  g d(       ej(                  g d       ej(                  d+g      d#dfg      d,        Zej                   j#                  d-g d.      d/        Zej                   j#                  d0d1d2idg      ej                   j#                  d3i d1d2ig      d4               Zd5 Zej                   j#                  ddd6d6gg      ej                   j#                  d7d8d9d:ddd:g      ej                   j#                  d;d<d=g      ej                   j#                  d0dd>d?ig      d@                             Zej                   j#                  ddd6g dAg      ej                   j#                  d7dBg dCidBg dDig      ej                   j#                  d;d<d=g      dE                      Zej                   j#                  d0dd>d?ig      ej                   j#                  dFdd!g      dG               ZdH ZdI Zej                   j#                  dJdKdLdMdNdOdPdQdRdSedTdSfdSedUdSfdedTdVfdedUdWfdSedTdSfdSedUdSfdedTdWfdedUdVfg      dX        Z ej                   j#                  dY ejB                  dZdd[      d[d\f ejB                  dZdd]       d^d_f ejD                  d dd[      d`dafg dbdcddfg      de        Z#ej                   j#                  dfdgddhdidjidgddjdkfdgdldmd?djdnd?djdmfdodpdqdrdsdtidodpdtdrfi i i fi djd?dudvddwdgd[dxdjd?dudvddwdgd[dyfg      dz        Z$ej                   j#                  d{i dd!d|fi d}dgd~fg      d        Z%d Z&ej                   j#                  dddg      ej                   j#                  dddg      d               Z'y)    N)LogisticRegression)"_BinaryClassifierCurveDisplayMixin_deprecate_estimator_name_despine_interval_max_min_ratio_validate_score_name_validate_style_kwargs)_get_response_values_binary)assert_allcloseaxAxzname, expected_name_out)NTestEstimator)
CustomNamer   c                     t               }d|_        |r| j                         \  }}|j                  ||      \  }}}||k(  sJ |r||k(  sJ yy)z9Check `_validate_plot_params` returns the correct values.r   )r   nameN)r   estimator_namesubplots_validate_plot_params)pyplotr   r   expected_name_outdisplay_ax_outname_outs           _/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/utils/tests/test_plotting.pytest_validate_plot_paramsr      sf     12G,G	!2!772D7IFAx((((	V|| 
    	pos_labelr   r   response_method)autopredict_probadecision_functionc                 J   t        j                  ddgddgddgddgg      }t        j                  g d      }t               j                  ||      }t	        j
                  ||||||      \  }}}t        ||||      \  }	}
t        ||	       ||
k(  sJ ||nd	}||k(  sJ y)
zECheck `_validate_and_get_response_values` returns the correct values.r            )r   r   r%   r%   )r   r   r   )r   r   Nr   )nparrayr   fitr   !_validate_and_get_response_valuesr
   r   )r   r   r   r   Xy	estimatory_predr   expected_y_predexpected_pos_labelexpected_names               r   %test_validate_and_get_response_valuesr2   #   s     	1a&1a&1a&1a&12A
A"$((A.I 	+LL+	
  FIx +F1o+'O' FO,**** !,D2FM}$$$r   zy_true, error_message)r   r$   r%   zThe target y is not binary.r$   z'Found input variables with inconsistent)r   r%   r   r%   z,y_true takes value in \{0, 2\} and pos_labelc                     t        j                  g d      }t        j                  d      }t        j                  t
        |      5  t        j                  |||d       ddd       y# 1 sw Y   yxY w)zDCheck `_validate_from_predictions_params` raises the correct errors.皙?皙?g333333?g?   matchN)y_truer.   sample_weightr   )r'   r(   onespytestraises
ValueErrorr   !_validate_from_predictions_params)r   r:   error_messager.   r;   s        r   ,test_validate_from_predictions_params_errorsrB   E   s]     XX*+FGGAJM	z	7 
*LL'		

 
 
s   A++A4zpos_label, y_true)r   r$   r   r$   r%   c                     t        j                  g d      }t        j                  ||d||      \  }}||nd}||k(  sJ ||nd}||k(  sJ y)zECheck `_validate_from_predictions_params` returns the correct values.r4   N)r:   r.   r;   r   r   
Classifierr$   )r'   r(   r   r@   )	r   r   r   r:   r.   pos_label_outr   r1   r0   s	            r   -test_validate_from_predictions_params_returnsrF   [   ss     XX*+F*LL	
 M8 !,D,M}$$$ '0&;....r   zparams, err_msgr-   dummyr&   r7   )
cv_resultsr+   r,   r;   z2`cv_results` does not contain one of the following)testtrain)r-   indicesz*`X` does not contain the correct number of)r$   r%   r&   r7   )r   r%   r$   r&   zThe target `y` is not binaryg      ?c                     t        j                  t        |      5   t               j                  di | ddd       y# 1 sw Y   yxY w)z2Check parameter validation is performed correctly.r8   N )r=   r>   r?   r    _validate_from_cv_results_params)r   paramserr_msgs      r   $test_validate_from_cv_results_paramsrQ   y   sD    p 
z	1 XM*,MMWPVWX X Xs   A  A	z/curve_legend_metric, curve_name, expected_label))g333333?Nz
AUC = 0.85)NModel ArR   )gffffff?zRandom ForestzRandom Forest (AUC = 0.95)NNNc                 D    d}t        j                  | ||      }||k(  sJ y)z4Check `_get_legend_label` returns the correct label.AUCN)r   _get_legend_label)curve_legend_metric
curve_nameexpected_labellegend_metric_namelabels        r   test_get_legend_labelr\      s2     .@@Z);E N"""r   curve_kwargsalpha      ?kwargsc                    d}d}ddd}d}| rA|r?t        j                  t        d      5  t        j                  ||||| fi | ddd       y|r?t        j
                  t        d	      5  t        j                  ||||| fi | ddd       yt        j                  ||||| fi | y# 1 sw Y   yxY w# 1 sw Y   yxY w)
z;Check `_validate_curve_kwargs` deprecates kwargs correctly.r$   N皙?r5   meanstdrU   z"Cannot provide both `curve_kwargs`r8   z`\*\*kwargs` is deprecated and)r=   r>   r?   r   _validate_curve_kwargswarnsFutureWarning)r]   r`   n_curvesr   legend_metricrZ   s         r   +test_validate_curve_kwargs_deprecate_kwargsrk      s     HD -M]]:-QR 	.EE" 	 	 
\\-/PQ 	.EE" 	 	 	+AAdM+=|	
OU	
+	 		 	s   B+,B7+B47C c            	         d} ddd}d}t        j                  t        d      5  t        j                  | d||d	d
ig       ddd       t        j                  t        d      5  g d}t        j                  | |||d       t        j                  | |||d	d
i       ddd       y# 1 sw Y   hxY w# 1 sw Y   yxY w)zGCheck `_validate_curve_kwargs` performs parameter validation correctly.r&   rb   r5   rc   rU   z`curve_kwargs` must be Noner8   Nr^   r_   ri   r   rj   rZ   r]   z#To avoid labeling individual curvesonetwothree)r=   r>   r?   r   rf   )ri   rj   rZ   r   s       r    test_validate_curve_kwargs_errorrr      s    H -M	z)F	G 
*AA'1"C.)	

 
z)N	O 
&*AA'1	
 	+AA'1!3	

 

 

 
s   B*&;B6*B36B?rX   rj   rb   r6   rc   rZ   rU   APcolorredc                    d}t        j                  || |||      }t        |t              sJ t	        |      |k(  sJ d}t        | t              r| d   } | | }|d   |d| dz   }n
|d   | d}|d   d	   |k(  sJ |d
   d	   J |d   d	   J |t        d |D              sJ yt        d |D              sJ y)zNCheck `_validate_curve_kwargs` returns correct kwargs for single legend entry.r&   rm   Nr   rd    (z = 0.80 +/- 0.20)z = 0.80 +/- 0.20r[   r$   r%   c              3   $   K   | ]  }d |v 
 yw)rt   NrM   .0r`   s     r   	<genexpr>z;test_validate_curve_kwargs_single_legend.<locals>.<genexpr>3  s     HV7&(Hs   c              3   ,   K   | ]  }|d    dk(    ywrt   ru   NrM   ry   s     r   r{   z;test_validate_curve_kwargs_single_legend.<locals>.<genexpr>5  s     K6'?e+K   )r   rf   
isinstancelistlenall)r   rj   rZ   r]   ri   curve_kwargs_outrY   s          r   (test_validate_curve_kwargs_single_legendr     s!    H9PP#-! &--- H,,,N$Aw ,+3E2FFW.XXN	v		*.//?@Aw'>999Aw'///Aw'///H7GHHHHK:JKKKKr   rn   metric)r_   r_   r_   rS   c                 2   d}ddiddiddig}t        j                  || |||      }t        |t              sJ t	        |      |k(  sJ g d}t        | t
              rd}|d	   d
   	|d| dz   }|g|z  }nZt        | t              r|d	   d
   | }n?t        | t              r|d	   d
   | D cg c]
  }| d| d }}n|d	   d
   	| dg|z  }t        |      D ]  \  }}	||   d   |	k(  rJ  t        ||      D ]  \  }
}|d   |
d   k(  rJ  yc c}w )zMCheck `_validate_curve_kwargs` returns correct kwargs for multi legend entry.r&   rt   ru   yellowbluerm   rS   rX   r   r   Nrw   z = 1.00)z = 1.00r[   )r   rf   r   r   r   str	enumeratezip)r   rj   rZ   ri   r]   r   expected_labelsname_singleidxrY   curve_kwargcurve_kwarg_outs               r   'test_validate_curve_kwargs_multi_legendr   8  s    He$w&9GV;LML9PP#-! &--- H,,,(O$&"1%1-"5G4H0QQO*+h6	D$	M($;A$>$F	D$	M($;A$>$JNR
?J{m201:
 
 
x	 	#	/019:XE(9 @^$W-???@ ),L:J(K @$_w';w+????@
s   /Dri   c                 V   t        j                  | ddddd|ddidd	d
d      }| dkD  rTt        d |D              sJ t        d |D              sJ |t        d |D              sJ t        d |D              sJ yy|t        d |D              sJ yt        d |D              sJ y)z0Check default kwargs are incorporated correctly.rI   rb   r6   rc   r   rt   r   ffffff?--green)r^   	linestylert   )ri   r   rj   rZ   r]   default_curve_kwargsdefault_multi_curve_kwargsr$   c              3   ,   K   | ]  }|d    dk(    yw)r^   r   NrM   rz   kwargs     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>r  s     GU5>S(Gr~   c              3   ,   K   | ]  }|d    dk(    yw)r   r   NrM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>s  s     L%5%-Lr~   Nc              3   ,   K   | ]  }|d    dk(    yw)rt   r   NrM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>v  s     OUuW~0Or~   c              3   ,   K   | ]  }|d    dk(    ywr}   rM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>y  s     M5uW~.Mr~   c              3   ,   K   | ]  }|d    dk(    yw)rt   r   NrM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>}  s     J5>V+Jr~   c              3   ,   K   | ]  }|d    dk(    ywr}   rM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>  s     Iu5>U*Ir~   )r   rf   r   )ri   r]   r   s      r   )test_validate_curve_kwargs_default_kwargsr   c  s     :PP"3/#!%v.-0tg#V !|G6FGGGGL;KLLLLO>NOOOO M<LMMMM P
 
	J9IJJJJ I8HIIIIr   c                       y NrM   rM   r   r   r   r         r   c                       y r   rM   rM   r   r   
neg_metricr     r   r   z6score_name, scoring, negate_score, expected_score_name)accuracyNFr   )Nr   FAccuracy)Nr   TzNegative accuracy)Nneg_mean_absolute_errorFzNegative mean absolute error)Nr   TzMean absolute error)MAEr   Tr   )NNFScore)NNTzNegative scorezSome metricFTMetriczNegative metricc                 (    t        | ||      |k(  sJ y)z*Check that we return the right score name.N)r   )
score_namescoringnegate_scoreexpected_score_names       r   test_validate_score_namer     s    0 	Z,?CVVVr   zdata, lower_bound, upper_boundr5         
         g?g?)r$   r%   r   r      2   r   (   c                 6    |t        |       cxk  r|k  sJ  J y r   )r   )datalower_boundupper_bounds      r   test_inverval_max_min_ratior     s#      06DDDDDDr   z%default_kwargs, user_kwargs, expectedr   )rt   	linewidthr   dashed)rt   r   r   solid)rt   r   )clsxxxkr   )r[   rt   r   r   z-.blackr   r   )r   r   ecfclwmecmfcaltms)r   rt   	edgecolor	facecolorr   markeredgecolormarkerfacecoloralt
markersizec                 B    t        | |      }||k(  sJ d| d| d       y)zLCheck the behaviour of `validate_style_kwargs` with various type of entries.zLThe validation of style keywords does not provide the expected results: Got z instead of .N)r	   )default_kwargsuser_kwargsexpectedresults       r   test_validate_style_kwargsr     s=    \ $NK@FX 	hl8*A	/r   zdefault_kwargs, user_kwargs)r   r   r)r   rt   c                 x    t        j                  t              5  t        | |       ddd       y# 1 sw Y   yxY w)z3Check that `validate_style_kwargs` raises TypeErrorN)r=   r>   	TypeErrorr	   )r   r   s     r    test_validate_style_kwargs_errorr     s/     
y	! <~{;< < <s   09c                 F   | j                         }t        |       |j                  d   j                         du sJ |j                  d   j                         du sJ |j                  d   j	                         dk(  sJ |j                  d   j	                         dk(  sJ y )NtopFrightbottom)r   r$   left)gcar   spinesget_visible
get_bounds)r   r   s     r   test_despiner     s    	BRL99U'')U22299W))+u44499X))+v55599V'')V333r   r   my_est_name
deprecatedmy_namec                 r   d}d}| dk(  rt        | ||      }||k(  sJ y|Bd| d| d}t        j                  t        |      5  t        | ||      }ddd       | k(  sJ y|;d	| d| d
}t        j                  t
        |      5  t        | ||       ddd       yy# 1 sw Y   OxY w# 1 sw Y   yxY w)z3Check `_deprecate_estimator_name` behaves correctlyz1.7z1.9r   Nz"`estimator_name` is deprecated in z and will be removed in z. Use `name` instead.r8   zSCannot provide both `estimator_name` and `name`. `estimator_name` is deprecated in z. )r   r=   rg   rh   r>   r?   )r   r   versionversion_remover   warning_messager   rA   s           r   test_deprecate_estimator_namer     s     GN%,^T7K4	0	9Q35 	 \\-? 	N.~tWMF	N'''		  'y(@@PPRT 	 ]]:]; 	E%ndGD	E 	E 
	N 	N	E 	Es   B!	B-!B*-B6)(numpyr'   r=   sklearn.linear_modelr   sklearn.utils._plottingr   r   r   r   r   r	   sklearn.utils._responser
   sklearn.utils._testingr   markparametrizer   r2   r(   rB   rF   rQ   r\   rk   rr   r   r   r   r   r   r   	geomspacelinspacer   r   r   r   r   rM   r   r   <module>r      s     3  @ 2 d|, 79UV - tQi0$!56E% 7 1
%: 	)	;<	1a&	DE	,	!PQ

 $!56	xrxx%&	
HBHH\"#/ 7/, 
  +G4RXX1v1v./RXXq!f%!% A		
 ")*+Q!Q(8QFQPQFCST
 RXX1vh'RXXq!f%!%	 9	
  ")*+Q!Q(8QFQPQFCST RXXl+RXXl+!%	 +	
  ")*+Q!Q(8QFQPQFCST RXXl+RXXl+!)3%	 6	
K25lXm5lX 5## 7C.$)?@B##78
 9 A
D
> $|n!EF#d ;< -t}=$%0@)AB#L C >	 G#LL $6M!NOx1H>P3QR -t}=#@ > P
#@L $%0@)ABaV,J - CJ<		 <--5PF7$,	}5	m4	vuh'	vt./	
E=9	
D-8	z5"34	z4*!*+* $ 
c1a	 !Q'
",,sAr
"	"Aq)	Q1	sC( 
B'EE + 1-(#18D	
 73x((3	
 c=4Lc=	

 
R 	 &$%#*&,		
#(+XY+X !
#$rv+F&GH<	<4 )M<+HI$	!23E 4 JEr   