o
    i
                  
   @   s  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	d
 Zdd Zdd Zejdi deideieedgdd Zejddeideieedeedeedgdd Zejdg ddd Zejdg ddd Zejdg ddd  Zejd!ed"d# Zd$d% Zd&d' Z ejd(d)gd)d*ggejd+g dd,d- Z!ejd.d)gd)d*gd)d/gg d0gd1d2 Z"dS )3    N)assert_array_equal)sparse	load_iris)_safe_indexingcheck_array)CheckingClassifier_MockEstimatorOnOffPrediction)_convert_container)CSR_CONTAINERSc                   C   s
   t ddS )NT)Z
return_X_yr    r   r   o/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sklearn/utils/tests/test_mocking.pyiris   s   
r   c                 C      dS )NTr   xr   r   r   _success      r   c                 C   r   )NFr   r   r   r   r   _fail   r   r   kwargscheck_Xcheck_y)r   r   c                 C   s"   | \}}t di ||| d S Nr   )r   fit)r   r   Xyr   r   r   test_check_on_fit_success   s   
r   c                 C   sR   | \}}t di |}tt ||| W d    d S 1 s"w   Y  d S r   r   pytestraisesAssertionErrorr   )r   r   r   r   clfr   r   r   test_check_on_fit_fail+   s
   "r"   	pred_func)predictpredict_probadecision_functionscorec                 C   s,   | \}}t td||}t||| d S Nr   )r   r   r   getattrr   r#   r   r   r!   r   r   r   test_check_X_on_predict_success<   s   r,   c                 C   sd   | \}}t td||}|jtd tt t||| W d    d S 1 s+w   Y  d S r(   )	r   r   r   
set_paramsr   r   r   r    r*   r+   r   r   r   test_check_X_on_predict_failE   s   "r.   
input_type)listarrayr   Z	dataframec                    s  | \}}t ||}t   || t jt| t jdks$J  jdks+J  	|}t
 fdd|D s=J  |tdksIJ  jdd  |||tdks_J  |}|jd	kskJ t|dk|dk
 syJ  |}|jd	ksJ t|dk|dk}t||}t||} ||  |}|jd
ksJ t|dk|dk
 sJ  |}|jdksJ d S )N      c                 3   s    | ]}| j v V  qd S )N)classes_).0predr!   r   r   	<genexpr>]   s    z+test_checking_classifier.<locals>.<genexpr>r   
   )Z	foo_param   )   r2   )d      )r<   )r
   r   r   r   r4   npuniquelenZn_features_in_r$   allr'   r   Zapproxr-   r%   shapelogical_andr&   
logical_orr   )r   r/   r   r   Zy_predZy_probaZ
y_decisionZfirst_2_classesr   r7   r   test_checking_classifierP   s4   

 





rE   csr_containerc                 C   s   | \}}||}t tjd}tt ||| W d    n1 s$w   Y  ||| t tddid}||| tjtdd ||| W d    d S 1 sVw   Y  d S )Nr)   Zaccept_sparseF)r   Zcheck_X_paramszSparse data was passedmatch)	r   r   issparser   r   r    r   r   	TypeError)r   rF   r   r   ZX_sparser!   r   r   r   $test_checking_classifier_with_paramsx   s   "rK   c                 C   s   | \}}t dd}tt|d }dt|d  dt| d}tt}|j|||d W d    n1 s9w   Y  |jj	d |ksHJ d S )	NTZexpected_sample_weightr=   zsample_weight.shape == (z,), expected (z,)!)sample_weightr   )
r   r>   Zonesr@   r   r   
ValueErrorr   valueargs)r   r   r   r!   rM   msgexcr   r   r   #test_checking_classifier_fit_params   s   
rS   c                 C   sV   | \}}t dd}d}tjt|d ||| W d    d S 1 s$w   Y  d S )NTrL   z#Expected sample_weight to be passedrG   r   )r   r   r   r!   err_msgr   r   r   +test_checking_classifier_missing_fit_params   s   
"rU   methods_to_checkr$   r%   predict_methodc                 C   sz   | \}}t tj|d}||| ||v r4tt t||| W d    d S 1 s-w   Y  d S t||| d S )N)r   rV   )r   r   rI   r   r   r   r    r*   )r   rV   rW   r   r   r!   r   r   r   )test_checking_classifier_methods_to_check   s   	"rX   response_methodsr&   r$   r%   r&   c                 C   s   | \}}t |d}||| t|dsJ t|jt| g d}|D ] }||v r>t||s2J t||||ks=J q%t||rEJ q%d S )N)rY   r4   rZ   )r	   r   hasattrr   r4   r>   r?   r*   )r   rY   r   r   Z	estimatorZpossible_responsesresponser   r   r   %test_mock_estimator_on_off_prediction   s   

r]   )#numpyr>   r   Znumpy.testingr   Zscipyr   Zsklearn.datasetsr   Zsklearn.utilsr   r   Zsklearn.utils._mockingr   r	   Zsklearn.utils._testingr
   Zsklearn.utils.fixesr   Zfixturer   r   r   markZparametrizer   r"   r,   r.   rE   rK   rS   rU   rX   r]   r   r   r   r   <module>   s~    

	




'
	