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ÚLÚphase© r   ú]/var/www/html/laksyashrimp/venv/lib/python3.9/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   r8   r9   r   r:   r;   r<   r&   r   r'   r.   r   ÚcopyÚimagr)   r(   )r   r.   r*   r%   r   r>   r,   Zcheck_via_cÚyr5   Ú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   ©rQ   r   r   r<   [   s    z3TestFFT1D.test_fft_out_argument.<locals>.zeros_like)é
   é   r#   r	   )Úoutr
   )Úcomplexr   r   r   r'   r)   r(   r   )r   r.   rQ   r
   r<   rB   r   r'   ÚexpectedrY   ÚresultÚ	expected2Úout2Úresult2r   rV   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)rX   rX   r#   r	   )r
   rY   r   rW   )r5   r
   )r5   r
   rY   r1   é   r   )r   r@   r   r   r   rT   )r   r
   rB   Ú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 )NrK   zmust be of ArrayType©ÚmatchÚ )rY   úhas wrong shaper1   r   zCannot castr3   )
r   r   ÚpytestÚraisesÚ	TypeErrorr   r   r<   r   ÚfloatrN   r   r   r   Útest_fft_bad_out±   s    
.<zTestFFT1D.test_fft_bad_outrI   ©NrG   rJ   rL   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 )NrE   r#   rH   rF   r$   z!Invalid number of FFT data pointsre   )r   r   r   r   r'   ri   rj   r   )r   rI   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©rE   rX   r#   r   r	   r   rF   r$   rG   rH   éX  rJ   ç     À‚@rL   )r   r   r   r   Úfft2rM   rN   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 rp   )r   r   r   r   r'   Úifft2rM   rN   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©rE   rX   rW   r#   r   r	   r   r   rF   r$   rG   rH   ép  rJ   ç     p·@rL   )r   r   r   r   ÚfftnrM   rN   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 rx   )r   r   r   r   r'   ÚifftnrM   rN   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 )NrE   r   rn   ©r5   rI   r   rF   r$   r4   rG   rJ   rL   )r   Úsizer   r   r   r)   rM   )r   r   r5   rI   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   ç›+¡†›„=©r7   )r   r   r   r)   r   )r   r   r5   rB   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   r9   r   r)   r   )r   r   rB   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 )NrE   rF   r$   rG   rH   rJ   rL   )r   r   r   r   r(   r)   rN   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 )Nrq   é   rF   r$   rG   rH   rr   rJ   rs   rL   )r   r   r   r   rt   Úrfft2rM   rN   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 )Nrq   rF   r$   rG   rH   rJ   rL   )r   r   r   r   Zirfft2rŒ   rN   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 )Nry   é   rF   r$   rG   rH   rz   rJ   r{   rL   )r   r   r   r   r|   ÚrfftnrM   rN   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 )Nry   rF   r$   rG   rH   rJ   rL   )r   r   r   r   Úirfftnr�   rN   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   rF   r$   rG   rH   rE   rJ   rK   rL   )r   r   r;   Úconjr   r   ÚhfftrM   ©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   rF   r$   rG   rH   rJ   rL   )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 )Nry   )©r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   ©ÚaxesrF   r$   )r   r   rQ   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   rW   ©r   r1   rP   ©Úsrž   )rW   r1   )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¡   rW   ú"`axes` should not be `None` if `s`re   r¢   )r¤   ©r   r   r   ri   Ú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¡   rW   r¨   re   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 )Nry   z%array containing `None` values to `s`re   )rW   NrW   rœ   r£   )r   ri   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 )NrE   r   rn   r€   rF   r$   )r   r   ZlinalgrI   r�   r   r'   r)   r(   r™   r–   r   )	r   r   Zx_normr5   Z
func_pairsZforwÚbackrI   Útmpr   r   r   Útest_all_1d_norm_preserving  s    
üÿz%TestFFT1D.test_all_1d_norm_preservingrž   )rP   ©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 rR   rS   rU   rV   r   r   r<   –  s    z4TestFFT1D.test_fftn_out_argument.<locals>.zeros_like©rW   r1   r�   r#   r�   )rY   rž   )	rZ   r   r   r   r|   r~   r�   r’   r   )r   r.   rQ   rž   r<   r   r   r'   r[   rY   r\   r]   r^   r_   r   rV   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#   rh   re   ©r   r   r   rœ   )rY   r¤   rž   )rW   r1   r1   r£   ©r¤   rž   rY   )	r   r   r�   r   ri   rj   r   r<   r   )r   r   r   r¤   r[   rY   r\   r   r   r   Útest_fftn_out_and_s_interaction°  s    
4
z)TestFFT1D.test_fftn_out_and_s_interactionr¤   )é	   r1   r1   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·   r1   r�   r   r#   rœ   r£   rµ   )r   r   r   r’   r<   r   )r   r¤   r   r[   rY   r\   r   r   r   Ú!test_irfftn_out_and_s_interactionÁ  s    
z+TestFFT1D.test_irfftn_out_and_s_interactionN)2r   r    r!   r-   ri   ÚmarkÚparametrizer   ÚsingleÚdoubleZ
longdoubler?   rD   rO   rZ   rl   r`   rd   rm   ro   ru   rw   r}   r   r‚   r‡   r‰   rŠ   r�   rŽ   r‘   r“   r˜   rš   r   r|   r~   r�   r’   r    rt   rv   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	   r6   )rt   r|   )rP   )r   r   r±   r|   ))r   )r   )r   Nr�   )r   r   ÚRandomStateÚrandr:   rM   Úlog2r�   Zfinfor.   Z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Ë   ÚCr5   )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¿   rW   )r.   r½   r4   )
r   r   rÂ   rÃ   ZasarrayÚ	complex64r   ÚflagsÚc_contiguousÚf_contiguous)r½   r5   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 )ÚTestFFTThreadSafer0   )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 rR   )Ú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ã   r1   )Útimeoutz6Function returned wrong value in multithreaded context)ÚqueueÚQueuer&   Úthreadsr   Úget)r   rÚ   rØ   r[   Ú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   rO     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   ro     s    zTestFFTThreadSafe.test_ifftc                 C   s    t  | j¡}|  t jj|¡ d S rR   )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ë   rO   ro   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 )NrW   r   r4   r   )r   r   r   r(   r–   r9   rZ   rU   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 )Nr1   y      ð?      ð?rW   r4   )
g      4@gk‹ á"Õ#@g�´§‰Ã'Àg$ pn]k@gÝìr¾–Àg      @gG&ƒÒ ÀgdèÆ�Ä¿gt =Mþ?gö@L>MÜ4À)r   r   r   r–   r9   r   )r   r\   r[   r   r   r   Ú"test_irfft_with_n_large_regression.  s    rñ   Údata)FTFrW   r3   r1   c                 C   s0   || ƒ}|   t | d¡¡}||ƒ}t||ƒ d S )Nr2   )r:   r   Zresult_typer   )rò   r   r\   Z
float_datar[   r   r   r   Ú#test_fft_with_integer_or_bool_input8  s    
ró   )(Únumpyr   ri   Znumpy.randomr   Znumpy.testingr   r   r   r   rÝ   ræ   r   r   r"   r¹   rº   Zfloat32Zfloat64rÎ   Z
complex128r   rt   r|   r'   rv   r~   rË   rÓ   ZskipifrÕ   rð   rñ   r)   r(   r9   r   Zuint8Zint16ró   r   r   r   r   Ú<module>   sN      8þÿþ'
ÿý