
    0Ph
              
          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                            di deideieedg          d             Zej                            ddeideieedeedeedg          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            de          d             Zd Zd Z ej                            ddgddgg          ej                            d g d          d!                         Z!ej                            d"dgddgdd#gg d$g          d%             Z"dS )&    N)assert_array_equal)sparse	load_iris)_safe_indexingcheck_array)CheckingClassifier_MockEstimatorOnOffPrediction)_convert_container)CSR_CONTAINERSc                  "    t          d          S )NT)
return_X_yr        `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_mocking.pyirisr      s    %%%%r   c                     dS )NTr   xs    r   _successr      s    4r   c                     dS )NFr   r   s    r   _failr      s    5r   kwargscheck_Xcheck_y)r   r   c                 P    | \  }}t          di |                    ||           d S Nr   )r	   fit)r   r   Xys       r   test_check_on_fit_successr!      s7     DAq    $$Q*****r   c                     | \  }}t          di |}t          j        t                    5  |                    ||           d d d            d S # 1 swxY w Y   d S r   r	   pytestraisesAssertionErrorr   )r   r   r   r    clfs        r   test_check_on_fit_failr(   +   s     DAq

&
&v
&
&C	~	&	&  1                 s   AAA	pred_func)predictpredict_probadecision_functionscorec                     | \  }}t          t                                        ||          } t          ||          |           d S Nr   )r	   r   r   getattrr   r)   r   r    r'   s        r   test_check_X_on_predict_successr3   <   sM     DAq
X
.
.
.
2
21a
8
8CGCAr   c                 .   | \  }}t          t                                        ||          }|                    t                     t          j        t                    5   t          ||          |           d d d            d S # 1 swxY w Y   d S 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
8
8CNN5N!!!	~	&	& # #Y"""# # # # # # # # # # # # # # # # # #s   #B

BB
input_type)listarrayr   	dataframec                    | \  }}t          ||          }t                                          ||           t          j        t          j        |                     t          j                  dk    sJ j        dk    sJ 	                    |          }t          fd|D                       sJ                     |          t          j        d          k    sJ                     d                               ||                              |          t          j        d          k    sJ                     |          }|j        dk    sJ t          j        |dk    |dk              
                                sJ                     |          }|j        dk    sJ t          j        |dk    |dk              }t)          ||          }t)          ||          }                    ||                               |          }|j        d	k    sJ t          j        |dk    |dk              
                                sJ                     |          }|j        d
k    sJ d S )N      c              3   *   K   | ]}|j         v V  d S )N)classes_).0predr'   s     r   	<genexpr>z+test_checking_classifier.<locals>.<genexpr>]   s*      77ts|#777777r   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   sj    DAq1j))A


CGGAqMMMs|RYq\\222s|!!!!""""[[^^F77777777777799Q<<6=++++++NNRN   771a==q!!V]1%5%55555""G=H$$$$>'Q,15599;;;;;&&q))Jx'''' mAFAF33Oq/**Aq/**AGGAqMMM""G=H$$$$>'Q,15599;;;;;&&q))Jv%%%%%%r   csr_containerc                    | \  }} ||          }t          t          j                  }t          j        t
                    5  |                    ||           d d d            n# 1 swxY w Y   |                    ||           t          t          ddi          }|                    ||           t          j        t          d          5  |                    ||           d d d            d S # 1 swxY w Y   d S )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   su   DAq}QH
V_
5
5
5C	~	&	&  1              GGHa
_e,D  C GGAqMMM	y(@	A	A	A  !                 s$   A''A+.A+C55C9<C9c                    | \  }}t          d          }t          j        t          |          dz            }dt          |          dz   dt          |           d}t	          j        t                    5 }|                    |||           d d d            n# 1 swxY w Y   |j        j	        d         |k    sJ d S )	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
9
9
9CGCFFaK((M
KSVVq[
K
KA
K
K
KC	z	"	" 3c1M2223 3 3 3 3 3 3 3 3 3 3 3 3 3 39>!######s   9BB"%B"c                     | \  }}t          d          }d}t          j        t          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )NTrb   z#Expected sample_weight to be passedr[   r#   )r   r   r    r'   err_msgs        r   +test_checking_classifier_missing_fit_paramsrn      s    DAq
D
9
9
9C3G	~W	5	5	5  1                 s   AAAmethods_to_checkr*   r+   predict_methodc                 F   | \  }}t          t          j        |          }|                    ||           ||v rMt	          j        t                    5   t          ||          |           d d d            d S # 1 swxY w Y   d S  t          ||          |           d S )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      s     DAq
)  C
 GGAqMMM)))]>** 	, 	,(GC((+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	%^$$Q'''''s   A;;A?A?response_methodsr,   r*   r+   r,   c                 p   | \  }}t          |          }|                    ||           t          |d          sJ t          |j        t          j        |                     g d}|D ]J}||v r2t          ||          sJ  t          ||          |          |k    sJ 8t          ||          rJ Kd S )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PPPIMM!Q9j)))))y)29Q<<888JJJ& 4 4'''9h//////79h//22h>>>>>y(3333334 4r   )#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 5 5 5 5 5 5 5        6 5 5 5 5 5 . . . . . . & & &     
	H	H22	 + + +
 	E	E//h//e,,	 	 	 	 KKK    KKK # # # 'O'O'OPP$& $& QP$&N .99  :9"	$ 	$ 	$   [9o./  PPP ( ( 	 (" 		O$	'(999	 4 4 4 4 4r   