U
    ¿9%e¡q  ã                
   @   sÂ  d dl Z d dlZd dlZd dlmZ 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 d dlmZmZmZ d dlmZ d dlmZ d d	lmZmZmZmZmZ d d
lmZ ej  !ddgeddigeddigei gg¡dd„ ƒZ"dd„ Z#ej  $d¡dd„ ƒZ%dd„ Z&dd„ Z'ee(dej  !ddgeddigeddigei gg¡ej  !dd¡ej  !dd¡ej  !dd ¡d!d"„ ƒƒƒƒƒZ)ej  !ddgeddigeddigei gg¡d#d$„ ƒZ*d%d&„ Z+ej  !dddg¡d'd(„ ƒZ,d)d*„ Z-ej  !ddgeddigeddigei gg¡d+d,„ ƒZ.ej  !dd-¡d.d/„ ƒZ/d0d1„ Z0ej  !deeg¡d2d3„ ƒZ1ej  !ddgeddigeddigei gg¡ej  !dd¡ej  !dd ¡d4d5„ ƒƒƒZ2ej  !ddgeddigeddigei gg¡d6d7„ ƒZ3ej  !dd8d9g¡ej  !dd-¡ej  !dd¡ej  !dd ¡d:d;„ ƒƒƒƒZ4d<d=„ Z5d>d?„ Z6d@dA„ Z7dBdC„ Z8eeddDdE„ ƒZ9dFdG„ Z:ej  !dHdIdJg¡dKdL„ ƒZ;ej  !ddgeddigeddigei gg¡dMdN„ ƒZ<eedej  !dd-¡dOdP„ ƒƒZ=dQdR„ Z>ej  !dSej?ej?fej@ej@fejAej@fejBej@fg¡ej  !ddgeddigeddigei gg¡dTdU„ ƒƒZCej  !ddgeddigeddigei gg¡dVdW„ ƒZDej  !deeg¡dXdY„ ƒZEej  !dHdId dZd[d\d]d^g¡d_d`„ ƒZFdadb„ ZGdcdd„ ZHdedf„ ZIdgdh„ ZJdS )ié    N)ÚStringIO)Úlinalg©Ú
csc_matrix)Úclone)ÚNMFÚMiniBatchNMFÚnon_negative_factorization)Ú_nmf)ÚConvergenceWarning)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Úsquared_normÚ	EstimatorÚsolverÚcdÚmuc              	   C   sD   d}t  d¡}tjt|d | f ddi|—Ž |¡ W 5 Q R X d S )NzKMaximum number of iterations 1 reached. Increase it to improve convergence.©é   r   ©ÚmatchÚmax_iteré   )ÚnpÚonesÚpytestÚwarnsr   Úfit)r   r   Zconvergence_warningÚA© r"   úc/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sklearn/decomposition/tests/test_nmf.pyÚtest_convergence_warning   s
    ÿ
