+
    ei
  c                   s~    R t ^ RIt^ RIHtHt ^ RIHt  ! R R4      t ! R R4      t ! R R	4      t	 ! R
 R4      t
R# )zfTest functions for fftpack.helper module

Copied from fftpack.helper by Pearu Peterson, October 2005

N)fftpi)assert_array_almost_equalc                   s>   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )TestFFTShiftc                s&   . ROp. ROp\        \        P                  ! V4      V4       \        \        P                  ! V4      V4       . ROp. ROp\        \        P                  ! V4      V4       \        \        P                  ! V4      V4       R# )    N	r               )	r
   r   r   r   r   r   r   r   r	   
r   r   r   r   r	   r
   r   r   r   )
r   r
   r   r   r   r   r   r   r   r	   r   r    fftshift	ifftshift)selfxy   &  B/usr/lib64/python3.14/site-packages/numpy/fft/tests/test_helper.pytest_definitionZTestFFTShift.test_definition   s`    ++!#,,q/15!#--"2A6//!#,,q/15!#--"2A6    c                s    R FW  p\         P                  P                  V34      p\        \        P                  ! \        P
                  ! V4      4      V4       KY  	  R# )r   N)r   r	   i	   id   i   )nprandomr   r    r   r   )r   nr   r   r   test_inverseZTestFFTShift.test_inverse   s=    $A		  !&A%cmmCLLO&DaH %r   c                s   . RO. RO. RO.p. RO. RO. RO.p\        \        P                  ! VR	R7      V4       \        \        P                  ! V^ R7      \        P                  ! VR
R7      4       \        \        P                  ! VR	R7      V4       \        \        P                  ! V^ R7      \        P                  ! VR
R7      4       \        \        P                  ! V4      V4       \        \        P                  ! V4      V4       R# )r   axesN)r   r   r   )r   r	   r
   )r   r   r   )r   r   r   )r   r   r   )r
   r   r	   r   r   r   r   )r   freqsZshiftedr   r   test_axes_keywordZTestFFTShift.test_axes_keyword   s    J5J7!#,,u6"BGL!#,,u1"="%,,u4"@	B!#--f"EuM!#--a"@"%--d"C	E 	"#,,u"5w?!#--"8%@r   c                s   ^ ^.^^.^^..p^^.^ ^.^^..p\        \        P                  ! V^ R7      V4       \        \        P                  ! V^ R7      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! V^ .R7      V4       ^^ .^^.^^..p\        \        P                  ! V^R7      V4       \        \        P                  ! V^R7      V4       ^^.^^ .^^..p\        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! V^ ^.R7      V4       \        \        P                  ! V^ ^.R7      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! V4      V4       \        \        P                  ! V4      V4       R# )z0Test 2D input, which has uneven dimension sizes r   Nr!   r    r   )r   r"   Z
shift_dim0Z
shift_dim1Zshift_dim_both   &    r   test_uneven_dimsZTestFFTShift.test_uneven_dims)   s    FFF
 FFF


 	"#,,u1"=zJ!#--
"CUK!#,,u4"@*M!#--
!"EuM FFF


 	"#,,u1"=zJ!#--
"CUK FFF

 	"#,,u6"BNS!#--V"LeT!#,,uAq6"BNS!#--aV"LeT 	"#,,u4"@.Q!#--T"JER!#,,u"5~F!#--"?Gr   c           
     s  aaa	a
 ^ RI HoHoHo	Ho
 RVVV	V
3R llpRVVV	V
3R llp\        ^4       F  p\        ^4       Fw  pR Fn  p\        P                  P                  W44      p\        \        P                  ! We4      V! We4      4       \        \        P                  ! We4      V! We4      4       Kp  	  Ky  	  K  	  R# )zFTest the new (>=v1.15) and old implementations are equal (see #10073) )arangeasarrayconcatenatetakeNc                s.  < S
! V 4      pVP                   pVf   \        \        V4      4      pM\        V\        4      '       d   V3pTpV FE  pVP
                  V,          pV^,           ^,          pS! S	! Wv4      S	! V4      34      pS! WHV4      pKG  	  V# )z%How fftshift was implemented in v1.14ndimZlistrangeZ
isinstanceZintZshaper   r   Ztmpr+   r   Zkr   Zp2Zmylistr&   r'   r(   r)      &&       r   original_fftshiftZ>TestFFTShift.test_equal_to_original.<locals>.original_fftshiftZ   s    !*C88D|E$K(D#&&wAIIaL!e\$fRmVBZ%@AA&	 
 Hr   c                s:  < S
! V 4      pVP                   pVf   \        \        V4      4      pM\        V\        4      '       d   V3pTpV FK  pVP
                  V,          pWf^,           ^,          ,
          pS! S	! Wv4      S	! V4      34      pS! WHV4      pKM  	  V# )z'How ifftshift was implemented in v1.14 r*   r-   r.   r   original_ifftshiftZ?TestFFTShift.test_equal_to_original.<locals>.original_ifftshiftj   s    !*C88D|E$K(D#&&wAIIaLa%A%$fRmVBZ%@AA&	 
 Hr   )N)r   r   Nr!   r    )Znumpy._corer&   r'   r(   r)   r,   r   r   Zrandr   r    r   r   )r   r/   r0   ZiZjZaxes_keywordZinpr&   r'   r(   r)   s   &      @@@@r   test_equal_to_originalZ#TestFFTShift.test_equal_to_originalV   s    BB	 	 	 	$ rA2Y$>L))...C-cll3.M.?.RT .cmmC.N.@.SU %?  r    N)__name__
__module____qualname____firstlineno__r   r   r#   r%   r1   __static_attributes____classdictcell__Z__classdict__   @r   r   r      s)     7I
A+HZ/U /Ur   r   c                   s&   a  ] tR t^t o R tRtV tR# )TestFFTFreqc                   . ROp\        ^	\        P                  ! ^	4      ,          V4       \        ^	\        ,          \        P                  ! ^	\        4      ,          V4       . ROp\        ^
\        P                  ! ^
4      ,          V4       \        ^
\        ,          \        P                  ! ^
\        4      ,          V4       R# )r   Nr   r   )r   r    Zfftfreqr   r   r      & r   r   ZTestFFTFreq.test_definition   sv    +!!ckk!n"4a8!!b&3;;q"+="=qA/!"s{{2"6:!"r'CKKB,?"?Cr   r2   Nr3   r4   r5   r6   r   r7   r8   r9   r:   r   r;   r;      s     D Dr   r;   c                   s&   a  ] tR t^t o R tRtV tR# )TestRFFTFreqc                r<   )r   N)r   r   r   r   r	   )r   r   r   r   r	   i   )r   r    Zrfftfreqr   r=   r>   r   r   ZTestRFFTFreq.test_definition   sw    !!cll1o"5q9!!b&3<<2+>">B!"s||B'7"7;!"r'CLLR,@"@!Dr   r2   Nr?   r9   r:   r   r@   r@      s     E Er   r@   c                   s&   a  ] tR t^t o R tRtV tR# )
TestIRFFTNc                s    \         P                  P                  R4      w  rVRV,          ,           pRp\        P                  ! W4R7       R# )r   y              ?r   N)r   i   i   i    )r   )r   r   r    Zirfftn)r   ZarZaiZar   r$   r   test_not_last_axis_successZ%TestIRFFTN.test_not_last_axis_success   s8    !!.1bL 	

1 r   r2   N)r3   r4   r5   r6   rB   r7   r8   r9   r:   r   rA   rA      s     ! !r   rA   )Z__doc__Znumpyr   r    r   Znumpy.testingr   r   r;   r@   rA   r2   r   r   <module>rC      sF   
   3zU zUzD DE E	! 	!r   