o
    ðT·jZ_  ã                   @   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   úa/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/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 ]1}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 ]E}t jj	t jj||d�|d�}	|	j
j|ksXJ ‚t|	|d	|… |d	d
� t jjt jj||d�|d�}
|
j|ksyJ ‚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+   Úxxrr,   Úcheck_cÚcheck_rr   r   r   Útest_identity_long_short$   s    úz"TestFFT1D.test_identity_long_shortc                 C   s@  d}dt  t jd|d�¡ }t|ƒ |¡dt|ƒ |¡  }t  |t  |¡g¡}td|d ƒD ]n}t jjt jj	||d�|d�}|j
|j
ksGJ ‚t||d	|… |d	d
� | ¡ }|d d }	d	|jd	< |d d	krqd	|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,   Úcheck_via_cÚyr5   ÚyyÚ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 sBJ ‚t|
|ƒ |||d�}|t u rS|	n||ƒ}||	||d�}||u sdJ ‚t||ƒ d S )Nc                    ó   ˆ r	t  | j¡jS t  | ¡S ©N©r   r<   ÚT©r   ©rV   r   r   r<   [   ó   
z3TestFFT1D.test_fft_out_argument.<locals>.zeros_like)é
   é   r#   r	   )Úoutr
   )Úcomplexr   r   r   r'   r)   r(   r   )r   r.   rV   r
   r<   rF   r   r'   Úexpectedr`   ÚresultÚ	expected2Úout2Úresult2r   r\   r   Útest_fft_out_argumentW   ó    
zTestFFT1D.test_fft_out_argumentr   r   c                 C   sº  t dƒdt dƒ  }| ¡ }tjj||d�}tjj|||d�}||u s%J ‚t||ƒ | ¡ }|dkr8|d d… n	|d d …d d…f }tjj|d|d�}tjj|d||d�}	|	|u s[J ‚t|	|ƒ |dkrrt|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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	… ƒ t|
d
d … |d
d … ƒ n*t|
d d …d d	…f |d d …d d	…f ƒ t|
d d …d
d …f |d d …d
d …f ƒ | ¡ }|dk�r)|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 �sbJ ‚t||ƒ |dk�rzt|d
d … |d
d … ƒ nt|d d …d
d …f |d d …d
d …f ƒ | ¡ }|j}tjj|||d�}||u �s¦J ‚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)r_   r_   r#   r	   )r
   r`   r   r^   )r5   r
   )r5   r
   r`   r1   é   r   )r   rC   r   r   r   rZ   )r   r
   rF   Úy1Ú	expected1Úresult1Úy2re   rd   rf   Úy3Úy3_selÚout3Ú	expected3Úresult3Úy4Úy4_selÚout4Ú	expected4Úresult4Úy5Úout5Úresult5Úy6Úout6Ú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w   Y  tjtdd�� t jj|t  |¡ dd¡d� W d   ƒ n1 sEw   Y  tjtd	d�� t jj|t j|t	d
