
    -i#                     p   S SK rS SKJrJr  S SKrS SKrS SKJrJ	r	J
r
JrJrJrJrJr  S SKJr  S SKJr  S SKJrJr  \R,                  R.                  r\R0                  " S5      r\" SS9\R,                  R5                  S	\\	4\\4/5      \R,                  R5                  S
/ SQ5      \R,                  R5                  S/ SQ5      \R,                  R5                  SS S/5      \R,                  R5                  S/ SQ5      \R,                  R5                  SSS/5      S 5       5       5       5       5       5       5       r\" SSS9\R,                  R5                  S	\\	4\\4/5      \R,                  R5                  S
/ SQ5      \R,                  R5                  S\R8                  \R:                  \R<                  \R>                  \R@                  /5      \R,                  R5                  SS S/5      \R,                  R5                  S/ SQ5      \R,                  R5                  SSS/5      S 5       5       5       5       5       5       5       r!\" SS9\R,                  R5                  S	\
\4\\4/5      \R,                  R5                  S
/ SQ5      \R,                  R5                  S/ SQ5      \R,                  R5                  S/ SQ5      \R,                  R5                  SSS/5      S 5       5       5       5       5       5       r"\" SSS9\R,                  R5                  S	\
\4\\4/5      \R,                  R5                  S
/ SQ5      \R,                  R5                  S/ SQ5      \R,                  R5                  S\R8                  \R:                  \R<                  \R>                  \R@                  /5      \R,                  R5                  S/ SQ5      \R,                  R5                  SSS/5      S 5       5       5       5       5       5       5       r#\" SS9\R,                  R5                  S/ S Q5      \R,                  R5                  S
/ SQ5      \R,                  R5                  S/ SQ5      S! 5       5       5       5       r$\" SS9\R,                  R5                  S\\\
\/5      \R,                  R5                  S
/ SQ5      S" 5       5       5       r%\" SS9\R,                  R5                  S/ S#Q5      \R,                  R5                  S$\S%4\S4\S%4/5      S& 5       5       5       r&\" S'S(S)9\" SS9\R,                  R5                  S/ S#Q5      S* 5       5       5       r'\" S'S(S)9\" SS9\R,                  R5                  S/ S#Q5      \R,                  R5                  S\\/5      S+ 5       5       5       5       r(\" S'S(S)9\" SS9\R,                  R5                  S/ S#Q5      \R,                  R5                  S\\/5      S, 5       5       5       5       r)\" SS-S9\R,                  R5                  S\\	\
\\\\\/5      S. 5       5       r*g)/    N)assert_allcloseassert_array_equal)dctidctdctnidctndstidstdstnidstn)fftpack)xp_copyxp_assert_close   T)cpu_onlyzforward, backwardtype)   r         n)r   r   r      
      axisr   norm)NbackwardorthoforwardorthogonalizeFc           	      B   UR                  [        R                  R                  X35      5      nU " XXEUS9n	U" XXEUS9n
[	        X5        S/S-  nSX'   UR                  [        R
                  " [        R                   " U	5      USS95      nU" XX4XVS9n[	        X5        g )N)r   r   r   r   r   r   r   r   edgemoder   )asarraynprandomrandr   pad)r   r   r   r   r   r   r   xpxyzr+   y2z2s                 W/var/www/html/venv/lib/python3.13/site-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr3      s     	

299>>!'(Ad]KAtmLAA(Q,CCI	BFF2::a=#F;	<B	"AT	GBB    z/`overwrite_x` only supported for NumPy backend.)np_onlyreasondtypeoverwrite_xc                 *   [         R                  R                  SS5      R                  U5      nUR	                  5       n	U " XXEUS9n
U
R	                  5       nU" XXEUS9nU(       d"  [        XSSS9  [        X5        [        X5        g [        XSSS9  g )N      )r   r   r8   ư>rtolatol)r(   r)   r*   astypecopyr   r   )r   r   r   r7   r   r   r8   r,   r-   x_origr.   y_origr/   s                r2   test_identity_1d_overwriterD   +   s     			q!##E*AVVXFd;GAVVXFtKHA4d31%1%48r4   zshape, axes)	)r   r   r   )rE   r   )rE   N)rE   r   r   )r      N)rG   rF   )r   r      N)rI   r   )rI   )r   r   c           	         UR                  [        R                  R                  U5      5      nUb  [        R                  " X45      nU " XXEUS9n	U" XXEUS9n
[	        X5        Uc  S/UR
                  -  nOG[        U[        5      (       a  S/UR
                  -  nSX'   OS/UR
                  -  nU H  nSX'   M	     UR                  [        R                  " [        R                   " U	5      USS95      nU" XX4XVS9n[	        X5        g )N)axesr   r   r"   r!   r#   r$   r&   )	r'   r(   r)   taker   ndim
isinstanceintr+   )r   r   r   shaperL   r   r   r,   r-   r.   r/   r+   ar0   r1   s                  r2   test_identity_ndrS   E   s    * 	

299##E*+A$d]KAtmLAA|h	D#		h	hACF  
BFF2::a=#F;	<B	"E	KBBr4   ))r   r   r   )rT   r   )rT   Nc	                 V   [         R                  R                  U5      R                  U5      n	U	R                  5       n
Ub  [         R                  " X45      nU " XXFS9nUR                  5       nU" XXFS9nU(       a  [        XSSS9  g [        XSSS9  [        X5        [        X5        g )N)rL   r   r<   r=   )r(   r)   r@   rA   rM   r   r   )r   r   r   rQ   rL   r7   r   r8   r,   r-   rB   r.   rC   r/   s                 r2   test_identity_nd_overwriterV   t   s    $ 			&&u-AVVXF$d.AVVXFt/A484d31%1%r4   func)r   r	   r   r   c                     [         R                  R                  SS5      nUR                  [	        [
        U 5      " XAUS95      nUR                  U5      n[	        [        U 5      " XAUS9n[        Xe5        g )Nr;   r   )r   )r(   r)   r*   r'   getattrr   fftr   )rW   r   r   r,   r-   fftpack_resfft_ress          r2   test_fftpack_equivaliencer]      s\    
 			q"A**WWd3A$GHK


1Ac4 t4GG)r4   c                     UR                  [        R                  R                  S5      5      nS H  u  pEU " X1XES9nU " X1US9n[	        Xg5        M      g )Nd   ))r   F)r   F)r   Tr   r   r   )r   r   r'   r(   r)   r*   r   )rW   r   r,   r-   r   r   rR   bs           r2   test_orthogonalize_defaultrc      sO    
 	

