o
    ‘iEV  ã                   @   s‚  d dl Z d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ dd	„ Zd
d„ Zdd„ Zdd„ Zdydd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z dd „ Z!d!d"„ Z"ej# $d#g d$¢g d%¢fe %d&d&gd'd'gd'd'gd'd'gg¡e %d&d&gd&d&gd'd'gd'd'gg¡fg¡d(d)„ ƒZ&ej# $d*g d+¢¡d,d-„ ƒZ'd.d/„ Z(d0d1„ Z)d2d3„ Z*d4d5„ Z+d6d7„ Z,d8d9„ Z-d:d;„ Z.d<d=„ Z/d>d?„ Z0d@dA„ Z1dBdC„ Z2dDdE„ Z3dFdG„ Z4dHdI„ Z5dJdK„ Z6dLdM„ Z7ej#j$dNg dO¢dPd idQfg dO¢dRd&d gidSfe 8g dO¢g dO¢g¡dRd&idSfg dO¢dRdTidUfe 8g dO¢g dO¢g¡dRd&dVgidWfgg dX¢dYdZd[„ ƒZ9d\d]„ Z:ej# $d^e¡d_d`„ ƒZ;ej# $d^e¡dadb„ ƒZ<ej# $d^e¡dcdd„ ƒZ=ej# $d^e¡dedf„ ƒZ>dydgdh„Z?didj„ Z@dkdl„ ZAdmdn„ ZBej# $d#g do¢dpgdq fe %d&d&gd'd'gd'd'gd'd'gg¡dpdpggdq fg¡drds„ ƒZCej# $d*g dt¢¡dudv„ ƒZDej# $d*g d+¢¡dwdx„ ƒZEdS )zé    N)Úclone)ÚDummyClassifierÚDummyRegressor)ÚNotFittedError)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)ÚCSC_CONTAINERS)Ú_weighted_percentilec              	   C   sN  |   |¡}t ¡  t dd¡ |  |¡}W d   ƒ n1 sw   Y  t |¡}|jdkr4t |d¡}|j	d }t
|ƒ}|dkrG|g}|g}t|ƒD ]Y}|| j	d |ksXJ ‚|| j	d t
t |d d …|f ¡ƒksnJ ‚t|| jddt t
|ƒ¡ƒ t ¡  t dd¡ tt || ¡|| ƒ W d   ƒ n1 sŸw   Y  qKd S )NÚignorez!divide by zero encountered in logé   )éÿÿÿÿr   r   ©Úaxis)Úpredict_probaÚwarningsÚcatch_warningsÚfilterwarningsZpredict_log_probaÚnpZ
atleast_1dÚndimÚreshapeÚshapeÚlenÚrangeÚuniquer   ÚsumÚonesÚlog)ÚclfÚXÚyZprobaZ	log_probaZ	n_outputsÚ	n_samplesÚk© r#   úg/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sklearn/tests/test_dummy.pyÚ_check_predict_proba   s.   

þ


, 
þ€ûr%   c                 C   sª   t  dgdgdgdgg¡}t  g d¢¡}t| ƒ}| ||¡ | |¡}|j|jks+J ‚t  ddgddgddgddgg¡}t| ƒ}| ||¡ | |¡}|j|jksSJ ‚d S )Nr   ©r   é   r   r   r   r'   é   ©r   Úarrayr   ÚfitÚpredictr   ©r   r   r    ÚestÚy_predr#   r#   r$   Ú_check_behavior_2d0   s   
"
r0   c                 C   sn   t  dgdgdgdgg¡}t  g d¢g d¢g d¢g d¢g¡}t| ƒ}| ||¡ | |¡}|j|jks5J ‚d S )Nr   )r   r   é   é   r(   )r'   r   r   r'   r1   )r   r   r2   r1   r'   )r   r(   r(   r'   r   r)   r-   r#   r#   r$   Ú_check_behavior_2d_for_constantA   s   "
r3   c                 C   s<   t t | |jd df¡|ƒ t t | |jd df¡|ƒ d S )Nr   r   )r   r   Ztiler   )Z	statisticÚy_learnÚy_pred_learnÚy_testÚy_pred_testr#   r#   r$   Ú_check_equality_regressorK   s    r8   é
   c                 C   s’   t  d¡}tjj| d}|jdgg| dgd}| |¡}tƒ  ||¡}t	|dƒs+J ‚t	|dƒs2J ‚t
