
    -i
              
       t   S SK rS SKrS SKJr  S SKJr  S SKJr  S SK	J
r
Jr  S SKJrJr  S SKJr  S SKJr  \R&                  S	 5       rS
 rS r\R.                  R1                  S0 S\0S\0\\S./5      S 5       r\R.                  R1                  SS\0S\0\\S.\\S.\\S./5      S 5       r\R.                  R1                  S/ SQ5      S 5       r\R.                  R1                  S/ SQ5      S 5       r\R.                  R1                  S/ SQ5      S 5       r\R.                  R1                  S\5      S 5       rS rS r \R.                  R1                  SS/SS//5      \R.                  R1                  S / SQ5      S! 5       5       r!\R.                  R1                  S"S/SS/SS#// S$Q/5      S% 5       r"g)&    N)assert_array_equal)sparse	load_iris)_safe_indexingcheck_array)CheckingClassifier_MockEstimatorOnOffPrediction)_convert_container)CSR_CONTAINERSc                      [        SS9$ )NT)
return_X_yr        S/var/www/html/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_mocking.pyirisr      s    %%r   c                     g)NTr   xs    r   _successr      s    r   c                     g)NFr   r   s    r   _failr      s    r   kwargscheck_Xcheck_y)r   r   c                 @    U u  p#[        S0 UD6R                  X#5        g Nr   )r	   fit)r   r   Xys       r   test_check_on_fit_successr!      s!     DA  $$Q*r   c                     U u  p#[        S0 UD6n[        R                  " [        5         UR	                  X#5        S S S 5        g ! , (       d  f       g = fr   r	   pytestraisesAssertionErrorr   )r   r   r   r    clfs        r   test_check_on_fit_failr(   +   s;     DA

&v
&C	~	& 
'	&	&s   A
A	pred_func)predictpredict_probadecision_functionscorec                 f    U u  p#[        [        S9R                  X#5      n[        XA5      " U5        g Nr   )r	   r   r   getattrr   r)   r   r    r'   s        r   test_check_X_on_predict_successr3   <   s-     DA
X
.
2
21
8CCAr   c                     U u  p#[        [        S9R                  X#5      nUR                  [        S9  [
        R                  " [        5         [        XA5      " U5        S S S 5        g ! , (       d  f       g = fr/   )	r	   r   r   
set_paramsr   r$   r%   r&   r1   r2   s        r   test_check_X_on_predict_failr6   E   sS     DA
X
.
2
21
8CNN5N!	~	&" 
'	&	&s   A))
A7
input_type)listarrayr   	dataframec                   ^ U u  p#[        X!5      n[        5       mTR                  X#5        [        TR                  [
        R                  " U5      5        [        TR                  5      S:X  d   eTR                  S:X  d   eTR                  U5      n[        U4S jU 5       5      (       d   eTR                  U5      [        R                  " S5      :X  d   eTR                  SS9  TR                  X#5      R                  U5      [        R                  " S5      :X  d   eTR                  U5      nUR                   S:X  d   e[
        R"                  " US:  US:*  5      R                  5       (       d   eTR%                  U5      nUR                   S:X  d   e[
        R&                  " US:H  US:H  5      n[)        X'5      n[)        X75      nTR                  X#5        TR                  U5      nUR                   S	:X  d   e[
        R"                  " US:  US:*  5      R                  5       (       d   eTR%                  U5      nUR                   S
:X  d   eg )N      c              3   @   >#    U  H  oTR                   ;   v   M     g 7f)N)classes_).0predr'   s     r   	<genexpr>+test_checking_classifier.<locals>.<genexpr>]   s     7s||#s   r   
   )	foo_param   )   r<   )d      )rH   )r   r	   r   r   r?   npuniquelenn_features_in_r*   allr-   r$   approxr5   r+   shapelogical_andr,   
logical_orr   )	r   r7   r   r    y_predy_proba
y_decisionfirst_2_classesr'   s	           @r   test_checking_classifierrW   P   s    DA1)A

