
    {Kg
              
       t   d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d dlmZ ej&                  d	        Zd
 Zd Zej.                  j1                  di deideieedg      d        Zej.                  j1                  ddeideieedeedeedg      d        Zej.                  j1                  dg d      d        Zej.                  j1                  dg d      d        Zej.                  j1                  dg d      d        Zej.                  j1                  de      d        Zd Zd Z ej.                  j1                  ddgddgg      ej.                  j1                  d g d      d!               Z!ej.                  j1                  d"dgddgdd#gg d$g      d%        Z"y)&    N)assert_array_equal)sparse	load_iris)_safe_indexingcheck_array)CheckingClassifier_MockEstimatorOnOffPrediction)_convert_container)CSR_CONTAINERSc                      t        d      S )NT)
return_X_yr        d/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/utils/tests/test_mocking.pyirisr      s    %%r   c                      y)NTr   xs    r   _successr      s    r   c                      y)NFr   r   s    r   _failr      s    r   kwargscheck_Xcheck_y)r   r   c                 D    | \  }}t        di |j                  ||       y Nr   )r	   fit)r   r   Xys       r   test_check_on_fit_successr!      s%     DAq  $$Q*r   c                     | \  }}t        di |}t        j                  t              5  |j	                  ||       d d d        y # 1 sw Y   y xY wr   r	   pytestraisesAssertionErrorr   )r   r   r   r    clfs        r   test_check_on_fit_failr(   +   s?     DAq

&v
&C	~	&1 
'	&	&s   AA	pred_func)predictpredict_probadecision_functionscorec                 r    | \  }}t        t              j                  ||      } t        ||      |       y Nr   )r	   r   r   getattrr   r)   r   r    r'   s        r   test_check_X_on_predict_successr3   <   s5     DAq
X
.
2
21a
8CGCAr   c                     | \  }}t        t              j                  ||      }|j                  t               t        j                  t              5   t        ||      |       d d d        y # 1 sw Y   y xY wr/   )	r	   r   r   
set_paramsr   r$   r%   r&   r1   r2   s        r   test_check_X_on_predict_failr6   E   s[     DAq
X
.
2
21a
8CNN5N!	~	&Y" 
'	&	&s   A11A:
input_type)listarrayr   	dataframec                    | \  }}t        ||      }t               j                  ||       t        j                  t        j                  |             t        j                        dk(  sJ j                  dk(  sJ j                  |      }t        fd|D              sJ j                  |      t        j                  d      k(  sJ j                  d       j                  ||      j                  |      t        j                  d      k(  sJ j                  |      }|j                   dk(  sJ t        j"                  |dk\  |dk        j                         sJ j%                  |      }|j                   dk(  sJ t        j&                  |dk(  |dk(        }t)        ||      }t)        ||      }j                  ||       j                  |      }|j                   d	k(  sJ t        j"                  |dk\  |dk        j                         sJ j%                  |      }|j                   d
k(  sJ y )N      c              3   :   K   | ]  }|j                   v   y w)N)classes_).0predr'   s     r   	<genexpr>z+test_checking_classifier.<locals>.<genexpr>]   s     7ts||#s   r   
   )	foo_param   )   r<   )d      )rG   )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_classifierrV   P   s    DAq1j)A

CGGAqMs||RYYq\2s||!!!"""[[^F7777799Q<6==++++NNRN 771a=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GGAqM"G==H$$$>>'Q,1599;;;&&q)Jv%%%r   csr_containerc                    | \  }} ||      }t        t        j                        }t        j                  t
              5  |j                  ||       d d d        |j                  ||       t        t        ddi      }|j                  ||       t        j                  t        d      5  |j                  ||       d d d        y # 1 sw Y   wxY w# 1 sw Y   y xY w)Nr0   accept_sparseF)r   check_X_paramszSparse data was passedmatch)	r	   r   issparser$   r%   r&   r   r   	TypeError)r   rW   r   r    X_sparser'   s         r   $test_checking_classifier_with_paramsr`   x   s    DAqQH
V__
5C	~	&1 
'GGHa
_e,DC GGAqM	y(@	A! 
B	A 
'	& 
B	As   C
.C
CCc                 d   | \  }}t        d      }t        j                  t        |      dz        }dt        |      dz   dt        |       d}t	        j
                  t              5 }|j                  |||       d d d        j                  j                  d   |k(  sJ y # 1 sw Y   (xY w)	NTexpected_sample_weightrH   zsample_weight.shape == (z,), expected (z,)!)sample_weightr   )
r	   rI   onesrK   r$   r%   
ValueErrorr   valueargs)r   r   r    r'   rd   msgexcs          r   #test_checking_classifier_fit_paramsrk      s    DAq
D
9CGGCFaK(M$SVq[MAxs
KC	z	"c1M2 
#99>>!### 
#	"s   *B&&B/c                     | \  }}t        d      }d}t        j                  t        |      5  |j	                  ||       d d d        y # 1 sw Y   y xY w)NTrb   z#Expected sample_weight to be passedr[   r#   )r   r   r    r'   err_msgs        r   +test_checking_classifier_missing_fit_paramsrn      sA    DAq
D
9C3G	~W	51 
6	5	5s   AAmethods_to_checkr*   r+   predict_methodc                    | \  }}t        t        j                  |      }|j                  ||       ||v r5t	        j
                  t              5   t        ||      |       d d d        y  t        ||      |       y # 1 sw Y   y xY w)N)r   ro   )r	   r   r]   r   r$   r%   r&   r1   )r   ro   rp   r   r    r'   s         r   )test_checking_classifier_methods_to_checkrr      sz     DAq
)C
 GGAqM))]]>*(GC(+ +* 	%^$Q' +*s   A??Bresponse_methodsr,   r*   r+   r,   c                 >   | \  }}t        |      }|j                  ||       t        |d      sJ t        |j                  t        j                  |             g d}|D ]:  }||v r&t        ||      sJ  t        ||      |      |k(  r+J t        ||      s:J  y )N)rs   r?   rt   )r
   r   hasattrr   r?   rI   rJ   r1   )r   rs   r   r    	estimatorpossible_responsesresponses          r   %test_mock_estimator_on_off_predictionrz      s     DAq-?OPIMM!Q9j)))y))299Q<8J&''9h////79h/2h>>>y(333 'r   )#numpyrI   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   rV   r`   rk   rn   rr   rz   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   