
    /iiGO                     `   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                            dddg          ej                            dd	d
g          d                         Zej                            ddd g          ej                            dddg          ej                            dg d          d                                     Ze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                            dddg          ej                            dd ej        g d          fd ej        g d          fg          d                         Ze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                            d-g d.          d/             Zej                            d0d1d2idg          ej                            d3i d1d2ig          d4                         Zd5 Zej                            ddd6d6gg          ej                            d7d8d9d:ddd:g          ej                            d;d<d=g          ej                            d0dd>d?ig          d@                                                 Zej                            ddd6g dAg          ej                            d7dBg dCidBg dDig          ej                            d;d<d=g          dE                                     Zej                            d0dd>d?ig          ej                            dFdd!g          dG                         ZdH ZdI Ze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                            dY ej!        dZdd[          d[d\f ej!        dZdd]           d^d_f ej"        d dd[          d`dafg dbdcddfg          de             Z#e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                            d{i dd!d|fi d}dgd~fg          d             Z%d Z&ej                            dddg          ej                            dddg          d                         Z'dS )    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|                                 \  }}|                    ||          \  }}}||k    sJ |r||k    sJ dS dS )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           g/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_plotting.pytest_validate_plot_paramsr      s     122G,G	 "!!2!772D7I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                                          ||          }t	          j        ||||||          \  }}}t          ||||          \  }	}
t          ||	           ||
k    sJ ||nd	}||k    sJ dS )
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22A
A"$$((A..I 	+L+	
 	
 	
  FIx +F1o+ + +'O' FO,,,***** !,DD2FM}$$$$$$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           dS # 1 swxY w Y   dS )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     X***++FGAJJM	z	7	7	7 
 
*L'		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   A,,A03A0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 dS )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   [   s     X***++F*L	
 	
 	
 M8 !,DD,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           dS # 1 swxY w Y   dS )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   s    p 
z	1	1	1 X XM*,,MWWPVWWWX X X X X X X X X X X X X X X X X Xs   A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                 F    d}t          j        | ||          }||k    sJ dS )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=     .@Z); E N""""""r   curve_kwargsalpha      ?kwargsc                    d}d}ddd}d}| rN|rLt          j        t          d          5  t          j        ||||| fi | ddd           dS # 1 swxY w Y   dS |rLt          j        t          d	          5  t          j        ||||| fi | ddd           dS # 1 swxY w Y   dS t          j        ||||| fi | dS )
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RR 	 	.E"    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
 
\-/PQQQ 	 	.E"    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	+AdM+=|	
 	
OU	
 	
 	
 	
 	
s#   AAA9BB!$B!c            	         d} ddd}d}t          j        t          d          5  t          j        | d||d	d
ig           ddd           n# 1 swxY w Y   t          j        t          d          5  g d}t          j        | |||d           t          j        | |||d	d
i           ddd           dS # 1 swxY w Y   dS )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	G	G 
 
*A'1"C.)	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
z)N	O	O	O 
 
&&&*A'1	
 	
 	
 	
 	+A'1!3	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s#   AAA49B::B>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 dS t          d |D                       sJ dS )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V  	dS )rt   NrM   .0r`   s     r   	<genexpr>z;test_validate_curve_kwargs_single_legend.<locals>.<genexpr>3  s'      HHV7&(HHHHHHr   c              3   .   K   | ]}|d          dk    V  dS rt   ru   NrM   ry   s     r   r{   z;test_validate_curve_kwargs_single_legend.<locals>.<genexpr>5  s+      KK6'?e+KKKKKKr   )r   rf   
isinstancelistlenall)r   rj   rZ   r]   ri   curve_kwargs_outrY   s          r   (test_validate_curve_kwargs_single_legendr     sk    H9P#-!   &-----  H,,,,N$ Aw ,+.X3E.X.X.XXN	v		*.@@@Aw'>9999Aw'///Aw'///HH7GHHHHHHHHHHKK:JKKKKKKKKKKr   rn   metric)r_   r_   r_   rS   c                    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  }not          | t                    r|d	         d
         | }nIt          | t                    r|d	         d
         fd| D             }n|d	         d
         	 dg|z  }t          |          D ]\  }}||         d         |k    sJ t          ||          D ]\  }	}
