
    -iM                     .   S SK rS SKrS SKJr  S SKJrJrJrJ	r	J
r
Jr  S SKJr  S SKJr  \R                   R#                  SSS/5      \R                   R#                  SS	S
/5      S 5       5       r\R                   R#                  SSS /5      \R                   R#                  SSS/5      \R                   R#                  S/ SQ5      S 5       5       5       r\R                   R#                  S\R(                  " / SQ5      S4\R(                  " S S/5      S4\R(                  " / SQ5      S4/5      S 5       r\R                   R#                  SSS/5      \R                   R#                  SS\R(                  " / SQ5      4S\R(                  " / SQ5      4/5      S 5       5       r\R                   R#                  SSS 0\R(                  " SS/S!S"//5      \R(                  " S S/5      SSS#.S$4S SS/SS//S!S"/S!S"//S%.S&.\R(                  " SS//5      \R(                  " S S/5      SSS#.S'4S SS/SS//S!S"/S!S"//S%.S&.\R(                  " / S(Q5      \R(                  " / S)Q5      SSS#.S*4S SS/SS//S!S"/S!S"//S%.S&.\R(                  " / S(Q5      \R(                  " / SQ5      \R(                  " S+/5      SS#.S4S SS/SS//S!S"/S!S"//S%.S&.\R(                  " / S(Q5      \R(                  " / S,Q5      SSS#.S-4/5      S. 5       r\R                   R#                  S// S0Q5      S1 5       r\R                   R#                  S2S3S40S/5      \R                   R#                  S50 S3S40/5      S6 5       5       rS7 r\R                   R#                  SSS8S8//5      \R                   R#                  S9S:S;S<.SSS<./5      \R                   R#                  S=S>S?/5      \R                   R#                  S2SS@SA0/5      SB 5       5       5       5       r\R                   R#                  SSS8/ SCQ/5      \R                   R#                  S9SD/ SEQ0SD/ SFQ0/5      \R                   R#                  S=S>S?/5      SG 5       5       5       rSH rSI r\R                   R#                  SJSKSLSMSNSOSPSQSRSS\STSS4SS\SUSS4S\STSV4S\SUSW4SS\STSS4SS\SUSS4S\STSW4S\SUSV4/5      SX 5       r\R                   R#                  SY\R@                  " SZSS[5      S[S\4\R@                  " SZSS]5      * S^S_4\RB                  " S SS[5      S`Sa4/ SbQScSd4/5      Se 5       r"\R                   R#                  SfSgSSh.SiSj0SgSSjSk.4SgSlSm.SASjSn.SASjSm.4SoSpSqSr.SsSt0SoSpStSr.40 0 0 40 SjSASuSvSSwSgS[Sx.SjSASuSvSSwSgS[Sy.4/5      Sz 5       r#\R                   R#                  S{0 SS!S|.40 S}SgS~.4/5      S 5       r$S r%\R                   R#                  SSS/5      \R                   R#                  SSS/5      S 5       5       r&g)    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                     [        5       nSUl        U(       a  U R                  5       u  pQUR                  XS9u  penXs:X  d   eU(       a  X:X  d   egg)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           T/var/www/html/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_plotting.pytest_validate_plot_paramsr      s[     12G,G	!!7727IFx(((	|| 
    	pos_labelr   r   response_method)autopredict_probadecision_functionc           	      :   [         R                  " SS/SS/SS/SS//5      n[         R                  " / SQ5      n[        5       R                  XE5      n[        R
                  " UUUUUUS9u  pqn[        XdX1S9u  p[        Xy5        X:X  d   eUb  UOS	nX:X  d   eg)
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"$((.I 	+LL+	
  Fx +Fo+'O F,*** !,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                     [         R                  " / SQ5      n[         R                  " S5      n[        R                  " [
        US9   [        R                  " UUUSS9  SSS5        g! , (       d  f       g= f)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   sT     XX*+FGGAJM	z	7*LL'		
 
8	7	7s   A))
A7zpos_label, y_true)r   r$   r   r$   r%   c                     [         R                  " / SQ5      n[        R                  " UUSUUS9u  pVUb  UOSnXg:X  d   eUb  UOSnXX:X  d   eg)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   [   sl     XX*+F*LL	
 M !,D,M$$$ '0&;...r   zparams, err_msgr-   dummyr&   r7   )
cv_resultsr+   r,   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 binary      ?)r%   r&   r%   r&   z6y takes value in {2, 3} and pos_label is not specifiedc                     [         R                  " [        US9   [        5       R                  " S0 UD6  SSS5        g! , (       d  f       g= f)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_paramsrR   y   s4    T 
z	1*,MMWPVW 
2	1	1s	   >
Az/curve_legend_metric, curve_name, expected_label))g333333?Nz
AUC = 0.85)NModel ArS   )gffffff?zRandom ForestzRandom Forest (AUC = 0.95)NNNc                 D    Sn[         R                  " XU5      nXB:X  d   eg)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]      s.     .@@);E """r   curve_kwargsalpha      ?kwargsc                    SnSnSSS.nSnU (       aE  U(       a>  [         R                  " [        SS9   [        R                  " UUUUU 40 UD6  SSS5        gU(       a>  [         R
                  " [        S	S9   [        R                  " UUUUU 40 UD6  SSS5        g[        R                  " X#XEU 40 UD6  g! , (       d  f       g= f! , (       d  f       g= f)
z;Check `_validate_curve_kwargs` deprecates kwargs correctly.r$   N皙?r5   meanstdrV   z"Cannot provide both `curve_kwargs`r8   z`\*\*kwargs` is deprecated and)r=   r>   r?   r   _validate_curve_kwargswarnsFutureWarning)r^   ra   n_curvesr   legend_metricr[   s         r   +test_validate_curve_kwargs_deprecate_kwargsrl      s     HD -M]]:-QR.EE"  SR 
\\-/PQ.EE"  RQ 	+AAM|	
OU	
+ SR RQs   B78C7
C
Cc            	         Sn SSS.nSn[         R                  " [        SS9   [        R                  " U SUUS	S
0/S9  SSS5        [         R                  " [        SS9   / SQn[        R                  " U UUUSS9  [        R                  " U UUUS	S
0S9  SSS5        g! , (       d  f       Ng= f! , (       d  f       g= f)zGCheck `_validate_curve_kwargs` performs parameter validation correctly.r&   rc   r5   rd   rV   z`curve_kwargs` must be Noner8   Nr_   r`   rj   r   rk   r[   r^   z#To avoid labeling individual curvesonetwothree)r=   r>   r?   r   rg   )rj   rk   r[   r   s       r    test_validate_curve_kwargs_errorrs      s    H -M	z)F	G*AA'1"C.)	
 
H 
z)N	O&*AA'1	
 	+AA'1!3	
 
P	O 
H	G 
P	Os   B  7B1 
B.1
B?rY   rk   rc   r6   rd   r[   rV   APcolorredc                 |   Sn[         R                  " UU UUUS9n[        U[        5      (       d   e[	        U5      U:X  d   eSn[        U [        5      (       a  U S   n U b  U nUS   b	  USU S3-   nOUS   b  U S3nUS   S	   U:X  d   eUS
   S	   b   eUS   S	   b   eUce  [        S U 5       5      (       d   e[        S U 5       5      (       d   e[        S U 5       5      (       d   e[        S U 5       5      (       d   eg[        S U 5       5      (       d   e[        S U 5       5      (       d   eg)zNCheck `_validate_curve_kwargs` returns correct kwargs for single legend entry.r&   rn   Nr   re    (z = 0.80 +/- 0.20)z = 0.80 +/- 0.20r\   r$   r%   c              3   >   #    U  H  n[        U5      S :H  v   M     g7f)r7   Nlen.0ra   s     r   	<genexpr>;test_validate_curve_kwargs_single_legend.<locals>.<genexpr>O       C2B3v;!#2B   c              3   0   #    U  H  oS    S:H  v   M     g7f)r_   rL   NrN   r|   s     r   r~   r   P  s     I8Hf'?c)8H   c              3   0   #    U  H  oS    S:H  v   M     g7f)	linestyle--NrN   r|   s     r   r~   r   Q  s     N=M6+&$.=Mr   c              3   0   #    U  H  oS    S:H  v   M     g7f)ru   blueNrN   r|   s     r   r~   r   R  s     L;K'?f,;Kr   c              3   >   #    U  H  n[        U5      S :H  v   M     g7fr%   Nrz   r|   s     r   r~   r   T  r   r   c              3   0   #    U  H  oS    S:H  v   M     g7f)ru   rv   NrN   r|   s     r   r~   r   U  s     K:J'?e+:Jr   )r   rg   
isinstancelistr{   all)r   rk   r[   r^   rj   curve_kwargs_outrZ   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'/// C2BCCCCCI8HIIIIIN=MNNNNNL;KLLLLLC2BCCCCCK:JKKKKKr   ro   metric)r`   r`   r`   rT   c                    SnSS0SS0SS0/n[         R                  " UU UUUS9n[        U[        5      (       d   e[	        U5      U:X  d   e/ SQn[        U [
        5      (       a  SnUS	   S
   b	  USU S3-   nU/U-  nOi[        U [        5      (       a  US	   S
   c  U nOH[        U [        5      (       a!  US	   S
   b  U  Vs/ s H
  ow SU S3PM     nnOUS	   S
   b	  U S3/U-  n[        U5       H  u  pXX   S   U	:X  a  M   e   [        S U 5       5      (       d   e[        XE5       H  u  pUS   U
S   :X  a  M   e   gs  snf )zMCheck `_validate_curve_kwargs` returns correct kwargs for multi legend entry.r&   ru   rv   yellowr   rn   rT   rY   r   r   Nrx   z = 1.00)z = 1.00r\   c              3   >   #    U  H  n[        U5      S :H  v   M     g7fr   rz   r|   s     r   r~   :test_validate_curve_kwargs_multi_legend.<locals>.<genexpr>  s     ?.>Fs6{a.>r   )	r   rg   r   r   r{   str	enumerater   zip)r   rk   r[   rj   r^   r   expected_labelsname_singleidxrZ   curve_kwargcurve_kwarg_outs               r   'test_validate_curve_kwargs_multi_legendr   X  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
NR{m201:d 	 
 
x	 	#	/019:XE(9$W-???  : ?.>?????(+L(K$w';w+???? )L
s   Ec                      g NrN   rN   r   r   r   r         r   c                      g r   rN   rN   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                 (    [        XU5      U:X  d   eg)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                 :    U[        U 5      s=:  a  U:  d   e   eg 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   )ru   	linewidthr   dashed)ru   r   r   solid)ru   r   )clsxxxkr   )r\   ru   r   r   z-.blackr   green)r   r   ecfclwmecmfcaltms)r   ru   	edgecolor	facecolorr   markeredgecolormarkerfacecoloralt
markersizec                 @    [        X5      nX2:X  d   SU SU S35       eg)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     s9    \ $N@F 	hl8*A	/r   zdefault_kwargs, user_kwargs)r   r   r)r   ru   c                     [         R                  " [        5         [        X5        SSS5        g! , (       d  f       g= f)z3Check that `validate_style_kwargs` raises TypeErrorN)r=   r>   	TypeErrorr	   )r   r   s     r    test_validate_style_kwargs_errorr     s$     
y	!~; 
"	!	!s   0
>c                 N   U R                  5       n[        U5        UR                  S   R                  5       SL d   eUR                  S   R                  5       SL d   eUR                  S   R	                  5       S:X  d   eUR                  S   R	                  5       S:X  d   eg )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                    SnSnU S:X  a  [        XU5      nXA:X  d   egUc@  SU SU S3n[        R                  " [        US9   [        XU5      nSSS5        WU :X  d   egUb8  S	U SU S
3n[        R                  " [
        US9   [        XU5        SSS5        gg! , (       d  f       NS= f! , (       d  f       g= f)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=   rh   ri   r>   r?   )r   r   versionversion_remover   warning_messager   rA   s           r   test_deprecate_estimator_namer     s     GN%,^7K	0	9Q35 	 \\-?.~WMF @'''		  'y(@@PPRT 	 ]]:];%nGD <; 
 @? <;s   BB/
B,/
B=)'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   rR   r]   rl   rs   r   r   r   r   r   	geomspacelinspacer   r   r   r   r   rN   r   r   <module>r      s     3  @ 2 d|, 79UV - tQi0$!56E% 7 1
%: 	)	;<	1a&	DE	,	!PQ

 $!56	rxx%&	
BHH\"#/ 7/, 
  +G4XX1v1v./XXq!f%!%! A
	
 ")*+Q!Q(8QFQPQFCST
 XX1vh'XXq!f%!%!
 9	
" ")*+Q!Q(8QFQPQFCST XXl+XXl+!%!
 +	
" ")*+Q!Q(8QFQPQFCST XXl+XXl+!#3%!
 6	
" ")*+Q!Q(8QFQPQFCST XXl+XXl+!%!
 E	
mDGPXQGPX 5## 7C.$)?@B##78
 9 A
D
> $|n!EFS!d# -t}=	%(L > G (LV $6M!NOx1H>P3QR -t}=$@ > P
$@N		 <--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   