
    xf                     
   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j&                  d      Zej*                  j-                  deefeefg      ej*                  j-                  dg d      ej*                  j-                  d	g d
      ej*                  j-                  dd dg      ej*                  j-                  dg d      ej*                  j-                  dddg      d                                           Zej*                  j-                  deefeefg      ej*                  j-                  dg d      ej*                  j-                  dej0                  ej2                  ej4                  ej6                  ej8                  g      ej*                  j-                  dd dg      ej*                  j-                  dg d      ej*                  j-                  dddg      d                                           Zej*                  j-                  de	e
feefg      ej*                  j-                  dg d      ej*                  j-                  dg d      ej*                  j-                  dg d      ej*                  j-                  dddg      d                                    Zej*                  j-                  de	e
feefg      ej*                  j-                  dg d      ej*                  j-                  dg d      ej*                  j-                  dej0                  ej2                  ej4                  ej6                  ej8                  g      ej*                  j-                  dg d      ej*                  j-                  dddg      d                                           Zej*                  j-                  dg d      ej*                  j-                  dg d      ej*                  j-                  dg d      d                      Z ej*                  j-                  deee	eg      ej*                  j-                  dg d      d               Z!ej*                  j-                  dg d      ej*                  j-                  d ed!fedfed!fg      d"               Z"ej*                  j-                  dg d      d#        Z#ej*                  j-                  dg d      ej*                  j-                  deeg      d$               Z$ej*                  j-                  dg d      ej*                  j-                  deeg      d%               Z%y)&    N)assert_allcloseassert_array_equal)dctidctdctnidctndstidstdstnidstn)fftpack   zforward, backwardtype)   r         n)r   r   r      
      axisr   norm)NbackwardorthoforwardorthogonalizeFTc                 
   t         j                  j                  ||      } | |||||      } ||||||      }	t        |	|       dgdz  }
d|
|<   t        j                  ||
d      } |||||||      }t        ||       y )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z2s                F/usr/lib/python3/dist-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr.      s     			q!A4d]KADt$mLAAq(Q,CCI	3V	$B	"dAtT	GBB    dtypeoverwrite_xc                 H   t         j                  j                  dd      j                  |      }|j	                         } | |||||      }	|	j	                         }
 ||	||||      }|s(t        ||dd       t        ||       t        |	|
       y t        ||dd       y )N      )r   r   r1   ư>rtolatol)r$   r%   r&   astypecopyr   r   )r   r   r   r0   r   r   r1   r(   x_origr)   y_origr*   s               r-   test_identity_1d_overwriter=   '   s     			q!##E*AVVXF4d;GAVVXFDt$KHA14d31f%1f%648r/   zshape, axes)	)r   r   r   )r>   r   )r>   N)r>   r   r   )r      N)r@   r?   )r   r      N)rB   r   )rB   )r   r   c                    t         j                  j                  |      }|t        j                  ||      } | |||||      } ||||||      }	t        |	|       |dg|j                  z  }
nBt        |t              rdg|j                  z  }
d|
|<   ndg|j                  z  }
|D ]  }d|
|<   	 t        j                  ||
d      } |||||||      }t        ||       y )N)axesr   r   r   r   r    r!   r#   )r$   r%   taker   ndim
isinstanceintr'   )r   r   r   shaperE   r   r   r(   r)   r*   r'   ar+   r,   s                 r-   test_identity_ndrL   ?   s    ( 			At$4d]KADt$mLAAq|h	D#	hD	h 	ACF	 
3V	$B	"dE4]	KBBr/   ))r   r   r   )rM   r   )rM   Nc                 r   t         j                  j                  |      j                  |      }|j                         }	|t        j                  ||      } | ||||      }
|
j                         } ||
|||      }|rt        ||	dd       y t        ||dd       t        ||	       t        |
|       y )N)rE   r   r5   r6   )r$   r%   r9   r:   rF   r   r   )r   r   r   rJ   rE   r0   r   r1   r(   r;   r)   r<   r*   s                r-   test_identity_nd_overwriterO   l   s      			&&u-AVVXFt$4d.AVVXFDt$/A64814d31f%1f%r/   func)r   r	   r   r   c                     t         j                  j                  dd      } t        t        |       |||      } t        t
        |       |||      }t        ||       y )Nr4   r   )r   )r$   r%   r&   getattrfftr   r   )rP   r   r   r(   fft_resfftpack_ress         r-   test_fftpack_equivaliencerV      sP     			q"A gc4 Dt4G(''4(Dt<KG[)r/   c                     t         j                  j                  d      }dD ](  \  }} | ||||      } | |||      }t        ||       * y )Nd   ))r   F)r   F)r   Tr   r   r   )r   r   r$   r%   r&   r   )rP   r   r(   r   r   rK   bs          r-   test_orthogonalize_defaultr\      sU     			sA e
 D>D)1r/   )r   r   r   z
func, typer   c                     t         j                  j                  d      } | |||d      } | |||d      }t        ||       y )NrX   TrY   FrZ   )rP   r   r   r(   y1r+   s         r-   test_orthogonalize_noopr_      s@    
 			sA	adT	:B	adU	;BBr/   c                 >   t         j                  j                  d      }|j                         }|dxx   t        z  cc<   |dxx   t        z  cc<   t        |d| d      }t        |d| d      }|dxx   t        z  cc<   |dxx   t        z  cc<   t        ||       y )NrX   r   r   TrY   F)r$   r%   r&   r:   SQRT_2r   r   )r   r(   x2r^   r+   s        r-   test_orthogonalize_dct1rd      s    
		sA	
BqEVOErFfF	QQT	6B	Rad%	8BqEVOErFfFBr/   c                     t         j                  j                  d      } | |d|d      } | |d|d      }|dxx   t        z  cc<   t	        ||       y )NrX   r   TrY   Fr   )r$   r%   r&   rb   r   )rP   r   r(   r^   r+   s        r-   test_orthogonalize_dcst2rf      sM     			sA	aad$	7B	aad%	8BqEVOEBr/   c                     t         j                  j                  d      }|j                         }|dxx   t        z  cc<    | |d|d      } | |d|d      }t        ||       y )NrX   r   r   TrY   F)r$   r%   r&   r:   rb   r   )rP   r   r(   rc   r^   r+   s         r-   test_orthogonalize_dcst3rh      sX     			sA	
BqEVOE	aad$	7B	bqt5	9BBr/   )&numpyr$   numpy.testingr   r   pytest	scipy.fftr   r   r   r   r	   r
   r   r   rS   scipyr   mathsqrtrb   markparametrizer.   float16float32float64	complex64
complex128r=   rL   rO   rV   r\   r_   rd   rf   rh    r/   r-   <module>rx      s     =  D D D   	1 ,T{S$K.HI.23!Q(!GH5$-8 9 I ) 4 / J  ,T{S$K.HI.2::rzz2::#%<<#@ A!Q(!GHu69 7 I )A / J9" ,e}tUm.LM.
 !GH5$-8 9 I / N : ,e}tUm.LM. 2::rzz2::#%<<#@ A!GH6& 7 IA / N&* !?@.!GH* I / A* #sD$!78. / 9 !AB!HsAha(" ## C !AB C !AB#s, - C !AB#s, - Cr/   