ƒ  ||¡}t	|dƒs@J ‚t	|dƒsGJ ‚d S )NZpandas©Úseedr   Z	feature_1)ÚcolumnsZfeature_names_in_Zn_features_in_)ÚpytestZimportorskipr   ÚrandomÚRandomStateZ	DataFrameÚrandr   r+   Úhasattrr   )Úglobal_random_seedr!   ÚpdÚrandom_stater   r    r.   r#   r#   r$   Ú(test_feature_names_in_and_n_features_in_P   s   

rE   c                  C   s²   dgdgdgdgg} g d¢}dD ]F}t |dd}| | |¡ t| | ¡t t| ƒ¡ƒ t|| |ƒ |dkrEt| 	| d g¡|j
 d¡ƒ qt| 	| d g¡|j
 d¡dkƒ qd S )Nr   r&   ©Úmost_frequentÚprior©ÚstrategyrD   rH   ©r   r   ç      à?)r   r+   r   r,   r   r   r   r%   r   r   Úclass_prior_r   )r   r    rJ   r   r#   r#   r$   Ú%test_most_frequent_and_prior_strategya   s   ÿÿõrN   c                  C   s„   dgdgdgdgg} g d¢}dgdgdgdgg}dD ]%}t |dd}t |dd}| | |¡ | | |¡ t| | ¡| | ¡ƒ qd S )Nr   r&   r   r'   rF   rI   ©r   r+   r   r,   )r   Zy_1dZy_2drJ   Zclf_1dZclf_2dr#   r#   r$   Ú6test_most_frequent_and_prior_strategy_with_2d_column_yu   s   úrP   c               
   C   s¦   dgdgdgdgg} t  ddgddgddgddgg¡}t| ƒ}dD ]/}t|dd}| | |¡ t| | ¡t  t  |df¡t  	|df¡g¡ƒ t
|| |ƒ t|ƒ q!d S )Nr   r   r'   r(   )rH   rG   rI   )r   r*   r   r   r+   r   r,   Úhstackr   Úzerosr%   r0   )r   r    r!   rJ   r   r#   r#   r$   Ú1test_most_frequent_and_prior_strategy_multioutput…   s   " þ
ørS   c                 C   sŒ   dggd }g d¢}t d| d}| ||¡ dggd }| |¡}t |¡tt|ƒƒ }t|d ddd	 t|d
 ddd	 t|||ƒ d S )Nr   r1   )r   r'   r   r   r'   Ú
stratifiedrI   éô  r   ç333333ã?©Údecimalr'   çš™™™™™Ù?©	r   r+   r,   r   ÚbincountÚfloatr   r   r%   ©rB   r   r    r   r/   Úpr#   r#   r$   Útest_stratified_strategy–   ó   
r_   c                 C   sÔ   dggd }t  ddgddgddgddgddgg¡}td| d}| ||¡ dggd }| |¡}t|jd ƒD ]+}t  |d d …|f ¡tt	|ƒƒ }t
|d ddd	 t
|d d
dd	 t|||ƒ q8t|ƒ d S )Nr   r1   r'   r   rT   rI   rU   rV   rW   rY   ©r   r*   r   r+   r,   r   r   r[   r\   r   r   r%   r0   ©rB   r   r    r   r/   r"   r^   r#   r#   r$   Ú$test_stratified_strategy_multioutput¤   s   (
"rc   c                 C   sŒ   dggd }g d¢}t d| d}| ||¡ dggd }| |¡}t |¡tt|ƒƒ }t|d ddd	 t|d
 ddd	 t|||ƒ d S )Nr   r2   r&   ÚuniformrI   rU   r   rL   rW   r'   rZ   r]   r#   r#   r$   Útest_uniform_strategy·   r`   re   c                 C   sÎ   dggd }t  ddgddgddgddgg¡}td| d}| ||¡ dggd }| |¡}t|jd ƒD ]+}t  |d d …|f ¡tt	|ƒƒ }t
