+
    xȇi
                     ~    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                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )TestFFTShiftc                &   . 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ys   &  k/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/numpy/fft/tests/test_helper.pytest_definitionTestFFTShift.test_definition   s`    ++!#,,q/15!#--"2A6//!#,,q/15!#--"2A6    c                    R FW  p\         P                  P                  V34      p\        \        P                  ! \        P
                  ! V4      4      V4       KY  	  R# )r
   N)r
   r   	   d      )nprandomr   r   r   r   )r   nr   s   &  r   test_inverseTestFFTShift.test_inverse   s=    $A		  !&A%cmmCLLO&DaH %r   c                   . 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   freqsshifteds   &  r   test_axes_keyword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                   ^ ^.^^.^^..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,   
shift_dim0
shift_dim1shift_dim_boths   &    r   test_uneven_dims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           
       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
! 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ndimlistrange
isinstanceintshaper   r)   tmpr=   r   kr$   p2mylistr7   r8   r9   r:   s   &&       r   original_fftshift>TestFFTShift.test_equal_to_original.<locals>.original_fftshiftZ   s    !*C88D|E$K(D#&&wAIIaL!e\$fRmVBZ%@AA&	 
 Hr   c                :  < 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<   rC   s   &&       r   original_ifftshift?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*   )numpy._corer7   r8   r9   r:   r?   r"   r#   randr   r   r   r   )r   rH   rK   ijaxes_keywordinpr7   r8   r9   r:   s   &      @@@@r   test_equal_to_original#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.   r4   rS   __static_attributes____classdictcell____classdict__s   @r   r   r      s)     7I
A+HZ/U /Ur   r   c                   &   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   fftfreqr   r   r   s   & r   r   TestFFTFreq.test_definition   sv    +!!ckk!n"4a8!!b&3;;q"+="=qA/!"s{{2"6:!"r'CKKB,?"?Cr   rU   NrV   rW   rX   rY   r   rZ   r[   r\   s   @r   r_   r_      s     D Dr   r_   c                   &   a  ] tR t^t o R tRtV tR# )TestRFFTFreqc                   . ROp\        ^	\        P                  ! ^	4      ,          V4       \        ^	\        ,          \        P                  ! ^	\        4      ,          V4       . ROp\        ^
\        P                  ! ^
4      ,          V4       \        ^
\        ,          \        P                  ! ^
\        4      ,          V4       R# )r   N)r   r
   r   r   r   )r   r
   r   r   r      )r   r   rfftfreqr   rb   s   & r   r   TestRFFTFreq.test_definition   sw    !!cll1o"5q9!!b&3<<2+>">B!"s||B'7"7;!"r'CLLR,@"@!Dr   rU   Nrd   r\   s   @r   rf   rf      s     E Er   rf   c                   &   a  ] tR t^t o R tRtV tR# )
TestIRFFTNc                    \         P                  P                  R4      w  rVRV,          ,           pRp\        P                  ! W4R7       R# )r   y              ?r(   N)r             )r   )r"   r#   r   irfftn)r   araiar)   s   &    r   test_not_last_axis_success%TestIRFFTN.test_not_last_axis_success   s8    !!.1bL 	

1 r   rU   N)rV   rW   rX   rY   ru   rZ   r[   r\   s   @r   rl   rl      s     ! !r   rl   )__doc__numpyr"   r   r   numpy.testingr   r   r_   rf   rl   rU   r   r   <module>rz      sF   
   3zU zUzD DE E	! 	!r   