r$   c                  C   s`   t jj d¡} t  |  dd¡¡}dD ]6}tj|d|dd\}}|dk  ¡ sV|dk  ¡ r$t	‚q$d S )Né*   é
   )ÚrandomÚnndsvdÚnndsvdaÚnndsvdarr   ©ÚinitÚrandom_state)
r   r'   ÚmtrandÚRandomStateÚabsÚrandnÚnmfÚ_initialize_nmfÚanyÚAssertionError)ÚrngÚdatar,   ÚWÚHr"   r"   r#   Útest_initialize_nn_output'   s
    r:   zbignore:The multiplicative update \('mu'\) solver cannot update zeros present in the initializationc               
   C   sf  t  d¡} d}tjt|d tddd | ¡ W 5 Q R X d}tjt|d tƒ  |  ¡ W 5 Q R X tdd	d
 | ¡}tjt|d | |  ¡ W 5 Q R X tjt|d t 	|  dd¡ W 5 Q R X dD ]”}t
 d |¡¡}tjt|d td|d | ¡ W 5 Q R X tjt|d td|d | ¡ W 5 Q R X tjt|d t 	| d|¡ W 5 Q R X qÌd S )Nr   zHInvalid beta_loss parameter: solver 'cd' does not handle beta_loss = 1.0r   r   ç      ð?)r   Ú	beta_lossz!Negative values in data passed tor   çš™™™™™¹?)Útolr(   )r(   r)   r*   zLinit = '{}' can only be used when n_components <= min(n_samples, n_features)é   ©r,   )r   r   r   ÚraisesÚ
ValueErrorr   r    Ú	transformr2   r3   ÚreÚescapeÚformatr   )r!   ÚmsgZclfr,   r"   r"   r#   Útest_parameter_checking0   s0    
ÿÿrH   c                  C   sl   t jj d¡} t  |  dd¡¡}tj|ddd\}}t 	t  
||¡| ¡}t 	|| ¡  ¡}||ksht‚d S )Nr%   r&   r(   r@   )r   r'   r.   r/   r0   r1   r2   r3   r   ÚnormÚdotÚmeanr5   )r6   r!   r8   r9   ÚerrorZsdevr"   r"   r#   Útest_initialize_closeS   s    rM   c            
      C   s¢   t jj d¡} t  |  dd¡¡}tj|ddd\}}tj|ddd\}}tj|dddd\}}||f||f||f||ffD ]"\}}	t|	|dk ||dk ƒ qzd S )	Nr%   r&   r(   r@   r)   r*   r   r+   )	r   r'   r.   r/   r0   r1   r2   r3   r   )
r6   r7   ÚW0ÚH0ZWaZHaZWarZHarÚrefZevlr"   r"   r#   Útest_initialize_variants_   s    $rQ   )Úcategoryr,   )Nr(   r)   r*   r'   Úalpha_W)ç        r;   Úalpha_H)rT   r;   Zsamec                 C   sl   t jdt  dd¡ dt  dd¡ f }| f d|||ddœ|—Ž}| |¡}|jdk  ¡ sd|dk  ¡ rht‚d S )Ng      @r   é   r   r   )Ún_componentsr,   rS   rU   r-   )r   Zc_ÚarangeÚfit_transformÚcomponents_r4   r5   )r   r   r,   rS   rU   r!   ÚmodelÚtransfr"   r"   r#   Útest_nmf_fit_nn_outputn   s    
&ûú
r]   c                 C   sN   t jj d¡}| d	ddddœ|—Ž}t  | dd¡¡}| |¡jdk sJt‚d S )
Nr%   é   r*   r   iX  )r,   r-   r   rV   r=   )r^   )	r   r'   r.   r/   r0   r1   r    Úreconstruction_err_r5   )r   r   r6   ZpnmfÚXr"   r"   r#   Útest_nmf_fit_close…   s     ÿüûra   c                  C   sH  d} d}d}d}d}d}t jj d¡}t  | |g¡}t  | | ¡¡}t|ƒD ]}	||	|   ||	|  |	f< qLt  ||g¡}
t  | |¡¡}t|ƒD ]}	||	|  |
|	| |	f< qt  ||
¡}t	|d||d	d
}| 
|¡}t  ||j¡}|jdk sòt‚t||ƒ t|||d	|d}| 
|¡}t  ||j¡}|jdk s6t‚t||dd d S )Né   r&   r^   r   r?   éè  r%   r   r   )rW   r   r<   r   r-   r=   )rW   r<   Ú
batch_sizer-   r   ©Úatol)r   r'   r.   r/   Zzerosr0   r1   ÚrangerJ   r   rY   rZ   r_   r5   r   r   )Ú	n_samplesÚ
n_featuresrW   r<   rd   r   r6   ZW_trueZW_arrayÚjZH_trueZH_arrayr`   r[   r\   ZX_calcZmbmodelr"   r"   r#   Útest_nmf_true_reconstruction—   sL    û

û
rk   c                 C   sX   t jj d¡}t  | dd¡¡}t| ddddd}| |¡}| |¡}t	||d	d
 d S )Nr%   rV   r^   r?   r'   r   çíµ ÷Æ°>)r   rW   r,   r-   r>   r=   re   )
