
    = j%                        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JrJr  S SKJs  Jr  \R8                  R:                  r\R<                  " S5      r\R8                  RA                  S\" \\	5      \" \\5      /5      \R8                  RA                  S/ S	Q5      \R8                  RA                  S
/ SQ5      \R8                  RA                  SS S/5      \R8                  RA                  S/ SQ5      \R8                  RA                  SSS/5      S 5       5       5       5       5       5       r!\" SSS9\R8                  RA                  S\\	4\\4/5      \R8                  RA                  S/ S	Q5      \R8                  RA                  S\RD                  \RF                  \RH                  \RJ                  \RL                  /5      \R8                  RA                  SS S/5      \R8                  RA                  S/ SQ5      \R8                  RA                  SSS/5      S 5       5       5       5       5       5       5       r'\R8                  RA                  S\" \
\5      \" \\5      /5      \R8                  RA                  S/ S	Q5      \R8                  RA                  S/ SQ5      \R8                  RA                  S/ SQ5      \R8                  RA                  SSS/5      S 5       5       5       5       5       r(\" SSS9\R8                  RA                  S\
\4\\4/5      \R8                  RA                  S/ S	Q5      \R8                  RA                  S/ SQ5      \R8                  RA                  S\RD                  \RF                  \RH                  \RJ                  \RL                  /5      \R8                  RA                  S/ SQ5      \R8                  RA                  SSS/5      S 5       5       5       5       5       5       5       r)\R8                  RA                  S\" \5      \" \5      \" \
5      \" \5      /5      \R8                  RA                  S/ S	Q5      \R8                  RA                  S/ SQ5      S 5       5       5       r*\R8                  RA                  S\" \5      \" \5      \" \
5      \" \5      /5      \R8                  RA                  S/ S	Q5      S  5       5       r+\R8                  RA                  S/ S!Q5      \R8                  RA                  S"\" \S#5      \" \S5      \" \S#5      /5      S$ 5       5       r,\" \5      \R8                  RA                  S/ S!Q5      S% 5       5       r-\R8                  RA                  S/ S!Q5      \R8                  RA                  S\" \5      \" \5      /5      S& 5       5       r.\R8                  RA                  S/ S!Q5      \R8                  RA                  S\" \5      \" \5      /5      S' 5       5       r/\" SS(S9\R8                  RA                  S\\	\
\\\\\/5      S) 5       5       r0g)*    N)assert_allcloseassert_array_equal)dctidctdctnidctndstidstdstnidstn)fftpack)xp_copyxp_assert_closemake_xp_test_casemake_xp_pytest_param   zforward, backwardtype)   r         n)r   r   r      
      axisr   norm)NbackwardorthoforwardorthogonalizeFTc           	      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                 u/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr4      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   r9   ư>rtolatol)r)   r*   r+   astypecopyr   r   )r   r   r   r8   r   r   r9   r-   r.   x_origr/   y_origr0   s                r3   test_identity_1d_overwriterE   -   s     			q!##E*AVVXFd;GAVVXFtKHA4d31%1%48r5   zshape, axes)	)r   r   r   )rF   r   )rF   N)rF   r   r   )r      N)rH   rG   )r   r      N)rJ   r   )rJ   )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   shaperM   r   r    r-   r.   r/   r0   r,   ar1   r2   s                  r3   test_identity_ndrT   G   s    * 	

299##E*+A$d]KAtmLAA|h	D#		h	hACF  
BFF2::a=#F;	<B	"E	KBBr5   ))r   r   r   )rU   r   )rU   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)rM   r   r=   r>   )r)   r*   rA   rB   rN   r   r   )r   r   r   rR   rM   r8   r   r9   r-   r.   rC   r/   rD   r0   s                 r3   test_identity_nd_overwriterW   v   s    $ 			&&u-AVVXF$d.AVVXFt/A484d31%1%r5   funcc                    [         R                  R                  SS5      nUR                  [	        [
        U R                  5      " XAUS95      nUR                  U5      n[	        [        U R                  5      " XAUS9n[        Xe5        g )Nr<   r   )r   )	r)   r*   r+   r(   getattrr   __name__fftr   )rX   r   r   r-   r.   fftpack_resfft_ress          r3   test_fftpack_equivaliencer_      sd     			q"A**WWdmm<Q4PQK