299>>#&'A
 D>D)r4   )r   r   r   z
func, typer   c                     UR                  [        R                  R                  S5      5      nU " XAUSS9nU " XAUSS9n[	        XV5        g )Nr_   Tr`   Fra   )rW   r   r   r,   r-   y1r0   s          r2   test_orthogonalize_nooprf      sC     	

299>>#&'A	aT	:B	aU	;BBr4   z	jax.numpyz)jax arrays do not support item assignment)r6   c                 @   UR                  [        R                  R                  S5      5      n[	        X!S9nUS==   [
        -  ss'   US==   [
        -  ss'   [        USU SS9n[        USU SS9nUS==   [
        -  ss'   US==   [
        -  ss'   [        XE5        g )	Nr_   r,   r   r   Tr`   F)r'   r(   r)   r*   r   SQRT_2r   r   )r   r,   r-   x2re   r0   s         r2   test_orthogonalize_dct1rl      s    
 	

299>>#&'A		BqEVOErFfF	QQT	6B	Rad%	8BqEVOErFfFBr4   c                     UR                  [        R                  R                  S5      5      nU " USUSS9nU " USUSS9nXP[        :X  a  SOS==   [
        -  ss'   [        XE5        g )Nr_   r   Tr`   Fr   ri   )r'   r(   r)   r*   r   rj   r   )rW   r   r,   r-   re   r0   s         r2   test_orthogonalize_dcst2rn      s]     	

299>>#&'A	aad$	7B	aad%	8BCKqR F* Br4   c                     UR                  [        R                  R                  S5      5      n[	        X2S9nX@[
        :X  a  SOS==   [        -  ss'   U " USUSS9nU " USUSS9n[        XV5        g )	Nr_   rh   r   ri   r   Tr`   F)r'   r(   r)   r*   r   r   rj   r   )rW   r   r,   r-   rk   re   r0   s          r2   test_orthogonalize_dcst3rp      sg     	

299>>#&'A		BCKqR F* 	aad$	7B	bqt5	9BBr4   z,array-likes only supported for NumPy backendc                     SS/SS//SS/SS//SS/SS///n[        U" U5      U" U R                  U5      5      5        g )Ng      ?)r   r'   )r,   rW   r-   s      r2   test_array_likerr      sX     *sCj	!*sCj	!*sCj	!	#A DGT"**Q-01r4   )+numpyr(   numpy.testingr   r   pytestmath	scipy.fftr   r   r   r   r	   r
   r   r   rZ   scipyr   scipy._lib._array_apir   r   markskip_xp_backendssqrtrj   parametrizer3   float16float32float64	complex64
complex128rD   rS   rV   r]   rc   rf   rl   rn   rp   rr    r4   r2   <module>r      s(    =   D D D   :;;// 	1 4 ,T{S$K.HI.23!Q(!GH5$-8 9 I ) 4 / J !  $JL,T{S$K.HI.2::rzz2::#%<<#@ A!Q(!GHu69 7 I )A / JL9" 4 ,e}tUm.LM.
 !GH5$-8 9 I / N !"< $JL,e}tUm.LM. 2::rzz2::#%<<#@ A!GH6& 7 IA / NL&* 4 !?@.!GH* I / A !* 4 #sD$!78. / 9 ! 4 !AB!HsAha(" ## C ! +DF4 !AB C !F +DF4 !AB#s, - C !F
 +DF4 !AB#s, - C !F
 $GI#tT5#tT5!QR2 SI2r4   