r   r'   r.   r/   r0   r1   r   rY   rC   r   )r   r6   r!   ÚmÚftÚtr"   r"   r#   Útest_nmf_transformÇ   s    û

rp   c                  C   sR   t jj d¡} t  |  dd¡¡}tddddd}| |¡}| |¡}t	||ƒ d S )	Nr%   rV   r^   r?   r   çü©ñÒMbP?T)rW   r-   r>   Úfresh_restarts)
r   r'   r.   r/   r0   r1   r   rY   rC   r   )r6   r!   rm   rn   ro   r"   r"   r#   Útest_minibatch_nmf_transformÙ   s    ü

rs   c           	      C   s–   t j d¡}t  | dd¡¡}d}t  | ¡ | ¡}t  || |d¡ ¡}t  || d|¡ ¡}| f |ddddœ|—Ž}|j|||d | |¡ d S )	Nr   rV   r^   é   Úcustomrq   ©rW   r,   r-   r>   ©r8   r9   )	r   r'   r/   r0   r1   ÚsqrtrK   rY   rC   )	r   r   r-   r!   rW   ÚavgZH_initZW_initrm   r"   r"   r#   Útest_nmf_transform_custom_inité   s        ÿÿrz   )r   r   c                 C   sV   t j d¡}t  | dd¡¡}t| ddddd}| |¡}| |¡}t||dd d S )	Nr   rV   rt   r'   rc   )r   rW   r,   r-   r   r   ©Údecimal)	r   r'   r/   r0   r1   r   rY   Úinverse_transformr   )r   r-   r!   rm   rn   ÚA_newr"   r"   r#   Útest_nmf_inverse_transformý   s    û

r   c                  C   sV   t j d¡} t  |  dd¡¡}t| dddd}| |¡}| |¡}t||dd	d
 d S )Nr   rV   rt   éô  r*   T)r-   r   r,   rr   rq   ç{®Gáz„?)Zrtolrf   )	r   r'   r/   r0   r1   r   rY   r}   r   )r6   r!   r2   rn   r~   r"   r"   r#   Útest_mbnmf_inverse_transform  s    ü

r‚   c                 C   s8   t jj d¡}t  | dd¡¡}| dddd |¡ d S )Nr%   é   r&   rb   r   r   )rW   r-   r>   )r   r'   r.   r/   r0   r1   r    )r   r6   r!   r"   r"   r#   Ú$test_n_components_greater_n_features  s    r„   c              
   C   s¬   ddl m} tjj d¡}t | dd¡¡}d|d d …dt d¡ f< ||ƒ}| f dd||dddd	œ|—Ž}t	|ƒ}	| 
|¡}
|	 
|¡}|j}|	j}t|
|ƒ t||ƒ d S )
Nr   r   r%   r&   r   r^   r'   éd   )rW   r,   rS   rU   r-   r>   r   )Úscipy.sparser   r   r'   r.   r/   r0   r1   rX   r   rY   rZ   r   )r   r   rS   rU   r   r6   r!   ZA_sparseZest1Zest2ÚW1ÚW2ÚH1ÚH2r"   r"   r#   Útest_nmf_sparse_input&  s.    ùø



r‹   c                 C   sl   t jj d¡}t  | dd¡¡}d|d< t|ƒ}| f ddddœ|—Ž}| |¡}| |¡}t	||dd	 d S )
Nr%   r?   r   r   )r   r   i  )r-   rW   r   r=   re   )
r   r'   r.   r/   r0   r1   r   rY   rC   r   )r   r   r6   r!   r[   ZA_fit_trZA_trr"   r"   r#   Útest_nmf_sparse_transformJ  s    