|
d         |	d         k    sJ dS )zMCheck `_validate_curve_kwargs` returns correct kwargs for multi legend entry.r&   rt   ru   yellowbluerm   rS   rX   r   r   Nrw    = 1.00)c                      g | ]
}| d  dS )rw   r   rM   )rz   name_singlerZ   s     r   
<listcomp>z;test_validate_curve_kwargs_multi_legend.<locals>.<listcomp>U  s8     
 
 
?J{::0:::
 
 
r   z = 1.00r[   )r   rf   r~   r   r   str	enumeratezip)r   rj   rZ   ri   r]   r   expected_labelsidxrY   curve_kwargcurve_kwarg_outs     `        r   'test_validate_curve_kwargs_multi_legendr   8  s    He$w&9GV;LML9P#-!   &-----  H,,,,(((O$ F&"1%1-0Q5G0Q0Q0QQO*+h6	D$		 FM($;A$>$F	D$		 FM($;A$>$J
 
 
 
NR
 
 
 
x	 	#	/0999:XE(99 @ @^$W-?????(+L:J(K(K @ @$_w';w+??????@ @r   ri   c                    t          j        | ddddd|ddidd	d
d          }| dk    rrt          d |D                       sJ t          d |D                       sJ |t          d |D                       sJ dS t          d |D                       sJ dS |t          d |D                       sJ dS t          d |D                       sJ dS )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    V  dS )r^   r   NrM   rz   kwargs     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>r  s+      GGU5>S(GGGGGGr   c              3   .   K   | ]}|d          dk    V  dS )r   r   NrM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>s  s,      LL%5%-LLLLLLr   Nc              3   .   K   | ]}|d          dk    V  dS )rt   r   NrM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>v  s+      OOUuW~0OOOOOOr   c              3   .   K   | ]}|d          dk    V  dS r}   rM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>y  s+      MM5uW~.MMMMMMr   c              3   .   K   | ]}|d          dk    V  dS )rt   r   NrM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>}  s+      JJ5>V+JJJJJJr   c              3   .   K   | ]}|d          dk    V  dS r}   rM   r   s     r   r{   z<test_validate_curve_kwargs_default_kwargs.<locals>.<genexpr>  s+      IIu5>U*IIIIIIr   )r   rf   r   )ri   r]   r   s      r   )test_validate_curve_kwargs_default_kwargsr   c  sS    :P"3//#!%v.-0tg#V#V   !||GG6FGGGGGGGGLL;KLLLLLLLLOO>NOOOOOOOOOO MM<LMMMMMMMMMM		JJ9IJJJJJJJJJJ II8HIIIIIIIIIIr   c                      d S NrM   rM   r   r   r   r         Dr   c                      d S 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                 4    t          | ||          |k    sJ dS )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VVVVVr   zdata, lower_bound, upper_boundr5         
         g?g?)r$   r%   r   r      2   r   (   c                 B    |t          |           cxk     r|k     sn J d S r   )r   )datalower_boundupper_bounds      r   test_inverval_max_min_ratior     s8      066DDDDDD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                 T    t          | |          }||k    sJ d| d| d            dS )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     sW    \ $NK@@FX	/	/ 	/#+	/ 	/ 	/ r   zdefault_kwargs, user_kwargs)r   r   r)r   rt   c                     t          j        t                    5  t          | |           ddd           dS # 1 swxY w Y   dS )z3Check that `validate_style_kwargs` raises TypeErrorN)r=   r>   	TypeErrorr	   )r   r   s     r    test_validate_style_kwargs_errorr     s     
y	!	! < <~{;;;< < < < < < < < < < < < < < < < < <s   8<<c                 l   |                                  }t          |           |j        d                                         du sJ |j        d                                         du sJ |j        d                                         dk    sJ |j        d                                         dk    sJ d S )NtopFrightbottom)r   r$   left)gcar   spinesget_visible
get_bounds)r   r   s     r   test_despiner     s    	BRLLL9U''))U22229W))++u44449X))++v55559V''))V333333r   r   my_est_name
deprecatedmy_namec                    d}d}| dk    rt          | ||          }||k    sJ dS |Wd| d| d}t          j        t          |          5  t          | ||          }ddd           n# 1 swxY w Y   || k    sJ dS |Pd	| d| d
}t          j        t
          |          5  t          | ||           ddd           dS # 1 swxY w Y   dS dS )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K4	5 5 55 5 5 	 \-??? 	N 	N.~tWMMF	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N''''''		T 'T TAOT T T 	 ]:];;; 	E 	E%ndGDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 
	s$   A**A.1A.%CCC)(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 3 3 3 3 3                @ ? ? ? ? ? 2 2 2 2 2 2 d|,, 79UV    -, tQi00$!566EEE % %  76 10
%: 	)))		;<	1a&		DE	,,,		!PQ 
 
 
 $!566	xrx%%&	
HBH\\\""# / /  76/, 
  +G4RX1v1v.//RXq!f%%!%  A		
 ")*+Q!Q(8QFQPQFCSTT 
 RX1vh''RXq!f%%!%	 	 9	
  ")*+Q!Q(8QFQPQFCSTT  RXlll++RXlll++!%	 	 +	
  ")*+Q!Q(8QFQPQFCSTT  RXlll++RXlll++!)3%	 	 6	
K25 5lX Xm5 5lX 5   # # # 7C.$)?@@B##788
 
 98 A@
D
 
 
> $|n!EFF#d ; ;<  -t}==$%0@)ABB#L #L CB >=	  GF#LL $6M6M6M!NOOx1H>P>P>P3QR  -t}==#@ #@ >=  PO
#@L $%0@)ABBaV,,J J -, CB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 E + 1--(#18DD	
 733x(((33	
 c==4Lc==	

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