U
    ?h                     @   s  d dl Zd dl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lmZ d dlZedZejdeefeefgejdddd	d
gejddd	d
dddgejdd dgejdddddgejdddgdd Zejdeefeefgejdddd	d
gejdejejejejejgejdd dgejdddddgejdddgdd Zejde	e
feefgejdddd	d
gejdddd d!d"d#d$d%d&g	ejdddddgejdddgd'd( Zejde	e
feefgejdddd	d
gejdd)d*d+gejdejejejejejgejdddddgejdddgd,d- Zejd.d/d0d1d2gejdddd	d
gejdddddgd3d4 Z ejd.eee	egejdddd	d
gd5d6 Z!ejddddgejd7ed
fedfed
fgd8d9 Z"ejddddgd:d; Z#ejddddgejd.eegd<d= Z$ejddddgejd.eegd>d? Z%dS )@    N)assert_allcloseassert_array_equal)dctidctdctnidctndstidstdstnidstn)fftpack   zforward, backwardtype         n   
      axisnormbackwardorthoforwardorthogonalizeFTc                 C   s   t j||}| |||||d}||||||d}	t|	| dgd }
d|
|< t j||
dd}|||||||d}t|| d S )N)r   r   r   r   r   r   r   r   edgemoder   )nprandomrandr   pad)r   r   r   r   r   r   r   xyzr%   y2z2 r+   V/var/www/html/venv/lib/python3.8/site-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1d   s    

r-   dtypeoverwrite_xc                 C   s   t jdd|}| }| |||||d}	|	 }
||	||||d}|srt||ddd t|| t|	|
 nt||ddd d S )N      )r   r   r/   ư>ZrtolZatol)r"   r#   r$   astypecopyr   r   )r   r   r   r.   r   r   r/   r&   x_origr'   y_origr(   r+   r+   r,   test_identity_1d_overwrite(   s    

r8   zshape, axes)r   r   r   )r9   r   )r9   N)r9   r   r   )r      N)r;   r:   )r   r      N)r=   r   )r=   )r   r   c                 C   s   t j|}|d k	r t ||}| |||||d}||||||d}	t|	| |d krddg|j }
n>t|trdg|j }
d|
|< ndg|j }
|D ]}d|
|< qt j||
dd}|||||||d}t|| d S )N)axesr   r   r   r   r   r   r!   )r"   r#   taker   ndim
isinstanceintr%   )r   r   r   shaper?   r   r   r&   r'   r(   r%   ar)   r*   r+   r+   r,   test_identity_nd@   s"    



rF   )r   r   r   )rG   r   )rG   Nc                 C   s   t j||}| }	|d k	r.t ||}| ||||d}
|
 }||
|||d}|rlt||	ddd n$t||ddd t||	 t|
| d S )N)r?   r   r2   r3   )r"   r#   r4   r5   r@   r   r   )r   r   r   rD   r?   r.   r   r/   r&   r6   r'   r7   r(   r+   r+   r,   test_identity_nd_overwritem   s    
rH   funcr   r   r   r
   c                 C   sD   t jdd}tt| |||d}tt| |||d}t|| d S )Nr1   r   )r   )r"   r#   r$   getattrfftr   r   )rI   r   r   r&   Zfft_resZfftpack_resr+   r+   r,   test_fftpack_equivalience   s    rL   c                 C   sF   t jd}dD ]0\}}| ||||d}| |||d}t|| qd S )Nd   ))r   F)r   F)r   Tr   r   r   )r   r   r"   r#   r$   r   )rI   r   r&   r   r   rE   br+   r+   r,   test_orthogonalize_default   s
    rQ   z
func, typec                 C   s:   t jd}| |||dd}| |||dd}t|| d S )NrM   TrN   FrO   )rI   r   r   r&   y1r)   r+   r+   r,   test_orthogonalize_noop   s    rS   c                 C   s   t jd}| }|d  t9  < |d  t9  < t|d| dd}t|d| dd}|d  t  < |d  t  < t|| d S )NrM   r   r   TrN   F)r"   r#   r$   r5   SQRT_2r   r   )r   r&   x2rR   r)   r+   r+   r,   test_orthogonalize_dct1   s    rW   c                 C   sJ   t jd}| |d|dd}| |d|dd}|d  t  < t|| d S )NrM   r   TrN   Fr   )r"   r#   r$   rU   r   )rI   r   r&   rR   r)   r+   r+   r,   test_orthogonalize_dcst2   s
    rX   c                 C   sR   t jd}| }|d  t9  < | |d|dd}| |d|dd}t|| d S )NrM   r   r   TrN   F)r"   r#   r$   r5   rU   r   )rI   r   r&   rV   rR   r)   r+   r+   r,   test_orthogonalize_dcst3   s    rY   )&numpyr"   Znumpy.testingr   r   ZpytestZ	scipy.fftr   r   r   r   r   r	   r
   r   rK   Zscipyr   mathsqrtrU   markZparametrizer-   Zfloat16Zfloat32Zfloat64Z	complex64Z
complex128r8   rF   rH   rL   rQ   rS   rW   rX   rY   r+   r+   r+   r,   <module>   s   (
    
	