U
    9%eK                  
   @   s  d dl Zd dlZd dlmZ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 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ddddgdd Zejdddddgdd Zejdd d!d"d#gd$d% Zd&d' Zd(d) Zd*d+ Zejd,dgddggejd-ddddgd.d/ Z ejd0dgddgddgdddggd1d2 Z!dS )3    N)assert_allcloseassert_array_equal)sparse	load_iris)_safe_indexingcheck_array)CheckingClassifier_MockEstimatorOnOffPrediction)_convert_containerc                   C   s
   t ddS )NT)Z
return_X_yr    r   r   _/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sklearn/utils/tests/test_mocking.pyiris   s    r   c                 C   s   dS )NTr   xr   r   r   _success   s    r   c                 C   s   dS )NFr   r   r   r   r   _fail   s    r   kwargscheck_Xcheck_y)r   r   c                 C   s   | \}}t f ||| d S N)r	   fit)r   r   Xyr   r   r   test_check_on_fit_success   s    
r   c              	   C   s8   | \}}t f |}tt ||| W 5 Q R X 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   sN   | \}}t td||}|jtd tt t||| W 5 Q R X d S r&   )	r	   r   r   
set_paramsr   r   r   r   r(   r)   r   r   r   test_check_X_on_predict_failD   s
    r,   
input_typelistarrayr   Z	dataframec           	      C   s  | \}}t ||}t }||| t|jt| t|jdksHt|j	dksVt|
|}t|tj|jtd ||tdkst|jdd ||||tdkst||}|jdkstt|d d df d t|d d dd f d ||}|jdkstt|d d df d t|d d dd f d t|dk|dk}t||}t||}||| ||}|jd	kstt|d d df d t|d d df d ||}|jd
kstt|d d S )N      )Zdtyper   
   )Z	foo_param   )   r0   )d      )r5   )r   r	   r   r   classes_npuniquelenr   Zn_features_in_r"   Zzerossizeintr%   r   Zapproxr+   r#   shaper   r$   
logical_orr   )	r   r-   r   r   r   Zy_predZy_probaZ
y_decisionZfirst_2_classesr   r   r   test_checking_classifierO   s>    

 





r?   c              	   C   s   | \}}t |}tt jd}tt ||| W 5 Q R X ||| ttddid}||| tjt	dd ||| W 5 Q R X d S )Nr'   Zaccept_sparseF)r   Zcheck_X_paramszA sparse matrix was passedmatch)
r   Z
csr_matrixr	   issparser   r   r   r   r   	TypeError)r   r   r   ZX_sparser   r   r   r   $test_checking_classifier_with_params|   s    
 rD   c              	   C   s   | \}}t dd}tt|d }dt|d  dt| d}tt}|j|||d W 5 Q R X |jj	d |ks|t
d S )	NTZexpected_sample_weightr6   zsample_weight.shape == (z,), expected (z,)!)sample_weightr   )r	   r8   Zonesr:   r   r   
ValueErrorr   valueargsr   )r   r   r   r   rF   msgexcr   r   r   #test_checking_classifier_fit_params   s    
rL   c              	   C   s@   | \}}t dd}d}tjt|d ||| W 5 Q R X d S )NTrE   z#Expected sample_weight to be passedr@   r   )r   r   r   r   err_msgr   r   r   +test_checking_classifier_missing_fit_params   s
    
rN   methods_to_checkpredict_methodc              	   C   sb   | \}}t tj|d}||| ||krPtt t||| W 5 Q R X nt||| d S )N)r   rO   )r	   r   rB   r   r   r   r   r(   )r   rO   rP   r   r   r   r   r   r   )test_checking_classifier_methods_to_check   s    	rQ   response_methodsc                 C   s   | \}}t |d}||| t|ds,tt|jt| dddg}|D ]@}||kr~t||sftt||||kstqLt||rLtqLd S )N)rR   r7   r"   r#   r$   )	r
   r   hasattrr   r   r7   r8   r9   r(   )r   rR   r   r   Z	estimatorZpossible_responsesresponser   r   r   %test_mock_estimator_on_off_prediction   s    


rU   )"numpyr8   r   Znumpy.testingr   r   Zscipyr   Zsklearn.datasetsr   Zsklearn.utilsr   r   Zsklearn.utils._mockingr	   r
   Zsklearn.utils._testingr   Zfixturer   r   r   markZparametrizer   r    r*   r,   r?   rD   rL   rN   rQ   rU   r   r   r   r   <module>   s~   
	


 

 


, 
	