o
    Ö­j¥5  ã                   @   s.  d Z ddlmZmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ ddlZddlmZmZmZmZmZmZmZmZ ddlmZ d"dd	„Zd"d
d„Z d"dd„Z!dd„ Z"dd„ Z#d#dd„Z$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'G dd„ dƒZ(G dd„ dƒZ)G dd„ dƒZ*G d d!„ d!ƒZ+dS )$zÝ
Build fftpack:
  python setup_fftpack.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.fftpack.test(<level>)'
Run tests if fftpack is not installed:
  python tests/test_pseudo_diffs.py [<level>]
é    )Úassert_equalÚassert_almost_equalÚassert_array_almost_equal)ÚdiffÚfftÚifftÚtilbertÚitilbertÚhilbertÚihilbertÚshiftÚfftfreqÚcs_diffÚsc_diffÚss_diffÚcc_diffN)ÚarangeÚsinÚcosÚpiÚexpÚtanhÚsumÚsign)Úrandomé   c                 C   s„   t | ƒ}t|ƒ}|d u rdt }t|ƒd t | | }|dk r+d||  }d|d< n|| }|dkr;d|d|d …< t|| ƒjS )Né   ù               @r   r   ç        iÐ  éú   )r   Úlenr   r   r   Úreal)ÚxÚkÚperiodÚfxÚnÚw© r(   úb/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyÚdirect_diff   s   
r*   c                 C   sd   t | ƒ}t|ƒ}|d u rdt }t|ƒ| d t | | }d|d< dt|ƒ }d|d< t|| ƒS )Nr   r   r   ù              ð?y                ©r   r    r   r   r   r   ©r"   Úhr$   r%   r&   r'   r(   r(   r)   Údirect_tilbert'   s   r/   c                 C   sT   t | ƒ}t|ƒ}|d u rdt }t|ƒ| d t | | }dt|ƒ }t|| ƒS )Nr   y       €      ð¿r,   r-   r(   r(   r)   Údirect_itilbert3   s   r0   c                 C   s4   t | ƒ}t|ƒ}t|ƒ| }dt|ƒ }t|| ƒS )Nr+   )r   r    r   r   r   )r"   r%   r&   r'   r(   r(   r)   Údirect_hilbert=   s
   r1   c                 C   s
   t | ƒ S ©N)r1   )r"   r(   r(   r)   Údirect_ihilbertE   s   
r3   c                 C   sT   t | ƒ}|d u rt|ƒd | }nt|ƒd t | | }tt| ƒt|| ƒ ƒjS )Nr+   r   )r    r   r   r   r   r   r!   )r"   Úar$   r&   r#   r(   r(   r)   Údirect_shiftI   s
   r5   c                   @   sT   e Z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S )ÚTestDiffc                 C   sF  dD �]}t |ƒd t | }ttt|ƒƒtt|ƒƒƒ ttt|ƒdƒtt|ƒdƒƒ ttt|ƒdƒtt|ƒdƒƒ ttt|ƒdƒtt|ƒdƒƒ ttt|ƒdƒtt|ƒdƒƒ tttd| ƒdƒttd| ƒdƒƒ tttd| ƒdƒttd| ƒdƒƒ ttt|ƒƒtt|ƒƒƒ ttt|ƒdƒtt|ƒdƒƒ ttt|ƒdƒtt|ƒdƒƒ ttt|ƒdƒtt|ƒdƒƒ tttd| ƒƒttd| ƒƒƒ ttt|| d ƒƒtt|| d ƒƒƒ ttt|| d ƒƒtt|| d ƒƒƒ tdƒD ](}tttd| ƒ|ƒttd| ƒ|ƒƒ tttd| ƒ|ƒttd| ƒ|ƒƒ q÷qd S )N)é   é   é@   é   é    r   é   é   é   é   )r   r   r   r   r   r*   r   Úrange)Úselfr&   r"   r#   r(   r(   r)   Útest_definitionT   s*   