|d ddd	 t
|d ddd	 t|||ƒ q5t|ƒ d S )
Nr   r2   r'   r   rd   rI   rU   rL   rW   ra   rb   r#   r#   r$   Ú!test_uniform_strategy_multioutputÅ   s   "
"rf   c                  C   sD   dggd } g d¢}t dd}| | |¡ t| | ¡dgd ƒ d S )Nr   r1   )Úparisrg   ZtokyoZ	amsterdamZberlinrG   ©rJ   rg   rO   ©r   r    r   r#   r#   r$   Útest_string_labels×   s
   
rj   zy,y_test)r'   r   r   r   )r'   r'   r   r   r'   r   c                 C   s.   t dd}| d | ¡ | d |¡dksJ ‚d S )NrG   rh   rL   )r   r+   Úscore)r    r6   r   r#   r#   r$   Útest_classifier_score_with_Noneß   s   
rl   rJ   )rT   rG   rH   rd   Úconstantc           	      C   sv   g d¢}dggd }t | |dd}| ||¡ | |¡}dggd }t | |dd}| ||¡ | |¡}t||ƒ d S )N©r   r'   r   r   r   r2   ©rJ   rD   rm   r   )r   r+   r,   r   )	rJ   rB   r    ÚX1Zclf1Úpredictions1ÚX2Zclf2Úpredictions2r#   r#   r$   Ú+test_classifier_prediction_independent_of_Xï   s   ÿ
ÿ
rt   c                 C   sZ   t jj| d}dggd }| d¡}tƒ }| ||¡ t| |¡t  |¡gt	|ƒ ƒ d S )Nr:   r   r2   )
r   r>   r?   Úrandnr   r+   r   r,   Úmeanr   ©rB   rD   r   r    Úregr#   r#   r$   Útest_mean_strategy_regressor  s   
$ry   c           
      C   s”   t jj| d}| dd¡}| dd¡}t j|dd d¡}| dd¡}| dd¡}tƒ }| ||¡ | |¡}| |¡}	t	|||||	ƒ t
|ƒ d S )Nr:   r9   r1   r   r   rK   é   )r   r>   r?   ru   rv   r   r   r+   r,   r8   r0   )
rB   rD   ÚX_learnr4   rv   ÚX_testr6   r.   r5   r7   r#   r#   r$   Ú(test_mean_strategy_multioutput_regressor  s   

r}   c                  C   s@   t ƒ } t t¡ |  g ¡ W d   ƒ d S 1 sw   Y  d S )N)r   r=   Úraisesr   r,   )rx   r#   r#   r$   Útest_regressor_exceptions%  s   "ÿr   c                 C   s^   t jj| d}dggd }| d¡}tdd}| ||¡ t| |¡t  |¡gt	|ƒ ƒ d S )Nr:   r   r1   Úmedianrh   )
r   r>   r?   ru   r   r+   r   r,   r€   r   rw   r#   r#   r$   Útest_median_strategy_regressor+  s   

$r   c           
      C   s˜   t jj| d}| dd¡}| dd¡}t j|dd d¡}| dd¡}| dd¡}tdd	}| ||¡ | |¡}| |¡}	t	|||||	ƒ t
|ƒ d S )
Nr:   r9   r1   r   r   rK   rz   r€   rh   )r   r>   r?   ru   r€   r   r   r+   r,   r8   r0   )
rB   rD   r{   r4   r€   r|   r6   r.   r5   r7   r#   r#   r$   Ú*test_median_strategy_multioutput_regressor6  s   


r‚   c                 C   s  t jj| d}dggd }| d¡}tddd}| ||¡ t| |¡t  |¡gt	|ƒ ƒ tddd}| ||¡ t| |¡t  
|¡gt	|ƒ ƒ tddd}| ||¡ t| |¡t  |¡gt	|ƒ ƒ tddd}| ||¡ t| |¡t j|d	d
gt	|ƒ ƒ d S )Nr:   r   r1   ÚquantilerL   ©rJ   rƒ   r   g333333Ó?é   )Úq)r   r>   r?   ru   r   r+   r   r,   r€   r   ÚminÚmaxÚ
percentilerw   r#   r#   r$   Ú test_quantile_strategy_regressorK  s   
   (rŠ   c                 C   sô   t jj| d}| dd¡}| dd¡}t j|dd d¡}t j|ddd d¡}| d	d¡}| d	d¡}td
