
    *i
                     |    S r SSKrSSKJrJr  SSKJr   " S S5      r " S S5      r " S	 S
5      r	 " S S5      r
g)zfTest functions for fftpack.helper module

Copied from fftpack.helper by Pearu Peterson, October 2005

    N)fftpi)assert_array_almost_equalc                   2    \ rS rSrS rS rS rS rS rSr	g)	TestFFTShift   c                 $   / SQn/ SQn[        [        R                  " U5      U5        [        [        R                  " U5      U5        / SQn/ SQn[        [        R                  " U5      U5        [        [        R                  " U5      U5        g )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      Y/var/www/html/ai-backend/venv/lib/python3.13/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                     S HW  n[         R                  R                  U45      n[        [        R                  " [        R
                  " U5      5      U5        MY     g )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                    / SQ/ SQ/ SQ/n/ SQ/ SQ/ SQ/n[        [        R                  " USS9U5        [        [        R                  " US	S9[        R                  " US
S95        [        [        R                  " USS9U5        [        [        R                  " US	S9[        R                  " US
S95        [        [        R                  " U5      U5        [        [        R                  " U5      U5        g )N)r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   axesr   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                    SS/SS/SS//nSS/SS/SS//n[        [        R                  " USS9U5        [        [        R                  " USS9U5        [        [        R                  " USS9U5        [        [        R                  " US/S9U5        SS/SS/SS//n[        [        R                  " USS9U5        [        [        R                  " USS9U5        SS/SS/SS//n[        [        R                  " US	S9U5        [        [        R                  " US	S9U5        [        [        R                  " USS/S9U5        [        [        R                  " USS/S9U5        [        [        R                  " US
S9U5        [        [        R                  " US
S9U5        [        [        R                  " U5      U5        [        [        R                  " U5      U5        g
)z0Test 2D input, which has uneven dimension sizes r   r   r   r   r      r*   r,   r)   Nr   )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           
        ^^^	^
 SSK JmJmJm	Jm
  SUUU	U
4S jjnSUUU	U
4S jjn[        S5       H  n[        S5       Hw  nS Hn  n[        R                  R                  X45      n[        [        R                  " Xe5      U" Xe5      5        [        [        R                  " Xe5      U" Xe5      5        Mp     My     M     g)	zFTest the new (>=v1.15) and old implementations are equal (see #10073) r   )arangeasarrayconcatenatetakeNc                   > T
" U 5      nUR                   nUc  [        [        U5      5      nO[        U[        5      (       a  U4nUnU H9  nUR
                  U   nUS-   S-  nT" T	" Xv5      T	" U5      45      nT" XHU5      nM;     U$ )z%How fftshift was implemented in v1.14r   r   ndimlistrange
isinstanceintshaper   r+   tmpr?   r   kr%   p2mylistr9   r:   r;   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                   > T
" U 5      nUR                   nUc  [        [        U5      5      nO[        U[        5      (       a  U4nUnU H;  nUR
                  U   nXfS-   S-  -
  nT" T	" Xv5      T	" U5      45      nT" XHU5      nM=     U$ )z'How ifftshift was implemented in v1.14 r   r   r>   rE   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      )r   r   Nr,   r)   )N)numpy._corer9   r:   r;   r<   rA   r#   r$   randr   r   r   r   )r   rJ   rM   ijaxes_keywordinpr9   r:   r;   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/   r6   rV   __static_attributes__rX   r   r   r   r      s     7I
A+HZ/Ur   r   c                       \ rS rSrS rSrg)TestFFTFreq   c                 \   / SQn[        S[        R                  " S5      -  U5        [        S[        -  [        R                  " S[        5      -  U5        / SQn[        S[        R                  " S5      -  U5        [        S[        -  [        R                  " S[        5      -  U5        g )Nr
   r    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   rX   NrY   rZ   r[   r\   r   r]   rX   r   r   r_   r_      s    Dr   r_   c                       \ rS rSrS rSrg)TestRFFTFreq   c                 \   / SQn[        S[        R                  " S5      -  U5        [        S[        -  [        R                  " S[        5      -  U5        / SQn[        S[        R                  " S5      -  U5        [        S[        -  [        R                  " S[        5      -  U5        g )N)r   r   r   r   r   r    )r   r   r   r   r   r2   rb   )r   r   rfftfreqr   rd   s     r   r   TestRFFTFreq.test_definition   sw    !!cll1o"5q9!!b&3<<2+>">B!"s||B'7"7;!"r'CLLR,@"@!Dr   rX   Nrf   rX   r   r   rh   rh      s    Er   rh   c                       \ rS rSrS rSrg)
TestIRFFTN   c                     [         R                  R                  S5      u  pUSU-  -   nSn[        R                  " X4S9  g )N)r   rO          y              ?)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   rX   N)rY   rZ   r[   r\   rw   r]   rX   r   r   rn   rn      s    !r   rn   )__doc__numpyr#   r   r   numpy.testingr   r   r_   rh   rn   rX   r   r   <module>r|      sF   
   3zU zUzD DE E	! 	!r   