&&"**&(þðzTestDiff.test_definitionc                 C   sŠ   dD ]@}t |ƒt|ƒ }tttdt | ƒdd�dt tdt | ƒ ƒ tttdt | ƒddd�dt d  tdt | ƒ ƒ qd S )N)r8   r9   r   r   )r$   r<   )r   Úfloatr   r   r   r   r   ©rA   r&   r"   r(   r(   r)   Útest_periodi   s   ÿÿüzTestDiff.test_periodc                 C   sÊ   dD ]`}t |ƒd t | }ttt|ƒƒt|ƒƒ ttt|ƒƒt|ƒ ƒ ttt|ƒdƒt|ƒ ƒ ttt|ƒdƒt|ƒƒ tttd| ƒƒdtd| ƒ ƒ tttt|ƒƒƒt|ƒtt|ƒƒ ƒ qd S )N)r;   r9   éM   r   r=   ©r   r   r   r   r   r   rD   r(   r(   r)   Útest_sinq   s   "(ùzTestDiff.test_sinc                 C   sR  g d¢d d… D ]ž}t |ƒd t | }t|ƒtd| ƒ ttd| ƒƒ }t|ƒtd| ƒ dt|ƒ td| ƒ  dtd| ƒ ttd| ƒƒ  }dt|ƒ td| ƒ dt|ƒ td| ƒ  dtd| ƒ ttd| ƒƒ  dtd| ƒd  ttd| ƒƒ  }t|ƒ}t||ƒ tt|ƒ|ƒ tt|dƒ|ƒ tt|d	ƒ|ƒ qd S )
N)
r9   rF   éd   é€   é   i   i   é   é   i    r>   r   r=   r<   éïÿÿÿr?   é	   éÿÿÿÿ)r   r   r   r   r   r   r   )rA   r&   r"   ÚfÚdfÚddfÚd1r(   r(   r)   Ú	test_expr{   s   $L.ÿ"ÿ
özTestDiff.test_exprc                 C   sB  dD ]œ}t |ƒd t | }t|ƒtd| ƒ ttd| ƒƒ }t|ƒtd| ƒ dt|ƒ td| ƒ  dtd| ƒ ttd| ƒƒ  }dt|ƒ td| ƒ dt|ƒ td| ƒ  dtd| ƒ ttd| ƒƒ  dtd| ƒd  ttd| ƒƒ  }tt|ƒ|ƒ tt|ƒ|ƒ tt|dƒ|ƒ tt|dƒ|ƒ qd S )	N)rL   rM   r   r=   r<   rN   r?   rO   rP   )r   r   r   r   r   r   r   )rA   r&   r"   rQ   rR   rS   r(   r(   r)   Útest_expr_largeˆ   s   $L.ÿ"ÿ÷zTestDiff.test_expr_largec                 C   sŒ   d}t |ƒd t | }ttt|ƒdƒt|ƒ ƒ ttt|ƒdƒt|ƒ ƒ ttt|ƒdƒt|ƒƒ ttdtd| ƒ dƒtd| ƒƒ d S )Nr9   r   rP   éþÿÿÿéüÿÿÿrG   rD   r(   r(   r)   Útest_int”   s   (zTestDiff.test_intc                 C   óš   t j d¡}dD ]B}dD ]=}| |f¡}t|dd�| }|| }tt|dƒdƒ}tt|dd�dƒ ttt||ƒ| ƒ|ƒ ttt|| ƒ|ƒ|ƒ qqd S )	NéÒ  )r   r   r=   é   )é<   r;   r9   é8   é7   r   ©Úaxisr   rP   r   ©Únpr   Údefault_rngr   r   r   r   ©rA   Úrngr#   r&   rQ   Úafr(   r(   r)   Útest_random_evenœ   ó   øÿzTestDiff.test_random_evenc                 C   sŠ   t j d¡}dD ]:}dD ]5}| |f¡}t|dd�| }|| }tt|dd�dƒ ttt||ƒ| ƒ|ƒ ttt|| ƒ|ƒ|ƒ qqd S )Nr[   ©r   r   r   r<   r=   r>   r\   ©é!   éA   r_   r   r`   r   )rc   r   rd   r   r   r   r   re   r(   r(   r)   Útest_random_odd©   s   úÿzTestDiff.test_random_oddc                 C   rZ   )	Nr[   rj   )r;   rl   r9   r^   r_   r   r`   r   rP   r   rb   re   r(   r(   r)   Útest_zero_nyquist´   ri   zTestDiff.test_zero_nyquistN)Ú__name__Ú
__module__Ú__qualname__rB   rE   rH   rU   rV   rY   rh   rn   ro   r(   r(   r(   r)   r6   R   s    
r6   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestTilbertc                 C   ó–   dD ]F}dD ]A}t |ƒd t | }tt|ƒ|ƒ}tt|ƒ|ƒ}t||ƒ ttt|ƒ|ƒtt|ƒ|ƒƒ tttd| ƒ|ƒttd| ƒ|ƒƒ qqd S ©N©çš™™™™™¹?g      à?r   g      @é
   ©r7   r8   r9   r:   r   )r   r   r   r   r/   r   ©rA   r.   r&   r"   ÚyÚy1r(   r(   r)   rB   Ä   ó   
ÿÿùÿzTestTilbert.test_definitionc                 C   sb   dD ],}dD ]'}t |fƒ}t|dd�| }|| }tt|dd�dƒ ttt||ƒ|ƒ|ƒ qqd S )Nrv   ©r;   r9   r^   r   r`   r   )r   r   r   r   r/   r0   )rA   r.   r&   rQ   rg   r(   r(   r)   rh   Ð   s   
ûÿzTestTilbert.test_random_evenc                 C   s†   t j d¡}dD ]8}dD ]3}| |f¡}t|dd�| }|| }tt|dd�dƒ ttt||ƒ|ƒ|ƒ ttt||ƒ|ƒ|ƒ qqd S )Nr[   rv   rk   r   r`   r   )rc   r   rd   r   r   r   r	   r   )rA   rf   r.   r&   rQ   rg   r(   r(   r)   rn   Ù   s   úÿzTestTilbert.test_random_oddN)rp   rq   rr   rB   rh   rn   r(   r(   r(   r)   rs   Â   s    	rs   c                   @   ó   e Zd Zdd„ ZdS )ÚTestITilbertc                 C   rt   ru   )r   r   r	   r   r0   r   rz   r(   r(   r)   rB   ç   r}   zTestITilbert.test_definitionN©rp   rq   rr   rB   r(   r(   r(   r)   r€   å   ó    r€   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestHilbertc                 C   óf   dD ].}t |ƒd t | }tt|ƒƒ}tt|ƒƒ}t||ƒ tttd| ƒƒttd| ƒƒƒ qd S ©Nry   r   )r   r   r
   r   r1   r   ©rA   r&   r"   r{   r|   r(   r(   r)   rB   ö   ó   
ÿûzTestHilbert.test_definitionc                 C   ón   dD ]2}t |ƒd t | }t|ƒtd| ƒt|ƒ  }t|ƒ}t|ƒ}t||ƒ t|dd�}t||ƒ qd S ©Nry   r   rx   )r.   )r   r   r   r   r
   r1   r   r   ©rA   r&   r"   rQ   r{   r|   Úy2r(   r(   r)   Útest_tilbert_relationÿ   ó   
ùz!TestHilbert.test_tilbert_relationc                 C   st   t j d¡}dD ]/}| |f¡}t|dd�| }|| }tt|dd�dƒ ttt|ƒƒ|ƒ ttt|ƒƒ|ƒ qd S )Nr[   rk   r   r`   r   )rc   r   rd   r   r   r   r   r
   ©rA   rf   r&   rQ   rg   r(   r(   r)   rn   	  s   úzTestHilbert.test_random_oddc                 C   s„   t j d¡}dD ]7}| |f¡}t|dd�| }|| }tt|dƒdƒ}tt|dd�dƒ ttt|ƒƒ|ƒ tt	t