dd}| ||¡ | 	|¡}	| 	|¡}
t
|||	||
ƒ t|ƒ td
dd}| ||¡ | 	|¡}	| 	|¡}
t
|||	||
ƒ t|ƒ d S )Nr:   r9   r1   r   r   rK   éP   )r   r†   rz   rƒ   rL   r„   gš™™™™™é?)r   r>   r?   ru   r€   r   r‰   r   r+   r,   r8   r0   )rB   rD   r{   r4   r€   Zquantile_valuesr|   r6   r.   r5   r7   r#   r#   r$   Ú,test_quantile_strategy_multioutput_regressorb  s*   




ÿrŒ   c                  C   sf   dggd } dgd }t dd d}d}tjt|d | | |¡ W d   ƒ d S 1 s,w   Y  d S )Nr   r1   rƒ   r„   zIWhen using `strategy='quantile', you have to specify the desired quantile©Úmatch)r   r=   r~   Ú
ValueErrorr+   ©r   r    r.   Úerr_msgr#   r#   r$   Útest_quantile_invalidƒ  s   
ÿ"ÿr’   c                  C   sH   t ddd} t t¡ |  g g ¡ W d   ƒ d S 1 sw   Y  d S )Nrƒ   rY   r„   )r   r=   r~   Ú
IndexErrorr+   )r.   r#   r#   r$   Ú"test_quantile_strategy_empty_train  s   "ÿr”   c                 C   s    t jj| d}dggd }| d¡}tddgd}| ||¡ t| |¡dgt|ƒ ƒ tddd}| ||¡ t| |¡dgt|ƒ ƒ t	|j
t jƒrNJ ‚d S )Nr:   r   r1   rm   é+   ©rJ   rm   )r   r>   r?   ru   r   r+   r   r,   r   Ú
isinstancerm   Zndarrayrw   r#   r#   r$   Ú test_constant_strategy_regressor•  s   
r˜   c           
      C   s   t jj| d}| dd¡}| dd¡}| d¡}| dd¡}| dd¡}td|d}| ||¡ | |¡}| |¡}	t|||||	ƒ t|ƒ d S )Nr:   r9   r1   rz   rm   r–   )	r   r>   r?   ru   r   r+   r,   r8   r3   )
rB   rD   r{   r4   Ú	constantsr|   r6   r.   r5   r7   r#   r#   r$   Ú,test_constant_strategy_multioutput_regressor§  s   


rš   c                  C   sB   dggd } g d¢}t dd}| | |¡ |jt |¡ksJ ‚d S )Nr   r1   ©r   r'   r2   é   é   rv   rh   )r   r+   Ú	constant_r   rv   )r   r    r.   r#   r#   r$   Útest_y_mean_attribute_regressor½  s
   
rŸ   c                  C   sb   dggd } g d¢}t dd}d}tjt|d | | |¡ W d   ƒ d S 1 s*w   Y  d S )Nr   r1   r›   rm   rh   z)Constant target value has to be specifiedr   )r   r=   r~   Ú	TypeErrorr+   r   r#   r#   r$   Ú&test_constants_not_specified_regressorÇ  s   
"ÿr¡   c                 C   sz   t jj| d}| dd¡}| dd¡}tdg d¢d}d}tjt|d | ||¡ W d   ƒ d S 1 s6w   Y  d S )	Nr:   r9   r1   rm   )r   r'   r(   r2   r–   z1Constant target value should have shape \(5, 1\).r   )	r   r>   r?   ru   r   r=   r~   r   r+   )rB   rD   r   r    r.   r‘   r#   r#   r$   Ú(test_constant_size_multioutput_regressorÑ  s   "ÿr¢   c                  C   s¾   dgdgdgdgg} g d¢}t dddd}| | |¡ t| | ¡t t| ƒ¡ƒ t|| |ƒ dgdgdgdgg} g d¢}t dddd}| | |¡ t| | ¡t dgd ¡ƒ t|| |ƒ d S )	Nr   ©r'   r   r'   r'   rm   r   ro   )ÚtwoÚoner¤   r¤   r¥   r2   )	r   r+   r   r,   r   r   r   r%   r*   ri   r#   r#   r$   Útest_constant_strategyÜ  s   r¦   c               	   C   sš   dgdgdgdgg} t  ddgddgddgddgg¡}t| ƒ}tddddgd}| | |¡ t| | ¡t  t  |df¡t  	|df¡g¡ƒ t
|| |ƒ d S )Nr   r'   r(   r   rm   ro   )r   r*   r   r   r+   r   r,   rQ   r   rR   r%   )r   r    r!   r   r#   r#   r$   Ú"test_constant_strategy_multioutputí  s   "(ÿr§   zy, params, err_msgr£   rD   zConstant.*has to be specifiedrm   zConstant.*should have shapezmy-constantz.constant=my-constant.*Possible values.*\[1, 2]Úunknownz2constant=\[2, 'unknown'].*Possible values.*\[1, 2])zno-constantztoo-many-constantznot-enough-outputzsingle-outputzmulti-output)Zidsc                 C   sf   dgdgdgdgg}t dddi|¤Ž}tjt|d | || ¡ W d   ƒ d S 1 s,w   Y  d S )Nr   rJ   rm   r   r#   )r   r=   r~   r   r+   )r    Úparamsr‘   r   r   r#   r#   r$   Ú!test_constant_strategy_exceptionsû  s
   "ÿrª   c                  C   sH   dgdgdgg} g d¢}g d¢}t dd | ||¡}t|jddgƒ d S )	Nr   r   )r   r   r   )çš™™™™™¹?ç      ð?r«   rT   rh   gVUUUUUÅ?g«ªªªªªê?)r   r+   r   rM   )r   r    Úsample_weightr   r#   r#   r$   Ú!test_classification_sample_weight   s
   r®   Úcsc_containerc              	   C   s¦   dggd }| t  ddgddgddgddgddgg¡ƒ}t|ƒ}tddddgd}| ||¡ | |¡}t |¡s;J ‚t| 	¡ t  
t  |df¡t  |df¡g¡ƒ d S )Nr   r1   r   r2   rm   ro   )r   r*   r   r   r+   r,   ÚspÚissparser   ÚtoarrayrQ   r   rR   )r¯   r   r    r!   r   r/   r#   r#   r$   Ú$test_constant_strategy_sparse_target)  s   ,
&ÿr³   c              	   C   s  dggd }|t  ddgddgddgddgddgg¡ƒ}td| d}tjtdd	 | ||¡ W d   ƒ n1 s:w   Y  dggd
 }| |¡}t|j	d ƒD ].}t  
|d d …|f ¡tt|ƒƒ }t|d ddd t|d ddd t|d ddd qQd S )Nr   r1   r'   r   r2   rd   rI   z*the uniform strategy would not save memoryr   rU   gUUUUUUÕ?rW   )r   r*   r   r=   ZwarnsÚUserWarningr+   r,   r   r   r[   r\   r   r   ©rB   r¯   r   r    r   r/   r"   r^   r#   r#   r$   Ú+test_uniform_strategy_sparse_target_warning9  s   ,ÿ
"ür¶   c              	   C   sì   dggd }|t  ddgddgddgddgddgg¡ƒ}td| d}| ||¡ dggd }| |¡}t |¡s:J ‚| ¡ }t|j	d ƒD ].}t  
|d d …|f ¡tt|ƒƒ }t|d ddd	 t|d d
dd	 t|d d
dd	 qEd S )Nr   r1   r2   r   rT   rI   rU   rV   rW   gš™™™™™É?)r   r*   r   r+   r,   r°   r±   r²   r   r   r[   r\   r   r   rµ   r#   r#   r$   Ú&test_stratified_strategy_sparse_targetL  s   ,
"ür·   c              	   C   s®   dggd }| t  ddgddgddgddgddgg¡ƒ}t|ƒ}t  t  |df¡t  |df¡g¡}dD ]!}t|dd}| ||¡ | |¡}t	 
|¡sMJ ‚t| ¡ |ƒ q3d S )Nr   r1   r   r(   r2   rF   rI   )r   r*   r   rQ   r   rR   r   r+   r,   r°   r±   r   r²   )r¯   r   r    r!   Ú
y_expectedrJ   r   r/   r#   r#   r$   Ú3test_most_frequent_and_prior_strategy_sparse_target`  s   ,"
úr¹   c                 C   s´   t jj| d}dgg| }| |¡}| |¡}tdd |||¡}|jt j||dks-J ‚tdd |||¡}|jt||dƒksBJ ‚tdd	d
 |||¡}|jt||dƒksXJ ‚d S )Nr:   r   rv   rh   )Úweightsr€   g      I@rƒ   gffffffî?r„   g     ÀW@)	r   r>   r?   r@   r   r+   rž   Zaverager
   )rB   r!   rD   r   r    r­   r.   r#   r#   r$   Ú"test_dummy_regressor_sample_weightp  s   

