
    ri%                        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mZmZ d dlmc mZ ej8                  j:                  Z ej<                  d      Zej8                  jA                  d eee	       eee      g      ej8                  jA                  dg d	      ej8                  jA                  d
g d      ej8                  jA                  dd dg      ej8                  jA                  dg d      ej8                  jA                  dddg      d                                           Z! edd      ej8                  jA                  dee	feefg      ej8                  jA                  dg d	      ej8                  jA                  dejD                  ejF                  ejH                  ejJ                  ejL                  g      ej8                  jA                  dd dg      ej8                  jA                  dg d      ej8                  jA                  dddg      d                                                  Z'ej8                  jA                  d ee
e       eee      g      ej8                  jA                  dg d	      ej8                  jA                  dg d      ej8                  jA                  dg d      ej8                  jA                  dddg      d                                    Z( edd      ej8                  jA                  de
efeefg      ej8                  jA                  dg d	      ej8                  jA                  dg d      ej8                  jA                  dejD                  ejF                  ejH                  ejJ                  ejL                  g      ej8                  jA                  dg d      ej8                  jA                  dddg      d                                                  Z)ej8                  jA                  d ee       ee       ee
       ee      g      ej8                  jA                  dg d	      ej8                  jA                  dg d      d                      Z*ej8                  jA                  d ee       ee       ee
       ee      g      ej8                  jA                  dg d	      d                Z+ej8                  jA                  dg d!      ej8                  jA                  d" eed#       eed       eed#      g      d$               Z, ee      ej8                  jA                  dg d!      d%               Z-ej8                  jA                  dg d!      ej8                  jA                  d ee       ee      g      d&               Z.ej8                  jA                  dg d!      ej8                  jA                  d ee       ee      g      d'               Z/ edd(      ej8                  jA                  dee	e
eeeeeg      d)               Z0y)*    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                 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                 b/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/scipy/fft/tests/test_real_transforms.pytest_identity_1dr4      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   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4d;GAVVXFDt$KHA14d31f%1f%6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                 .   |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   shaperM   r   r    r-   r.   r/   r0   r,   ar1   r2   s                  r3   test_identity_ndrT   G   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r5   ))r   r   r   )rU   r   )rU   Nc	                 r   t         j                  j                  |      j                  |      }	|	j                         }
|t        j                  ||      } | |	|||      }|j                         } |||||      }|rt        ||
dd       y t        ||	dd       t        |	|
       t        ||       y )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t$4d.AVVXFDt$/A64814d31f%1f%r5   funcc                 (   t         j                  j                  dd      }|j                   t	        t
        | j                        |||            }|j                  |      } t	        t        | j                        |||      }t        ||       y )Nr<   r   )r   )	r)   r*   r+   r(   getattrr   __name__fftr   )rX   r   r   r-   r.   fftpack_resfft_ress          r3   test_fftpack_equivaliencer_      so     			q"A**<WWdmm<Q4PQK


1A)gc4==)!T=GG[)r5   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   )rX   r   r-   r.   r   r   rS   bs           r3   test_orthogonalize_defaultre      s^     	

299>>#&'A e
 D>D)1r5   )r   r   r   z
func, typer   c                     |j                  t        j                  j                  d            } | |||d      } | |||d      }t	        ||       y )Nra   Trb   Frc   )rX   r   r   r-   r.   y1r1   s          r3   test_orthogonalize_nooprh      sI     	

299>>#&'A	adT	:B	adU	;BBr5   c                    |j                  t        j                  j                  d            }t	        ||      }t        j                  |d      j                  t               t        j                  |d      j                  t               t        |d| d      }t        |d| d      }t        j                  |d      j                  t               t        j                  |d      j                  t               t        ||       y )	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	r	BFF2qM6"FF2rNF#	QQT	6B	Rad%	8BFF2qM FF2rN&!Br5   c                    |j                  t        j                  j                  d            } | |d|d      } | |d|d      }t	        j
                  || j                  dk(  rdnd      j                  t               t        ||       y )	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      so     	

299>>#&'A	aad$	7B	aad%	8BFF2DMMU*q3::6BBr5   c                 6   |j                  t        j                  j                  d            }t	        ||      }t        j                  || j                  dk(  rdnd      j                  t                | |d|d      } | |d|d	      }t        ||       y )
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      s{     	

299>>#&'A	r	BFF2DMMU*q3<<VD	aad$	7B	bqt5	9BBr5   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-   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   