a
    !ñ»j`  ã                   @   s”  d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
Z
d dlZdd„ ZG dd„ dƒZG dd	„ d	ƒZej d
ejejejejg¡ej dddg¡ej dejjejjejjejjejjejjg¡dd„ ƒƒƒZej dddg¡ej dg d¢¡dd„ ƒƒZejje	dd�G dd„ dƒƒZdd„ Zdd„ Z ej dejjejjejj!ejj"g¡ej de #g d¢¡ej$d ej%d!�ej$d"ej&d!�g¡d#d$„ ƒƒZ'dS )%é    N)Úrandom)Úassert_array_equalÚassert_raisesÚassert_allcloseÚIS_WASMc                 C   sN   t | ƒ}dtj t |¡|  }t |¡ dd¡| }tj| t |¡ dd�S )Ny       €       Àéÿÿÿÿé   ©Úaxis)ÚlenÚnpÚpiÚarangeÚreshapeÚsumÚexp)ÚxÚLZphase© r   úDE:\soccer\ml_env\Lib\site-packages\numpy/fft/tests/test_pocketfft.pyÚfft1   s    r   c                   @   s   e Zd Zdd„ ZdS )ÚTestFFTShiftc                 C   s   t ttjjg d¢dƒ d S )N)r   é   é   r   )r   Ú
ValueErrorr   Úfft)Úselfr   r   r   Ú
test_fft_n   s    zTestFFTShift.test_fft_nN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   c                	   @   s¨  e Zd Zdd„ Zej dejej	ej
g¡dd„ ƒZej dejej	ej
g¡dd„ ƒZdd	„ Zej d
d¡ej deef¡ej dd¡dd„ ƒƒƒZej d
ddg¡dd„ ƒZdd„ Zej dd¡d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d*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Z d4d5„ Z!ej d6ej"j#ej"j$ej"j%ej"j&g¡d7d8„ ƒZ'ej d6ej"j#ej"j$ej"j(ej"j)g¡d9d:„ ƒZ*ej d6ej"j#ej"j$ej"j%ej"j&g¡d;d<„ ƒZ+ej d6ej"j(ej"j)g¡d=d>„ ƒZ,ej d6ej"j#ej"j$ej"j%ej"j&ej"j(ej"j)g¡d?d@„ ƒZ-dAdB„ Z.ej dCg dD¢¡ej deef¡ej dd¡dEdF„ ƒƒƒZ/ej dGej"j#ej"j$ej"j%g¡dHdI„ ƒZ0ej dJdKdLg¡dMdN„ ƒZ1dOS )PÚ	TestFFT1Dc              	   C   s’   d}t |ƒdt |ƒ  }t |ƒ}td|ƒD ]b}ttj tj |d|… ¡¡|d|… dd� ttj tj |d|… ¡|¡|d|… dd� q*d S )Ni   ù              ð?r   r   gê-�™—q=©Úatol)r   Úranger   r   r   ÚifftÚirfftÚrfft)r   Úmaxlenr   ÚxrÚir   r   r   Útest_identity   s    &ÿÿzTestFFT1D.test_identityÚdtypec                 C   s  d}dt  t jd|d�¡ }t|ƒ |¡dt|ƒ |¡  }t  |t  |¡g¡}t|ƒ |¡}t  |t  |¡g¡}td|d ƒD ]Š}t jj	t jj||d�|d�}	|	j
j|ks°J ‚t|	|d	|… |d	d
� t jjt jj||d�|d�}
|
j|ksòJ ‚t|
|d	|… |d	d
� q€d S ©Né   é   ç      ð?©r-   r"   r   r   ©Únr   ©r$   Úrtol)r   ÚspacingÚarrayr   ÚastypeÚconcatenateÚ
zeros_liker%   r   r&   Úrealr-   r   r'   r(   )r   r-   r)   r$   r   Úxxr*   Zxxrr+   Zcheck_cZcheck_rr   r   r   Útest_identity_long_short$   s     z"TestFFT1D.test_identity_long_shortc                 C   sB  d}dt  t jd|d�¡ }t|ƒ |¡dt|ƒ |¡  }t  |t  |¡g¡}td|d ƒD ]Þ}t jjt jj	||d�|d�}|j
|j
ksŽJ ‚t||d	|… |d	d
� | ¡ }|d d }	d	|jd	< |d d	krâd	|j|	d d …< t  |t  |¡g¡}
t jjt jj||d�|d�}|j
|j
k�s$J ‚t||
d	|	… |d	d
� q^d S r.   )r   r7   r8   r   r9   r:   r;   r%   r   r&   r-   r   ÚcopyÚimagr(   r'   )r   r-   r)   r$   r   r=   r+   Zcheck_via_cÚyr4   ÚyyZcheck_via_rr   r   r   Ú!test_identity_long_short_reversed6   s"     
z+TestFFT1D.test_identity_long_short_reversedc                 C   sš   t dƒdt dƒ  }tt|ƒtj |¡dd� tt|ƒtjj|dd�dd� tt|ƒt d¡ tjj|dd�dd� tt|ƒd tjj|d	d�dd� d S )
Né   r"   ç�íµ ÷Æ°>r#   Úbackward©ÚnormÚorthoç      >@Úforward)r   r   r   r   r   Úsqrt©r   r   r   r   r   Útest_fftN   s    ÿÿzTestFFT1D.test_fftr
   ©r   r   Ú	transpose)TFc                    sÖ   ‡ fdd„}|t u r<tdƒdtdƒ  }tjjtjj }}ntdƒ}tjjtjj }}|||d�}||ƒ}	|||	|d�}
|
|	u s„J ‚t|
|ƒ |||d�}|t u r¦|	n||ƒ}||	||d�}||u sÈJ ‚t||ƒ d S )Nc                    s    ˆ rt  | j¡jS t  | ¡S d S ©N©r   r;   ÚT©r   ©rP   r   r   r;   [   s    z3TestFFT1D.test_fft_out_argument.<locals>.zeros_like)é
   é   r"   r	   )Úoutr
   )Úcomplexr   r   r   r&   r(   r'   r   )r   r-   rP   r
   r;   rA   r   r&   ÚexpectedrX   ÚresultÚ	expected2Úout2Úresult2r   rU   r   Útest_fft_out_argumentW   s     
zTestFFT1D.test_fft_out_argumentr   r   c                 C   sÂ  t dƒdt dƒ  }| ¡ }tjj||d�}tjj|||d�}||u sJJ ‚t||ƒ | ¡ }|dkrp|d d… n|d d …d d…f }tjj|d|d�}tjj|d||d�}	|	|u s¶J ‚t|	|ƒ |dkrät|dd … |dd … ƒ n*t|d d …dd …f |d d …dd …f ƒ | ¡ }
|dk�r,|
d	d … n|
d d …d	d …f }|dk�rV|
d	d
… n|
d d …d	d
…f }tjj|d|d�}tjj|d||d�}||u �sžJ ‚t||ƒ |dk�rèt|
d d	… |d d	… ƒ t|
d
d … |d
d … ƒ nTt|
d d …d d	…f |d d …d d	…f ƒ t|
d d …d
d …f |d d …d
d …f ƒ | ¡ }|dk�rZ|d d… n|d d …d d…f }|dk�r„|d d
… n|d d …d d
…f }tjj|d
|d�}tjj|d
||d�}||u �sÌJ ‚t||ƒ |dk�rüt|d
d … |d
d … ƒ n*t|d d …d
d …f |d d …d
d …f ƒ | ¡ }|j}tjj|||d�}||u �sTJ ‚t||ƒ | ¡ }|dk�r~|d d d… n|d d …d d d…f }tjj|||d�}||u �s´J ‚t||ƒ d S )N)rW   rW   r"   r	   )r
   rX   r   rV   )r4   r
   )r4   r
   rX   r0   é   r   )r   r?   r   r   r   rS   )r   r
   rA   Úy1Z	expected1Zresult1Úy2r]   r\   r^   Zy3Zy3_selZout3Z	expected3Zresult3Zy4Zy4_selZout4Z	expected4Zresult4Zy5Zout5Zresult5Zy6Zout6Zresult6r   r   r   Útest_fft_inplace_outu   s^    
(
***

****

*
.zTestFFT1D.test_fft_inplace_outc                 C   sà   t  d¡}tjtdd��  t jj|dd� W d   ƒ n1 s>0    Y  tjtdd��. t jj|t  |¡ dd¡d� W d   ƒ n1 sŠ0    Y  tjtd	d��* t jj|t j|t	d
�d� W d   ƒ n1 sÒ0    Y  d S )NrJ   zmust be of ArrayType©ÚmatchÚ )rX   úhas wrong shaper0   r   zCannot castr2   )
r   r   ÚpytestÚraisesÚ	TypeErrorr   r   r;   r   ÚfloatrM   r   r   r   Útest_fft_bad_out±   s    
.<zTestFFT1D.test_fft_bad_outrH   ©NrF   rI   rK   c                 C   s|   t dƒdt dƒ  }t|tjjtjj||d�|d�dd� tjtdd��  tjjg |d� W d   ƒ n1 sn0    Y  d S )NrD   r"   rG   rE   r#   z!Invalid number of FFT data pointsrd   )r   r   r   r   r&   rh   ri   r   )r   rH   r   r   r   r   Ú	test_ifftº   s    þÿzTestFFT1D.test_ifftc                 C   sº   t dƒdt dƒ  }ttjjtjj|dd�dd�tj |¡dd� ttj |¡tjj|dd	�dd� ttj |¡t d
¡ tjj|dd	�dd� ttj |¡d tjj|dd	�dd� d S ©N©rD   rW   r"   r   r	   r   rE   r#   rF   rG   éX  rI   ç     À‚@rK   )r   r   r   r   Úfft2rL   rM   r   r   r   Ú	test_fft2Å   s    ÿÿÿÿzTestFFT1D.test_fft2c                 C   sº   t dƒdt dƒ  }ttjjtjj|dd�dd�tj |¡dd� ttj |¡tjj|dd	�dd� ttj |¡t d
¡ tjj|dd	�dd� ttj |¡d tjj|dd	�dd� d S ro   )r   r   r   r   r&   Úifft2rL   rM   r   r   r   Ú
test_ifft2Ð   s    ÿÿÿÿzTestFFT1D.test_ifft2c                 C   sÆ   t dƒdt dƒ  }ttjjtjjtjj|dd�dd�dd�tj |¡dd� ttj |¡tjj|d	d
�dd� ttj |¡t d¡ tjj|dd
�dd� ttj |¡d tjj|dd
�dd� d S ©N©rD   rW   rV   r"   r   r	   r   r   rE   r#   rF   rG   ép  rI   ç     p·@rK   )r   r   r   r   ÚfftnrL   rM   r   r   r   Ú	test_fftnÛ   s    &þÿÿÿzTestFFT1D.test_fftnc                 C   sÆ   t dƒdt dƒ  }ttjjtjjtjj|dd�dd�dd�tj |¡dd� ttj |¡tjj|d	d
�dd� ttj |¡t d¡ tjj|dd
�dd� ttj |¡d tjj|dd
�dd� d S rw   )r   r   r   r   r&   ÚifftnrL   rM   r   r   r   Ú
test_ifftnç   s    &þÿÿÿzTestFFT1D.test_ifftnc              	   C   sì   t dƒ}|jd|j fD ]Î}dD ]>}ttjj|||d�d |d d … tjj|||d�dd� q ttjj||d�tjj||d	d�dd� ttjj||d�t |¡ tjj||d
d�dd� ttjj||d�| tjj||dd�dd� qd S )NrD   r   rm   ©r4   rH   r   rE   r#   r3   rF   rI   rK   )r   Úsizer   r   r   r(   rL   )r   r   r4   rH   r   r   r   Ú	test_rfftó   s&     þþþþzTestFFT1D.test_rfftc                 C   sN   t  d¡}d}t j ||¡}t|t j |d |… ¡d |d d … dd� d S )Né   é   r   r   ç›+¡†›„=©r6   )r   r   r   r(   r   )r   r   r4   rA   r   r   r   Útest_rfft_even  s    
zTestFFT1D.test_rfft_evenc                 C   s<   t  g d¢¡}t j |¡}t|t j |¡d d… dd� d S )N)r   r   r   r   éýÿÿÿr   r„   r…   )r   r8   r   r(   r   )r   r   rA   r   r   r   Útest_rfft_odd
  s    zTestFFT1D.test_rfft_oddc                 C   sœ   t dƒ}t|tj tj |¡¡dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|dd�dd�dd� d S )NrD   rE   r#   rF   rG   rI   rK   )r   r   r   r   r'   r(   rM   r   r   r   Ú
test_irfft  s"    ÿÿÿÿÿÿzTestFFT1D.test_irfftc                 C   s®   t dƒ}ttj |¡d d …d d…f tj |¡dd� ttj |¡tjj|dd�dd� ttj |¡t d¡ tjj|dd�dd� ttj |¡d	 tjj|d
d�dd� d S )Nrp   é   rE   r#   rF   rG   rq   rI   rr   rK   )r   r   r   r   rs   Úrfft2rL   rM   r   r   r   Ú
test_rfft2  s    .ÿÿÿzTestFFT1D.test_rfft2c                 C   sœ   t dƒ}t|tj tj |¡¡dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|dd�dd�dd� d S )Nrp   rE   r#   rF   rG   rI   rK   )r   r   r   r   Zirfft2r‹   rM   r   r   r   Útest_irfft2#  s"    ÿÿÿÿÿÿzTestFFT1D.test_irfft2c                 C   s´   t dƒ}ttj |¡d d …d d …d d…f tj |¡dd� ttj |¡tjj|dd�dd� ttj |¡t d¡ tjj|dd�dd� ttj |¡d	 tjj|d
d�dd� d S )Nrx   é   rE   r#   rF   rG   ry   rI   rz   rK   )r   r   r   r   r{   ÚrfftnrL   rM   r   r   r   Ú
test_rfftn-  s    4ÿÿÿzTestFFT1D.test_rfftnc                 C   sœ   t dƒ}t|tj tj |¡¡dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|dd�dd�dd� d S )Nrx   rE   r#   rF   rG   rI   rK   )r   r   r   r   Úirfftnr�   rM   r   r   r   Útest_irfftn7  s"    ÿÿÿÿÿÿzTestFFT1D.test_irfftnc                 C   sÞ   t dƒdt dƒ  }t t dƒ|t dƒf¡}t ||d d d…  ¡ f¡}ttj |¡tj |¡dd� ttj |¡tjj|dd�dd� ttj |¡t d	¡ tjj|d
d�dd� ttj |¡d tjj|dd�dd� d S )Né   r"   r   r   rE   r#   rF   rG   rD   rI   rJ   rK   )r   r   r:   Úconjr   r   ÚhfftrL   ©r   r   Zx_hermr   r   r   Ú	test_hfftA  s    ÿÿÿzTestFFT1D.test_hfftc                 C   sÜ   t dƒdt dƒ  }t t dƒ|t dƒf¡}t ||d d d…  ¡ f¡}t|tj tj |¡¡dd� t|tjjtjj|dd�dd�dd� t|tjjtjj|d	d�d	d�dd� t|tjjtjj|d
d�d
d�dd� d S )Nr“   r"   r   r   rE   r#   rF   rG   rI   rK   )r   r   r:   r”   r   r   Úihfftr•   r–   r   r   r   Ú
test_ihfftM  s2    ÿÿÿÿÿÿÿÿÿzTestFFT1D.test_ihfftÚopc                 C   sP   t dƒ}g d¢}|D ]6}|t ||¡ƒ}t |||d�|¡}t||dd� qd S )Nrx   )©r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   ©ÚaxesrE   r#   )r   r   rP   r   )r   rš   r   r�   ÚaZop_trZtr_opr   r   r   Ú	test_axesY  s    zTestFFT1D.test_axesc                 C   s.   t  d¡ dd¡}||ddd�jdks*J ‚d S )Néd   rV   ©r   r0   rO   ©Úsr�   )rV   r0   )r   r   r   Úshape©r   rš   r   r   r   r   Útest_s_negative_1c  s    zTestFFT1D.test_s_negative_1c                 C   sN   t  d¡ dd¡}tjdd�� ||dd� W d   ƒ n1 s@0    Y  d S )Nr    rV   ú"`axes` should not be `None` if `s`rd   r¡   )r£   ©r   r   r   rh   Úwarnsr¥   r   r   r   Útest_s_axes_nonej  s    zTestFFT1D.test_s_axes_nonec                 C   sP   t  d¡ dd¡}tjdd�� ||dd d� W d   ƒ n1 sB0    Y  d S )Nr    rV   r§   rd   r¡   r¢   r¨   r¥   r   r   r   Útest_s_axes_none_2Dq  s    zTestFFT1D.test_s_axes_none_2Dc                 C   sF   t dƒ}tjdd�� ||ddd� W d   ƒ n1 s80    Y  d S )Nrx   z%array containing `None` values to `s`rd   )rV   NrV   r›   r¢   )r   rh   r©   r¥   r   r   r   Útest_s_contains_nonew  s    zTestFFT1D.test_s_contains_nonec           	      C   s°   t dƒ}tj |¡}|jd }tjjtjjftjjtjjftjj	tjj
fg}|D ]Z\}}|jd|j fD ]@}dD ]6}||||d�}||||d�}t|tj |¡dd� qpqhqPd S )NrD   r   rm   r   rE   r#   )r   r   ZlinalgrH   r€   r   r&   r(   r'   r˜   r•   r   )	r   r   Zx_normr4   Z
func_pairsZforwÚbackrH   Útmpr   r   r   Útest_all_1d_norm_preserving  s    
üÿz%TestFFT1D.test_all_1d_norm_preservingr�   )rO   ©r   r   Nc                    sÖ   ‡ fdd„}|t u r<tdƒdtdƒ  }tjjtjj }}ntdƒ}tjjtjj }}|||d�}||ƒ}	|||	|d�}
|
|	u s„J ‚t|
|ƒ |||d�}|t u r¦|	n||ƒ}||	||d�}||u sÈJ ‚t||ƒ d S )Nc                    s    ˆ rt  | j¡jS t  | ¡S d S rQ   rR   rT   rU   r   r   r;   –  s    z4TestFFT1D.test_fftn_out_argument.<locals>.zeros_like©rV   r0   rŽ   r"   rœ   )rX   r�   )	rY   r   r   r   r{   r}   r�   r‘   r   )r   r-   rP   r�   r;   r   r   r&   rZ   rX   r[   r\   r]   r^   r   rU   r   Útest_fftn_out_argument’  s     
z TestFFT1D.test_fftn_out_argumentr   c                 C   s´   |t jju rtdƒ}ntdƒdtdƒ  }tjtdd��& ||t  |¡ddd� W d   ƒ n1 sd0    Y  d}|||dd	�}t  |¡}|||d|d
�}||u s¦J ‚t||ƒ d S )Nr±   r"   rg   rd   ©r   r   r   r›   )rX   r£   r�   )rV   r0   r0   r¢   ©r£   r�   rX   )	r   r   r�   r   rh   ri   r   r;   r   )r   r   r   r£   rZ   rX   r[   r   r   r   Útest_fftn_out_and_s_interaction°  s    
4
z)TestFFT1D.test_fftn_out_and_s_interactionr£   )é	   r0   r0   r³   c                 C   s^   t dƒdt dƒ  }tjj||dd�}t |¡}tjj||d|d�}||u sPJ ‚t||ƒ d S )N)r¶   r0   rŽ   r   r"   r›   r¢   r´   )r   r   r   r‘   r;   r   )r   r£   r   rZ   rX   r[   r   r   r   Ú!test_irfftn_out_and_s_interactionÁ  s    
z+TestFFT1D.test_irfftn_out_and_s_interactionN)2r   r   r    r,   rh   ÚmarkÚparametrizer   ÚsingleÚdoubleZ
longdoubler>   rC   rN   rY   rk   r_   rc   rl   rn   rt   rv   r|   r~   r�   r†   rˆ   r‰   rŒ   r�   r�   r’   r—   r™   r   r{   r}   r�   r‘   rŸ   rs   ru   r¦   rª   r«   r¬   r¯   r²   rµ   r·   r   r   r   r   r!      sr   


	
;	






ÿ
ÿ
ÿ

þ

r!   r-   ÚorderÚFznon-contiguousr   c                 C   s0  t j d¡}| ddd¡j| dd�}dt  t  |j¡¡ t  |j	¡j
 }|dkr\t  |¡}n"|d d d	… }t  |d d d	… ¡}|j d
¡rÂtdƒD ],}|||d�}|||d�}	t||	||d� q’nj|j d¡�r&g d¢}
|j d¡rò|
 g d¢¡ |
D ],}|||d�}|||d�}	t||	||d� qöntƒ ‚d S )Né*   r‚   é   é   F)r?   g       @r½   r   r   r   r	   r5   )rs   r{   )rO   )r   r   r°   r{   ))r   )r   )r   Nrœ   )r   r   ÚRandomStateÚrandr9   rL   Úlog2r€   Zfinfor-   ÚepsZasfortranarrayZascontiguousarrayr   Úendswithr%   r   Úextendr   )r-   r¼   r   ÚrngÚXZ_tolÚYr
   ZX_resZY_resr�   Úaxr   r   r   Útest_fft_with_orderÍ  s*    $rË   ÚCr4   )Nr¿   é   c                 C   sd   t j d¡}| d¡}t j|t j| d�}t jj||d�}|jj|jjksLJ ‚|jj	|jj	ks`J ‚d S )Nr¾   rV   )r-   r¼   r3   )