rŒ   r'   r(   c                 C   sÀ   d}t jj d¡}t  | dd¡¡}d|d d …dt  d¡ f< t|| ||||ddd	\}}}	t||d
| ||||ddd
\}
}}	t| ||||ddd	}| 	|¡}| 
|¡}t||ƒ t|
|ƒ d S )Nr€   r%   r&   r   r   r^   r   r   )r,   r   r   rS   rU   r-   r>   F)	r9   Úupdate_Hr,   r   r   rS   rU   r-   r>   )r   r'   r.   r/   r0   r1   rX   r	   r   rY   rC   r   )r,   r   rS   rU   r   r6   r!   ZW_nmfr9   Ú_ZW_nmf_2Zmodel_classZW_clsZW_cls_2r"   r"   r#   Ú+test_non_negative_factorization_consistency[  sN    ø
öù	


r   c               	   C   s¼   t  d¡} t}t d¡}tjt|d || | |  ddd W 5 Q R X t d¡}tjt|d || |  | ddd W 5 Q R X t d¡}tjt|d || | d	|  ddd W 5 Q R X d S )
Nr   z/Negative values in data passed to NMF (input H)r   r   ru   r@   z/Negative values in data passed to NMF (input W)z.Array passed to NMF (input H) is full of zerosr   )r   r   r	   rD   rE   r   rA   rB   )r!   ZnnmfrG   r"   r"   r#   Ú(test_non_negative_factorization_checkingŽ  s    



r   c           	      C   s  t  ||¡}|dkr$t| | ƒd S || dk }| | dk }t j|d|d |dkr‚t  |t  || ¡ ¡}|| ¡ |  ¡  7 }n‚|dkr´|| }t  |¡| j t  t  |¡¡ }nP||  ¡ }||d ||  ¡  7 }|||||d    ¡  8 }|||d   }|S )z~Compute the beta-divergence of X and W.H for dense array only.

    Used as a reference for testing nmf._beta_divergence.
    r   r   ç•Ö&è.>©Úoutr   )r   rJ   r   ÚmaximumÚsumÚlogÚsize)	r`   r8   r9   ÚbetaÚWHZWH_XnonzeroZ	X_nonzeroÚresÚdivr"   r"   r#   Ú_beta_divergence_dense¢  s"    "rœ   c                  C   sÀ   d} d}d}dddddd	g}t jj d
¡}| | |¡}t j|dd |d t |¡}tj	||dd
d\}}|D ]N}	t
||||	ƒ}
t ||||	¡}t ||||	¡}t|
|dd t|
|dd qld S )Né   r&   r^   rT   ç      à?r;   ç      ø?ç       @g      @r%   r   r’   r'   r+   é   r{   )r   r'   r.   r/   r1   ÚclipÚspÚ
csr_matrixr2   r3   rœ   Ú_beta_divergencer   )rh   ri   rW   Zbeta_lossesr6   r`   ÚX_csrr8   r9   r˜   rP   ÚlossZloss_csrr"   r"   r#   Útest_beta_divergenceÀ  s    
r¨   c                  C   sè   d} d}d}t jj d¡}| | |¡}t j|dd |d t |¡}t  | | |¡¡}t  | ||¡¡}t	 
|||¡}t	 
|||¡}	| ¡ \}
}t  ||
|f ¡ ¡ }t||	|
|f dd t|j|jƒ t|j|jƒ t|j|jƒ d S )Nr&   r^   r?   r%   r   r’   r{   )r   r'   r.   r/   r1   r¢   r£   r¤   r0   r2   Z_special_sparse_dotZnonzeroZasarrayZravelr   r   ÚindicesZindptrÚshape)rh   ri   rW   r6   r`   r¦   r8   r9   ZWH_safer™   ÚiiZjjZWH_safe_datar"   r"   r#   Útest_special_sparse_dot×  s"    
r¬   c                  C   sR  d} d}d}d}d}d}t jj d¡}| | |¡}t  |¡}t |¡}tj	||ddd	\}	}
d
D ]ì}|	 
¡ |
 