1Ac4==)!=GG)r5   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   )rX   r   r-   r.   r   r   rS   bs           r3   test_orthogonalize_defaultre      sO     	

299>>#&'A
 D>D)r5   )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 )Nra   Trb   Frc   )rX   r   r   r-   r.   y1r1   s          r3   test_orthogonalize_nooprh      sC     	

299>>#&'A	aT	:B	aU	;BBr5   c                    UR                  [        R                  R                  S5      5      n[	        X!S9n[
        R                  " US5      R                  [        5        [
        R                  " US5      R                  [        5        [        USU SS9n[        USU SS9n[
        R                  " US5      R                  [        5        [
        R                  " US5      R                  [        5        [        XE5        g )	Nra   r-   r   r   Trb   F)r(   r)   r*   r+   r   xpxatmultiplySQRT_2r   divider   )r   r-   r.   x2rg   r1   s         r3   test_orthogonalize_dct1rr      s     	

299>>#&'A		BFF2qM6"FF2rNF#	QQT	6B	Rad%	8BFF2qM FF2rN&!Br5   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[        R
                  " XPR                  S:X  a  SOS5      R                  [        5        [        XE5        g )	Nra   r   Trb   Fr   r   rk   )
r(   r)   r*   r+   rl   rm   r[   rp   ro   r   )rX   r   r-   r.   rg   r1   s         r3   test_orthogonalize_dcst2rt      sk     	

299>>#&'A	aad$	7B	aad%	8BFF2MMU*q3::6BBr5   c                 "   UR                  [        R                  R                  S5      5      n[	        X2S9n[
        R                  " X@R                  S:X  a  SOS5      R                  [        5        U " USUSS9nU " USUS	S9n[        XV5        g )
Nra   rj   r   r   rk   r   Trb   F)r(   r)   r*   r+   r   rl   rm   r[   rn   ro   r   )rX   r   r-   r.   rq   rg   r1   s          r3   test_orthogonalize_dcst3rv      su     	

299>>#&'A		BFF2MMU*q3<<VD	aad$	7B	bqt5	9BBr5   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-   rX   r.   s      r3   test_array_likerx      sX     *sCj	!*sCj	!*sCj	!	#A DGT"**Q-01r5   )1numpyr)   numpy.testingr   r   pytestmath	scipy.fftr   r   r   r   r	   r
   r   r   r\   scipyr   scipy._lib._array_apir   r   r   r   scipy._lib.array_api_extra_libarray_api_extrarl   markskip_xp_backendssqrtro   parametrizer4   float16float32float64	complex64
complex128rE   rT   rW   r_   re   rh   rr   rt   rv   rx    r5   r3   <module>r      s-    =   D D D  9 9 ( (;;// 	1 ,/CC/N/CC/N/P Q.23!Q(!GH5$-8 9 I ) 4 /Q  $JL,T{S$K.HI.2::rzz2::#%<<#@ A!Q(!GHu69 7 I )A / JL9" ,/CD%/P/CD%/P/R S.
 !GH5$-8 9 I /S"< $JL,e}tUm.LM. 2::rzz2::#%<<#@ A!GH6& 7 IA / NL&* "6s";"6s";"6t"<"6t"<"> ? .!GH* I /	?* "6s";"6s";"6t"<"6t"<"> ? . /	?
 !AB(<S!(D(<S!(D(<S!(D(F GG C 3!AB C   !AB"6s";"6s";"= >> C !AB"6s";"6s";"= >> C $GI#tT5#tT5!QR2 SI2r5   