�d� W d   ƒ d S 1 sjw   Y  d S )NrP   zmust be of ArrayType©ÚmatchÚ )r`   úhas wrong shaper1   r   zCannot castr3   )
r   r   ÚpytestÚraisesÚ	TypeErrorr   r   r<   r   ÚfloatrS   r   r   r   Útest_fft_bad_out±   s   
ÿ ÿ"ÿzTestFFT1D.test_fft_bad_outrN   ©NrL   rO   rQ   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   ƒ d S 1 s8w   Y  d S )NrJ   r#   rM   rK   r$   z!Invalid number of FFT data pointsr   )r   r   r   r   r'   rƒ   r„   r   )r   rN   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©rJ   r_   r#   r   r	   r   rK   r$   rL   rM   éX  rO   ç     À‚@rQ   )r   r   r   r   Úfft2rR   rS   r   r   r   Ú	test_fft2Å   ó   ÿÿÿ
ÿ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 rŠ   )r   r   r   r   r'   Úifft2rR   rS   r   r   r   Ú
test_ifft2Ð   r�   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©rJ   r_   r^   r#   r   r	   r   r   rK   r$   rL   rM   ép  rO   ç     p·@rQ   )r   r   r   r   ÚfftnrR   rS   r   r   r   Ú	test_fftnÛ   ó   &þÿÿ
ÿ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 r“   )r   r   r   r   r'   ÚifftnrR   rS   r   r   r   Ú
test_ifftnç   r™   zTestFFT1D.test_ifftnc              	   C   sì   t dƒ}|jd|j fD ]g}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 )NrJ   r   rˆ   ©r5   rN   r   rK   r$   r4   rL   rO   rQ   )r   Úsizer   r   r   r)   rR   )r   r   r5   rN   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   rF   r   r   r   Útest_rfft_even  s   
2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   rF   r   r   r   Útest_rfft_odd
  s   "zTestFFT1D.test_rfft_oddc                 C   óœ   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 )NrJ   rK   r$   rL   rM   rO   rQ   )r   r   r   r   r(   r)   rS   r   r   r   Ú
test_irfft  ó"   ÿÿÿÿÿ
ÿ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 )Nr‹   é   rK   r$   rL   rM   rŒ   rO   r�   rQ   )r   r   r   r   rŽ   Úrfft2rR   rS   r   r   r   Ú
test_rfft2  s   .ÿÿ
ÿzTestFFT1D.test_rfft2c                 C   r¦   )Nr‹   rK   r$   rL   rM   rO   rQ   )r   r   r   r   Úirfft2rª   rS   r   r   r   Útest_irfft2#  r¨   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� t d¡}tjj|ddd�}|jdksmJ ‚tjjtjjtjj	|ddd�ddd�ddd�}|jdks‹J ‚t||dd� d S )Nr”   é   rK   r$   rL   rM   r•   rO   r–   rQ   )r   r   )r   r   r   )r^   r_   é(   )ÚaxesÚs)r^   é   r   r¯   )r
   r5   r   r_   r^   )
r   r   r   r   r—   ÚrfftnrR   ÚonesÚshaper)   )r   r   rc   rb   r   r   r   Ú
test_rfftn-  s*   4ÿÿÿ
ÿÿzTestFFT1D.test_rfftnc                 C   r¦   )Nr”   rK   r$   rL   rM   rO   rQ   )r   r   r   r   Úirfftnr³   rS   r   r   r   Útest_irfftn?  r¨   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   rK   r$   rL   rM   rJ   rO   rP   rQ   )r   r   r;   Úconjr   r   ÚhfftrR   ©r   r   Úx_hermr   r   r   Ú	test_hfftI  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   rK   r$   rL   rM   rO   rQ   )r   r   r;   rº   r   r   Úihfftr»   r¼   r   r   r   Ú
test_ihfftU  s2   ÿÿÿÿÿÿÿÿ
ÿzTestFFT1D.test_ihfftÚopc                 C   sP   t dƒ}g d¢}|D ]}|t ||¡ƒ}t |||d�|¡}t||dd� q
d S )Nr”   )©r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   ©r°   rK   r$   )r   r   rV   r   )r   rÁ   r   r°   ÚaÚop_trÚtr_opr   r   r   Ú	test_axesa  s   ýzTestFFT1D.test_axesc                 C   s.   t  d¡ dd¡}||ddd�jdksJ ‚d S )Néd   r^   ©r   r1   rU   ©r±   r°   )r^   r1   )r   r   r   rµ   ©r   rÁ   r   r   r   r   Útest_s_negative_1k  s   zTestFFT1D.test_s_negative_1c                 C   sP   t  d¡ dd¡}tjdd�� ||dd� W d   ƒ d S 1 s!w   Y  d S )NrÈ   r^   ú"`axes` should not be `None` if `s`r   rÉ   )r±   ©r   r   r   rƒ   ÚwarnsrË   r   r   r   Útest_s_axes_noner  s   "ÿzTestFFT1D.test_s_axes_nonec                 C   sR   t  d¡ dd¡}tjdd�� ||dd d� W d   ƒ d S 1 s"w   Y  d S )NrÈ   r^   rÍ   r   rÉ   rÊ   rÎ   rË   r   r   r   Útest_s_axes_none_2Dy  s   "ÿzTestFFT1D.test_s_axes_none_2Dc                 C   sH   t dƒ}tjdd�� ||ddd� W d   ƒ d S 1 sw   Y  d S )Nr”   z%array containing `None` values to `s`r   )r^   Nr^   rÂ   rÊ   )r   rƒ   rÏ   rË   r   r   r   Útest_s_contains_none  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 ]-\}}|jd|j fD ] }dD ]}||||d�}||||d�}t|tj |¡dd� q8q4q(d S )NrJ   r   rˆ   rœ   rK   r$   )r   r   ÚlinalgrN   r�   r   r'   r)   r(   r¿   r»   r   )	r   r   Úx_normr5   Ú
func_pairsÚforwÚbackrN   Útmpr   r   r   Útest_all_1d_norm_preserving‡  s$   
üÿýÿÿz%TestFFT1D.test_all_1d_norm_preservingr°   )rU   ©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 sBJ ‚t|
|ƒ |||d�}|t u rS|	n||ƒ}||	||d�}||u sdJ ‚t||ƒ d S )Nc                    rW   rX   rY   r[   r\   r   r   r<   ž  r]   z4TestFFT1D.test_fftn_out_argument.<locals>.zeros_like©r^   r1   r®   r#   rÃ   )r`   r°   )	ra   r   r   r   r—   rš   r³   r·   r   )r   r.   rV   r°   r<   r   r   r'   rb   r`   rc   rd   re   rf   r   r\   r   Útest_fftn_out_argumentš  rh   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 s2w   Y  d}|||dd	�}t  |¡}|||d|d
�}||u sSJ ‚t||ƒ d S )NrÛ   r#   r‚   r   ©r   r   r   rÂ   )r`   r±   r°   )r^   r1   r1   rÊ   ©r±   r°   r`   )	r   r   r³   r   rƒ   r„   r   r<   r   )r   r   r   r±   rb   r`   rc   r   r   r   Útest_fftn_out_and_s_interaction¸  s   
ÿ
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 s(J ‚t||ƒ d S )N)rà   r1   r®   r   r#   rÂ   rÊ   rÞ   )r   r   r   r·   r<   r   )r   r±   r   rb   r`   rc   r   r   r   Ú!test_irfftn_out_and_s_interactionÉ  s   
z+TestFFT1D.test_irfftn_out_and_s_interactionN)2r   r    r!   r-   rƒ   ÚmarkÚparametrizer   ÚsingleÚdoubleÚ
longdoublerB   rI   rT   ra   r†   rg   r~   r‡   r‰   r�   r’   r˜   r›   rž   r£   r¥   r§   r«   r­   r¶   r¸   r¾   rÀ   r   r—   rš   r³   r·   rÇ   rŽ   r‘   rÌ   rÐ   rÑ   rÒ   rÙ   rÜ   rß   rá   r   r   r   r   r"      st    


	
;	