r   r   rÁ   rÂ   ZasarrayÚ	complex64r   ÚflagsÚc_contiguousÚf_contiguous)r¼   r4   rÇ   r   Úresr   r   r   Útest_fft_output_orderô  s    
rÓ   zCannot start thread)Úreasonc                   @   s<   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚTestFFTThreadSafer/   )i   éÈ   c                    s|   ‡fdd„‰t  ¡ ‰ˆˆ Ž }‡ ‡‡fdd„t| jƒD ƒ}dd„ |D ƒ dd„ |D ƒ t| jƒD ]}tˆjdd�|d	ƒ q^d S )
Nc                    s   |  ˆ | Ž ¡ d S rQ   )Úput)ÚargsÚq)Úfuncr   r   Úworker  s    z.TestFFTThreadSafe._test_mtsame.<locals>.workerc                    s   g | ]}t jˆˆ ˆfd �‘qS ))ÚtargetrØ   )Ú	threadingÚThread)Ú.0r+   )rØ   rÙ   rÛ   r   r   Ú
<listcomp>  s   ÿz2TestFFTThreadSafe._test_mtsame.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r   )Ústart©rß   r   r   r   r   rà     ó    c                 S   s   g | ]}|  ¡ ‘qS r   )Újoinrâ   r   r   r   rà     rã   r0   )Útimeoutz6Function returned wrong value in multithreaded context)ÚqueueÚQueuer%   Úthreadsr   Úget)r   rÚ   rØ   rZ   Útr+   r   )rØ   rÚ   rÙ   rÛ   r   Ú_test_mtsame  s    ÿÿzTestFFTThreadSafe._test_mtsamec                 C   s(   t  | j¡d d }|  t jj|¡ d S ©Nr   y                )r   ÚonesÚinput_shaperë   r   ©r   rž   r   r   r   rN     s    zTestFFTThreadSafe.test_fftc                 C   s(   t  | j¡d d }|  t jj|¡ d S rì   )r   rí   rî   rë   r   r&   rï   r   r   r   rn     s    zTestFFTThreadSafe.test_ifftc                 C   s    t  | j¡}|  t jj|¡ d S rQ   )r   rí   rî   rë   r   r(   rï   r   r   r   r�     s    zTestFFTThreadSafe.test_rfftc                 C   s(   t  | j¡d d }|  t jj|¡ d S rì   )r   rí   rî   rë   r   r'   rï   r   r   r   r‰   !  s    zTestFFTThreadSafe.test_irfftN)
r   r   r    rè   rî   rë   rN   rn   r�   r‰   r   r   r   r   rÕ   þ  s   rÕ   c                  C   sH   t  d¡} t jj| dd� t jj| dd� t jjt  dgt¡dd� d S )NrV   r   r3   r   )r   r   r   r'   r•   r8   rY   rT   r   r   r   Útest_irfft_with_n_1_regression&  s    
rð   c                  C   s:   t  d¡d } t jj| dd�}t  g d¢¡}t||ƒ d S )Nr0   y      ð?      ð?rV   r3   )
g      4@gk‹ á"Õ#@g�´§‰Ã'Àg$ pn]k@gÝìr¾–Àg      @gG&ƒÒ ÀgdèÆ�Ä¿gt =Mþ?gö@L>MÜ4À)r   r   r   r•   r8   r   )r   r[   rZ   r   r   r   Ú"test_irfft_with_n_large_regression.  s    rñ   Údata)FTFrV   r2   r0   c                 C   s0   || ƒ}|   t | d¡¡}||ƒ}t||ƒ d S )Nr1   )r9   r   Zresult_typer   )rò   r   r[   Z
float_datarZ   r   r   r   Ú#test_fft_with_integer_or_bool_input8  s    
ró   )(Únumpyr   rh   Znumpy.randomr   Znumpy.testingr   r   r   r   rÝ   ræ   r   r   r!   r¸   r¹   Zfloat32Zfloat64rÎ   Z
complex128r   rs   r{   r&   ru   r}   rË   rÓ   ZskipifrÕ   rð   rñ   r(   r'   r8   r   Zuint8Zint16ró   r   r   r   r   Ú<module>   sN      8þÿþ'
ÿý