
    Џkh#                        d dl Zd dlmZmZ d dl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mZmZ ej,                  j.                  Z ej0                  d      Z ed      ej,                  j5                  d	ee	feefg      ej,                  j5                  d
g d      ej,                  j5                  dg d      ej,                  j5                  dd dg      ej,                  j5                  dg d      ej,                  j5                  dddg      d                                                  Z edd      ej,                  j5                  d	ee	feefg      ej,                  j5                  d
g d      ej,                  j5                  dej8                  ej:                  ej<                  ej>                  ej@                  g      ej,                  j5                  dd dg      ej,                  j5                  dg d      ej,                  j5                  dddg      d                                                  Z! ed      ej,                  j5                  d	e
efeefg      ej,                  j5                  d
g d      ej,                  j5                  dg d      ej,                  j5                  dg d      ej,                  j5                  dddg      d                                           Z" edd      ej,                  j5                  d	e
efeefg      ej,                  j5                  d
g d      ej,                  j5                  dg d      ej,                  j5                  dej8                  ej:                  ej<                  ej>                  ej@                  g      ej,                  j5                  dg d      ej,                  j5                  dddg      d                                                  Z# ed      ej,                  j5                  dg d       ej,                  j5                  d
g d      ej,                  j5                  dg d      d!                             Z$ ed      ej,                  j5                  deee
eg      ej,                  j5                  d
g d      d"                      Z% ed      ej,                  j5                  dg d#      ej,                  j5                  d$ed%fedfed%fg      d&                      Z& ed'd()       ed      ej,                  j5                  dg d#      d*                      Z' ed'd()       ed      ej,                  j5                  dg d#      ej,                  j5                  deeg      d+                             Z( ed'd()       ed      ej,                  j5                  dg d#      ej,                  j5                  deeg      d,                             Z) edd-      ej,                  j5                  dee	e
eeeeeg      d.               Z*y)/    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                 l   |j                  t        j                  j                  ||            } | |||||      }	 ||	||||      }
t	        |
|       dgdz  }d||<   |j                  t        j
                  t        j                   |	      |d            } |||||||      }t	        ||       y )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                 `/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr3      s     	

299>>!Q'(A4d]KADt$mLAAq(Q,CCI	BFF2::a=#F;	<B	"dAtT	GBB    z/`overwrite_x` only supported for NumPy backend.)np_onlyreason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   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4d;GAVVXFDt$KHA14d31f%1f%6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                 .   |j                  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||<   	 |j                  t        j                  t        j                   |	      |d            } |||||||      }t	        ||       y )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t$4d]KADt$mLAAq|h	D#	hD	h 	ACF	 
BFF2::a=#F;	<B	"dE4]	KBBr4   ))r   r   r   )rT   r   )rT   Nc	                 r   t         j                  j                  |      j                  |      }	|	j                         }
|t        j                  ||      } | |	|||      }|j                         } |||||      }|rt        ||
dd       y t        ||	dd       t        |	|
       t        ||       y )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t$4d.AVVXFDt$/A64814d31f%1f%r4   func)r   r	   r   r   c                     t         j                  j                  dd      }|j                   t	        t
        |       |||            }|j                  |      } t	        t        |       |||      }t        ||       y )Nr;   r   )r   )r(   r)   r*   r'   getattrr   fftr   )rW   r   r   r,   r-   fftpack_resfft_ress          r2   test_fftpack_equivaliencer]      sg    
 			q"A**3WWd3At$GHK


1A gc4 Dt4GG[)r4   c                     |j                  t        j                  j                  d            }dD ](  \  }} | ||||      } | |||      }t	        ||       * y )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      s^    
 	

299>>#&'A e
 D>D)1r4   )r   r   r   z
func, typer   c                     |j                  t        j                  j                  d            } | |||d      } | |||d      }t	        ||       y )Nr_   Tr`   Fra   )rW   r   r   r,   r-   y1r0   s          r2   test_orthogonalize_nooprf      sI     	

299>>#&'A	adT	:B	adU	;BBr4   z	jax.numpyz)jax arrays do not support item assignment)r6   c                 V   |j                  t        j                  j                  d            }t	        ||      }|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 )	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	r	BqEVOErFfF	QQT	6B	Rad%	8BqEVOErFfFBr4   c                     |j                  t        j                  j                  d            } | |d|d      } | |d|d      }|| t        k(  rdndxx   t
        z  cc<   t        ||       y )Nr_   r   Tr`   Fr   ri   )r'   r(   r)   r*   r   rj   r   )rW   r   r,   r-   re   r0   s         r2   test_orthogonalize_dcst2rn      sa     	

299>>#&'A	aad$	7B	aad%	8BDCKqR F* Br4   c                     |j                  t        j                  j                  d            }t	        ||      }|| t
        k(  rdndxx   t        z  cc<    | |d|d      } | |d|d      }t        ||       y )	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      sm     	

299>>#&'A	r	BDCKqR F* 	aad$	7B	bqt5	9BBr4   z,array-likes only supported for NumPy backendc                     ddgddggddgddggddgddggg}t         ||       || j                  |                   y )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   