ÿ
ÿ
ÿ

þ

r"   r.   ÚorderÚFznon-contiguousr   c                 C   s,  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
¡rbtdƒD ]}|||d�}|||d�}	t||	||d� qId S |j d¡r”g d¢}
|j d¡ry|
 g d¢¡ |
D ]}|||d�}|||d�}	t||	||d� q{d S t‚)Né*   rŸ   é   é   F)rC   g       @rè   r   r   r   r	   r6   )rŽ   r—   )rU   )r   r   rÚ   r—   ))r   )r   )r   NrÃ   )r   r   ÚRandomStateÚrandr:   rR   Úlog2r�   Úfinfor.   ÚepsÚasfortranarrayÚascontiguousarrayr   Úendswithr&   r   Úextendr   )r.   rç   r   ÚrngÚXÚ_tolÚYr
   ÚX_resÚ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s&J ‚|jj	|jj	ks0J ‚d S )Nré   r^   )r.   rç   r4   )
r   r   rì   rí   Ú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 rX   )Ú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   ó   g | ]}|  ¡ ‘qS r   )Ústart©r  r   r   r   r   r    ó    c                 S   r  r   )Újoinr  r   r   r   r    r  r1   )Útimeoutz6Function returned wrong value in multithreaded context)ÚqueueÚQueuer&   Úthreadsr   Úget)r   r  r
  rb   Ú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   r´   Úinput_shaper  r   ©r   rÄ   r   r   r   rT     ó   zTestFFTThreadSafe.test_fftc                 C   ó(   t  | j¡d d }|  t jj|¡ d S r  )r   r´   r   r  r   r'   r!  r   r   r   r‰   !  r"  zTestFFTThreadSafe.test_ifftc                 C   s    t  | j¡}|  t jj|¡ d S rX   )r   r´   r   r  r   r)   r!  r   r   r   rž   %  s   zTestFFTThreadSafe.test_rfftc                 C   r#  r  )r   r´   r   r  r   r(   r!  r   r   r   r§   )  r"  zTestFFTThreadSafe.test_irfftN)
r   r    r!   r  r   r  rT   r‰   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 )Nr^   r   r4   r   )r   r   r   r(   r»   r9   ra   r[   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      ð?      ð?r^   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   rc   rb   r   r   r   Ú"test_irfft_with_n_large_regression6  s   r%  Údata)FTFr^   r3   r1   c                 C   s0   || ƒ}|   t | d¡¡}||ƒ}t||ƒ d S )Nr2   )r:   r   Úresult_typer   )r&  r   rc   Ú
float_datarb   r   r   r   Ú#test_fft_with_integer_or_bool_input@  s   
r)  )(Únumpyr   rƒ   Únumpy.randomr   Únumpy.testingr   r   r   r   r  r  r   r   r"   râ   rã   Úfloat32Úfloat64r   Ú
complex128r   rŽ   r—   r'   r‘   rš   rü   r  Úskipifr  r$  r%  r)   r(   r9   r   Úuint8Úint16r)  r   r   r   r   Ú<module>   sP       @þÿþ'
ÿý