¡  }}t||||ddd||||dd\}}}|	 
¡ |
 
¡  }}t||||ddd||||dd\}}}t||dd t||dd |d8 }|	 
¡ |
 
¡  }}t||||ddd||||dd\}}}t||dd t||dd q`d S )Nr   r&   r^   r=   rž   i9  r'   r%   r+   ©g333333ó¿r   çš™™™™™É?r;   r    ç      @ru   Tr   )r,   r   r   r<   r   rS   Úl1_ratior-   gH¯¼šò×z>re   çñhãˆµøä>g-Cëâ6?)r   r'   r.   r/   r1   r0   r£   r¤   r2   r3   Úcopyr	   r   )rh   ri   rW   Úalphar°   Zn_iterr6   r`   r¦   rN   rO   r<   r8   r9   r‡   r‰   rŽ   rˆ   rŠ   ZW3ZH3r"   r"   r#   Ú%test_nmf_multiplicative_update_sparseò  s|    

ôôôr´   c               
      s°   d} d}d‰ t jj d¡}| | |¡}t j|dd |d t |¡}‡ fdd„}d	}d
D ]6}tj	t
|d |||ƒ W 5 Q R X ||d |ƒ qVdD ]}|||ƒ |||ƒ q’d S )NrV   r^   r?   r%   r   r’   c              	      sH   t | dˆ d|ddd\}}}t t |¡¡r0t‚t t |¡¡rDt‚d S )Nr'   r   r   rc   )r,   rW   r   r<   r-   r   )r	   r   r4   Úisnanr5   )r`   r<   r8   r9   rŽ   ©rW   r"   r#   Ú_assert_nmf_no_nanM  s    ù	z7test_nmf_negative_beta_loss.<locals>._assert_nmf_no_nanúAWhen beta_loss <= 0 and X contains zeros, the solver may diverge.)g333333ã¿rT   r   r‘   )r®   r;   g333333ó?r    r¯   )r   r'   r.   r/   r1   r¢   r£   r¤   r   rA   rB   )rh   ri   r6   r`   r¦   r·   rG   r<   r"   r¶   r#   Útest_nmf_negative_beta_lossA  s     

r¹   r<   g      à¿rT   c              	   C   s\   t j d¡}|jdd}d||dk < t| dd}d}tjt|d | |¡ W 5 Q R X dS )zDCheck that an error is raised if beta_loss < 0 and X contains zeros.r   )rV   r^   )r—   )r<   r-   r¸   r   N)	r   r'   r/   Únormalr   r   rA   rB   r    )r<   r6   r`   r2   rG   r"   r"   r#   Ú%test_minibatch_nmf_negative_beta_losse  s    r»   c                 C   st  d}d}d}t jj d¡}t  | ||¡¡}d}| f |d|ddœ|—Ž}| f |d|ddœ|—Ž}	| |¡}
|	 |¡}|j}|	j}t  t j	¡j
}|
|
|k j}|||k j}|||k j}|||k j}||ksÒt‚||ksÞt‚d}| f |d|ddœ|—Ž}| f |d|ddœ|—Ž}	| |¡}
|	 |¡}|j}|	j}t |¡d	 t |¡d	  t |
¡d	 t |¡d	  kspt‚d S )
NrV   r^   r?   r%   r;   rž   )rW   rS   r°   r-   rT   r    )r   r'   r.   r/   r0   r1   rY   rZ   ZfinfoÚfloat64Úepsr—   r5   r   rI   )r   r   rh   ri   rW   r6   r`   r°   Zregulr[   ZW_regulZW_modelZH_regulZH_modelr½   ZW_regul_n_zerosZW_model_n_zerosZH_regul_n_zerosZH_model_n_zerosr"   r"   r#   Útest_nmf_regularizations  sx    üûüû