CGGAMs||RYYq\2s||!!!"""[[^F77777799Q<6==++++NNRN 771=q!V]]1%5555"G==H$$$>>'Q,1599;;;;&&q)Jx''' mmAFAF3Oq*Aq*AGGAM"G==H$$$>>'Q,1599;;;;&&q)Jv%%%r   csr_containerc                    U u  p#U" U5      n[        [        R                  S9n[        R                  " [
        5         UR                  X#5        S S S 5        UR                  XC5        [        [        SS0S9nUR                  X#5        [        R                  " [        SS9   UR                  XC5        S S S 5        g ! , (       d  f       Nt= f! , (       d  f       g = f)Nr0   accept_sparseF)r   check_X_paramszSparse data was passedmatch)	r	   r   issparser$   r%   r&   r   r   	TypeError)r   rX   r   r    X_sparser'   s         r   $test_checking_classifier_with_paramsra   x   s    DAQH
V__
5C	~	& 
'GGH
_e,DC GGAM	y(@	A 
B	A 
'	& 
B	As   B>#C>
C
Cc                 d   U u  p[        SS9n[        R                  " [        U5      S-  5      nS[        U5      S-   S[        U5       S3n[        R
                  " [        5       nUR                  XUS9  S S S 5        WR                  R                  S   U:X  d   eg ! , (       d  f       N.= f)	NTexpected_sample_weightrI   zsample_weight.shape == (z,), expected (z,)!)sample_weightr   )
r	   rJ   onesrL   r$   r%   
ValueErrorr   valueargs)r   r   r    r'   re   msgexcs          r   #test_checking_classifier_fit_paramsrl      s    DA
D
9CGGCFaK(M$SVq[MAxs
KC	z	"cM2 
#99>>!### 
#	"s   (B!!
B/c                     U u  p[        SS9nSn[        R                  " [        US9   UR	                  X5        S S S 5        g ! , (       d  f       g = f)NTrc   z#Expected sample_weight to be passedr\   r#   )r   r   r    r'   err_msgs        r   +test_checking_classifier_missing_fit_paramsro      s=    DA
D
9C3G	~W	5 
6	5	5s   A
Amethods_to_checkr*   r+   predict_methodc                    U u  p4[        [        R                  US9nUR                  X45        X!;   a5  [        R
                  " [        5         [        XR5      " U5        S S S 5        g [        XR5      " U5        g ! , (       d  f       g = f)N)r   rp   )r	   r   r^   r   r$   r%   r&   r1   )r   rp   rq   r   r    r'   s         r   )test_checking_classifier_methods_to_checkrs      sk     DA
)C
 GGAM)]]>*C(+ +* 	$Q' +*s   A::
Bresponse_methodsr,   r*   r+   r,   c                 X   U u  p#[        US9nUR                  X#5        [        US5      (       d   e[        UR                  [
        R                  " U5      5        / SQnU HE  nXa;   a+  [        XF5      (       d   e[        XF5      " U5      U:X  d   eM3  [        XF5      (       d  ME   e   g )N)rt   r?   ru   )r
   r   hasattrr   r?   rJ   rK   r1   )r   rt   r   r    	estimatorpossible_responsesresponses          r   %test_mock_estimator_on_off_predictionr{      s     DA-?OPIMM!9j))))y))299Q<8J&'9////9/2h>>>y3333 'r   )#numpyrJ   r$   numpy.testingr   scipyr   sklearn.datasetsr   sklearn.utilsr   r   sklearn.utils._mockingr	   r
   sklearn.utils._testingr   sklearn.utils.fixesr   fixturer   r   r   markparametrizer!   r(   r3   r6   rW   ra   rl   ro   rs   r{   r   r   r   <module>r      s      ,  & 5 6 . & & 
	H	H2	++
 	E	E/h/e,		 K K## 'OP$& Q$&N .9 :"	$ [9o./ P(	(" 		O$	'(9	44r   