|ƒƒ|ƒ qd S )Nr[   r~   r   r`   r   rP   r   )rc   r   rd   r   r   r   r   r1   r3   r
   r   rŽ   r(   r(   r)   rh     s   øzTestHilbert.test_random_evenN)rp   rq   rr   rB   rŒ   rn   rh   r(   r(   r(   r)   rƒ   ô   s
    	

rƒ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestIHilbertc                 C   r„   r…   )r   r   r   r   r3   r   r†   r(   r(   r)   rB   "  r‡   zTestIHilbert.test_definitionc                 C   rˆ   r‰   )r   r   r   r   r   r3   r   r	   rŠ   r(   r(   r)   Útest_itilbert_relation+  r�   z#TestIHilbert.test_itilbert_relationN)rp   rq   rr   rB   r�   r(   r(   r(   r)   r�      s    	r�   c                   @   r   )Ú	TestShiftc                 C   s0  dD ]“}t |ƒd t | }dD ][}ttt|ƒ|ƒtt|ƒ|ƒƒ ttt|ƒ|ƒt|| ƒƒ ttt|ƒ|ƒt|| ƒƒ tttd| ƒt|ƒ |ƒtd||  ƒt|| ƒ ƒ tttt|ƒƒ|ƒtt|| ƒƒƒ qttt|ƒdt ƒt|ƒƒ ttt|ƒtƒt|ƒ ƒ ttt|ƒtd ƒt|ƒƒ qd S )N)é   r8   r9   r:   r;   rL   rK   r   )rw   r<   )r   r   r   r   r   r5   r   r   )rA   r&   r"   r4   r(   r(   r)   rB   8  s   ÿ&õzTestShift.test_definitionNr�   r(   r(   r(   r)   r‘   6  r‚   r‘   c                   @   s„   e Zd ZdZejejfZeejej	f 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dS )ÚTestOverwritezCheck input overwrite behavior c                 O   s\   |  ¡ }||g|¢R i |¤Ž |j}|r|t|ƒ7 }|r"|t|ƒ7 }t||d|› �d� d S )Nzspurious overwrite in )Úerr_msg)Úcopyrp   Úreprr   )rA   r"   ÚroutineÚargsÚkwargsÚx2Úsigr(   r(   r)   Ú_checkM  s   zTestOverwrite._checkc                 O   sf   t j d¡}t  |t j¡r|j|Ž d|j|Ž   }n|j|Ž }| |¡}| j||g|¢R i |¤Ž d S )Nr[   r+   )rc   r   ÚRandomStateÚ
issubdtypeÚcomplexfloatingÚrandnÚastyperœ   )rA   r—   ÚdtypeÚshaper˜   r™   rf   Údatar(   r(   r)   Ú	_check_1dW  s   

zTestOverwrite._check_1dc                 C   ó   | j D ]	}|  t|d¡ qd S ©N©r7   )Údtypesr¥   r   ©rA   r¢   r(   r(   r)   Ú	test_diffb  ó   
ÿzTestOverwrite.test_diffc                 C   ó    | j D ]
}|  t|dd¡ qd S ©Nr¨   gš™™™™™ù?)r©   r¥   r   rª   r(   r(   r)   Útest_tilbertf  ó   
ÿzTestOverwrite.test_tilbertc                 C   r­   r®   )r©   r¥   r	   rª   r(   r(   r)   Útest_itilbertj  r°   zTestOverwrite.test_itilbertc                 C   r¦   r§   )r©   r¥   r
   rª   r(   r(   r)   Útest_hilbertn  r¬   zTestOverwrite.test_hilbertc                 C   ó"   | j D ]}|  t|ddd¡ qd S ©Nr¨   ç      ð?g      @)r©   r¥   r   rª   r(   r(   r)   Útest_cs_diffr  ó   
ÿzTestOverwrite.test_cs_diffc                 C   r³   r´   )r©   r¥   r   rª   r(   r(   r)   Útest_sc_diffv  r·   zTestOverwrite.test_sc_diffc                 C   r³   r´   )r©   r¥   r   rª   r(   r(   r)   Útest_ss_diffz  r·   zTestOverwrite.test_ss_diffc                 C   r³   r´   )r©   r¥   r   rª   r(   r(   r)   Útest_cc_diff~  r·   zTestOverwrite.test_cc_diffc                 C   r­   )Nr¨   rµ   )r©   r¥   r   rª   r(   r(   r)   Ú
test_shift‚  r°   zTestOverwrite.test_shiftN)rp   rq   rr   Ú__doc__rc   Úfloat32Úfloat64Úreal_dtypesÚ	complex64Ú
complex128r©   rœ   r¥   r«   r¯   r±   r²   r¶   r¸   r¹   rº   r»   r(   r(   r(   r)   r“   G  s    
r“   )r   Nr2   ),Ú	__usage__Únumpy.testingr   r   r   Úscipy.fftpackr   r   r   r   r	   r
   r   r   r   r   r   r   r   Únumpyrc   r   r   r   r   r   r   r   r   Únumpy.randomr   r*   r/   r0   r1   r3   r5   r6   rs   r€   rƒ   r�   r‘   r“   r(   r(   r(   r)   Ú<module>   s&   	<(




	p#,