üûüû

þþr¾   c                 C   sN  d}d}d}d}d}d}t jj d¡}| ||¡}t  ||¡ tj||ddd	\}	}
d
D ]ð}| dkrn|dkrnqX|	 ¡ |
 ¡  }}d }t	dƒD ]º}t
||||d|d|| ||dddd\}}}t ||||¡|| | | ¡   || | | ¡   |d|  | |d  ¡   |d|  | |d  ¡   }|d k	rB||ksBt‚|}qŒqXd S )Nr   rb   r&   r=   rž   rT   r%   r'   r+   r­   r   r   rƒ   ru   r   r   T)r<   r,   rW   r   rS   r   r>   r°   Úverboser-   r   )r   r'   r.   r/   r1   r0   r2   r3   r²   rg   r	   r¥   r•   r5   )r   rh   ri   rW   r³   r°   r>   r6   r`   rN   rO   r<   r8   r9   Zprevious_lossrŽ   r§   r"   r"   r#   Útest_nmf_decreasing¼  sZ    òÿþýüÿ
rÀ   c            	      C   s–   t j d¡} d\}}}t  |  ||¡¡d }t  |  ||¡¡d }t  |  ||¡¡}d|d< tj|||dd}d|d< tj|||dd}t||ƒ d S )Nr   )r&   r   r   r&   )r   r   r;   )r˜   g       )r   r'   r/   r0   r1   r2   r¥   r   )	r6   rh   ri   rW   r`   r8   r9   rP   rš   r"   r"   r#   Útest_nmf_underflowò  s    
rÁ   zdtype_in, dtype_outc                 C   s†   t j d¡ dd¡j|dd}t j||d | f ddddd	œ|—Ž}| |¡ |¡j|ks^t	‚| 
|¡j|ksrt	‚|jj|ks‚t	‚d S )
Nr   r   rb   F)r²   r’   r;   r   )rS   rU   r>   r-   )r   r'   r/   r1   Úastyper0   r    rC   Zdtyper5   rY   rZ   )r   r   Zdtype_inZ	dtype_outr`   r2   r"   r"   r#   Útest_nmf_dtype_match  s    rÃ   c                 C   sx   t j d¡ dd¡}t j||d | f dddœ|—Ž}| | t j¡¡}| f dddœ|—Ž}| |¡}t||dd d S )	Nr   é2   r¡   r’   rq   )r-   r>   r±   re   )	r   r'   r/   r1   r0   rY   rÂ   Úfloat32r   )r   r   r`   Znmf32ZW32Znmf64ZW64r"   r"   r#   Ú$test_nmf_float32_float64_consistency  s    
rÆ   c              	   C   sŽ   t j d¡}| d¡}| d¡ t j¡}| d¡}tjtdd | ddj	|||d W 5 Q R X tjtdd t
||d	d
 W 5 Q R X d S )Nr   )r   rb   )rb   rb   zshould have the same dtype as Xr   ru   r@   )r9   r8   F)r9   r   )r   r'   r/   Úrandom_samplerÂ   rÅ   r   rA   Ú	TypeErrorr    r	   )r   r6   r`   r9   r8   r"   r"   r#   Ú test_nmf_custom_init_dtype_error*  s    

 rÉ   rž   r   rŸ   r   r¯   c              	   C   sp   t jj d¡}t  | dd¡¡}td| dddd}td| ddd |jd dd}| 	|¡}| 	|¡}t
||ƒ d S )	Nr%   é0   r^   r   r   )rW   r<   r   r-   r>   rT   )rW   r<   r-   r>   Úmax_no_improvementrd   Zforget_factor)r   r'   r.   r/   r0   r1   r   r   rª   rY   r   )r<   r6   r`   r2   Zmbnmfr8   ZmbWr"   r"   r#   Ú!test_nmf_minibatchnmf_equivalence:  s*    ûù	