r»   c                  C   sb   t  dggdggdggg¡} t  g d¢¡}t  g d¢¡}tƒ }| | |¡ | | ¡}t||ƒ d S )NÚfooÚbarÚbaz©r'   r'   r'   )r   r*   r   r+   r,   r   )r   r    r¸   Úclsr/   r#   r#   r$   Ú test_dummy_regressor_on_3D_array  s   
rÁ   c                  C   s~   t  dggdggdggg¡} g d¢}g d¢}dgdgdgg}tdd}| | |¡ | | ¡}| | ¡}t||ƒ t||ƒ d S )Nr¼   r½   r¾   r¿   r   rT   rh   )r   r*   r   r+   r,   r   r   )r   r    r¸   Zy_proba_expectedrÀ   r/   Zy_pred_probar#   r#   r$   Ú!test_dummy_classifier_on_3D_array‹  s   



rÂ   c                  C   sj   dggd } t  g d¢¡}t  g d¢¡}tƒ }| | |¡ |j| dd}t|ƒdks,J ‚t|d |ƒ d S )	Nr   r(   r¿   )r   r   r   T)Z
return_stdr'   r   )r   r*   r   r+   r,   r   r   )r   r    Zy_std_expectedrÀ   Zy_pred_listr#   r#   r$   Útest_dummy_regressor_return_std˜  s   rÃ   )r   r   r   r'   g      ô?r2   c                 C   s*   t ƒ }| d | ¡ | d |¡dksJ ‚d S )Nr¬   )r   r+   rk   )r    r6   rx   r#   r#   r$   Útest_regressor_score_with_None¥  s   rÄ   )rv   r€   rƒ   rm   c                 C   sv   g d¢}dggd }t | ddd}| ||¡ | |¡}dggd }t | ddd}| ||¡ | |¡}t||ƒ d S )Nrn   r   r2   gffffffæ?)rJ   rm   rƒ   r   )r   r+   r,   r   )rJ   r    rp   Zreg1rq   rr   Zreg2rs   r#   r#   r$   Ú*test_regressor_prediction_independent_of_X²  s   

rÅ   c                 C   sF   g d¢}t  d¡}t| ddd}| ||¡ |¡}|jt jks!J ‚d S )Nrn   r2   r   ro   )r   rR   r   r+   r   ZdtypeZfloat64)rJ   r    r   ÚmodelZprobasr#   r#   r$   Útest_dtype_of_classifier_probasÂ  s
   
rÇ   )r9   )Fr   Únumpyr   r=   Zscipy.sparseÚsparser°   Zsklearn.baser   Zsklearn.dummyr   r   Zsklearn.exceptionsr   Zsklearn.utils._testingr   r   r   Zsklearn.utils.fixesr	   Zsklearn.utils.statsr
   r%   r0   r3   r8   rE   rN   rP   rS   r_   rc   re   rf   rj   ÚmarkZparametrizer*   rl   rt   ry   r}   r   r   r‚   rŠ   rŒ   r’   r”   r˜   rš   rŸ   r¡   r¢   r¦   r§   Z	transposerª   r®   r³   r¶   r·   r¹   r»   rÁ   rÂ   rÃ   rÄ   rÅ   rÇ   r#   r#   r#   r$   Ú<module>   sÄ    

  þþþ

ÿ
!

ýý
ýóë
	





.þþ

ÿ