
    Kh                     |    S r SSKrSSKJr  SSKJr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)assert_array_almost_equal)fftpic                   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      M/var/www/html/env/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)	z[Test that the new (>=v1.15) implementation (see #10073) is equal to the original (<=v1.14) r   )asarrayconcatenatearange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mylistr;   r9   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inpr;   r9   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"2A6!!B$s{{1b'9"91=/!"S[[_"4a8!"R%B(;";Q?r   rX   NrY   rZ   r[   r\   r   r]   rX   r   r   r_   r_      s    @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    !!CLLO"3Q7!!B$s||Ar':":A>!"S\\"%5"5q9!"R%R(<"<a@r   rX   Nrf   rX   r   r   rh   rh      s    A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J 	

1 r   rX   N)rY   rZ   r[   r\   rw   r]   rX   r   r   rn   rn      s    !r   rn   )__doc__numpyr#   numpy.testingr   r   r   r   r_   rh   rn   rX   r   r   <module>r|      sF   
  3 zU zUz@ @A A	! 	!r   