rÌ   c               
   C   sÚ   t jj d¡} t  |  dd¡¡}d}d}d}t|dd||dd dd	}t|ddd
}tj||ddd
\}}|j	|||d t
|ƒD ]6}	t
|ƒD ](}
|j||
|
| … |d |… |d qŒq€|j|jksÈt‚t|j|jƒ d S )Nr%   r…   r^   r&   r   ru   r   F)rW   r,   r-   r   rd   r>   rË   rr   )rW   r,   r-   r'   rw   )r   r'   r.   r/   r0   r1   r   r2   r3   r    rg   Zpartial_fitZn_steps_r5   r   rZ   )r6   r`   rW   rd   r   Zmbnmf1Zmbnmf2r8   r9   Úirj   r"   r"   r#   Útest_minibatch_nmf_partial_fitV  s8    ø
   ÿ
(rÎ   c                  C   sR   t j d¡} t  |  dd¡¡}tdd |¡}| ¡ }tdd„ t	dƒD ƒ|ƒ dS )	z Check feature names out for NMF.r   r&   rt   r?   r¶   c                 S   s   g | ]}d |› ‘qS )r2   r"   )Ú.0rÍ   r"   r"   r#   Ú
<listcomp>€  s     z*test_feature_names_out.<locals>.<listcomp>N)
r   r'   r/   r0   r1   r   r    Zget_feature_names_outr   rg   )r-   r`   r2   Únamesr"   r"   r#   Útest_feature_names_outy  s
    rÒ   c                  C   sJ   t j d¡ d¡} tdddd}tj}tƒ t_z| | ¡ W 5 |t_X d S )Nr   )r…   r&   r   r   )r>   r-   r¿   )	r   r'   r/   rÇ   r   ÚsysÚstdoutr   r    )r!   r2   Z
old_stdoutr"   r"   r#   Útest_minibatch_nmf_verboseƒ  s    rÕ   c               	   C   sÚ   t jj d¡} t  |  dd¡¡}tddddd}| |¡}tj	t
d	d
 | ¡  W 5 Q R X tj	tdd
 |j||d W 5 Q R X tjdd t d¡ | |¡ W 5 Q R X tjtdd
 |j|d W 5 Q R X d S )Nr%   rV   r^   r?   r'   r   rl   rv   z$Missing required positional argumentr   zPlease provide only)ÚXtr8   T)ÚrecordrL   z&Input argument `W` was renamed to `Xt`)r8   )r   r'   r.   r/   r0   r1   r   rY   r   rA   rÈ   r}   rB   ÚwarningsÚcatch_warningsÚsimplefilterr   ÚFutureWarning)r6   r!   ZestrÖ   r"   r"   r#   Ú(test_NMF_inverse_transform_W_deprecation  s$    ü

rÜ   )KrD   rÓ   rØ   Úior   Únumpyr   r   r†   Úsparser£   Zscipyr   r   Zsklearn.baser   Zsklearn.decompositionr   r   r	   r
   r2   Zsklearn.exceptionsr   Zsklearn.utils._testingr   r   r   r   r   Zsklearn.utils.extmathr   ÚmarkZparametrizer$   r:   ÚfilterwarningsrH   rM   rQ   ÚUserWarningr]   ra   rk   rp   rs   rz   r   r‚   r„   r‹   rŒ   r   r   rœ   r¨   r¬   r´   r¹   r»   r¾   rÀ   rÁ   rÅ   r¼   Zint32Zint64rÃ   rÆ   rÉ   rÌ   rÎ   rÒ   rÕ   rÜ   r"   r"   r"   r#   Ú<module>   sæ   þ
		ÿ
þþ
0
þ


þþ
/
N$
þ
E4



üþ	þþ


#
