+
    /iw                        ^ RI HtHtHtHtHt ^ RIt^ RIHt ^ RI	H
t
HtHtHtHtHtHt ^ RIHtHtHtHtHtHtHtHtHtHt ^ RIt^ RIt^ RIHt . R:Ot . R;Ot!R.t"^.t#R t$R	 t%R
 t&R t'R t(R t)R t*R t+ ! R R4      t, ! R R],4      t- ! R R],4      t. ! R R4      t/ ! R R4      t0 ! R R]04      t1 ! R R]04      t2 ! R R4      t3 ! R  R!]34      t4 ! R" R#]34      t5 ! R$ R%4      t6 ! R& R']64      t7 ! R( R)]64      t8 ! R* R+4      t9 ! R, R-4      t: ! R. R/4      t; ! R0 R14      t< ! R2 R34      t= ! R4 R54      t> ! R6 R74      t?]P                  P                  R8]]].4      R9 4       tBR# )<    )assert_assert_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_array_lessN)raises)ifftfftfftnifftnrfftirfftfft2)
arangearrayasarrayzerosdotexppiswapaxesdoublecdoublerandi  c                     R V RV 2p\        \        P                  P                  W,
          4      V\        P                  P                  V 4      ,          V4       R# )zsize: z  rdt: N)r   nplinalgnorm)xyrtolsizerdterr_msgs   &&&&& \/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/fftpack/tests/test_basic.py_assert_close_in_normr'   #   sA    tfGC5)GbiinnQU+T"))..2C-CWM    c                     \        V !  # Nr   )r#   s   &r&   randomr+   )   s    ;r(   c                     \        V 4      p \        V 4      p\        V\        R 7      p\	        V4      ) R\
        ,          V,          ,          p\        V4       F   p\        \        WC,          4      V 4      W$&   K"  	  V# dtype               @	r   lenr   r   r   r   ranger   r   r    nr!   wis   &    r&   
direct_dftr8   -   s_    
AAAawA	
BrE!GA1X3qs8Q Hr(   c                    \        V 4      p \        V 4      p\        V\        R 7      p\	        V4      R\
        ,          V,          ,          p\        V4       F'  p\        \        WC,          4      V 4      V,          W$&   K)  	  V# r-   r1   r4   s   &    r&   direct_idftr:   7   sb    
AAAawAq	2b57A1X3qs8Q! Hr(   c                 ~    \        V 4      p \        \        V P                  4      4       F  p\	        WR 7      p K  	  V # )axis)r   r3   r2   shaper
   r    r=   s   & r&   direct_dftnr@   A   s1    
Ac!''l# $Hr(   c                 ~    \        V 4      p \        \        V P                  4      4       F  p\	        WR 7      p K  	  V # r<   )r   r3   r2   r>   r	   r?   s   & r&   direct_idftnrB   H   s1    
Ac!''l# $Hr(   c                    \        V 4      p \        V 4      p\        V4      ) R \        ,          V,          ,          p\	        V\
        R7      p\        V^,          ^,           4       Fz  p\        \        WB,          4      V 4      pV'       dF   VP                  V^V,          ^,
          &   ^V,          V8  d   VP                  V^V,          &   Ki  Kk  VP                  V^ &   K|  	  V# )r0   r.   )r   r2   r   r   r   r   r3   r   r   realimag)r    r5   r6   rr7   r!   s   &     r&   direct_rdftrG   O   s    
AAA	
BrE!GAavA1a46]AC!vvAac!eHsQw!A#  66AaD  Hr(   c                    \        V 4      p \        V 4      p\        V\        R 7      p\	        V^,          ^,           4       F  pV'       d   ^V,          V8  dt   V ^V,          ^,
          ,          RV ^V,          ,          ,          ,           W#&   V ^V,          ^,
          ,          RV ^V,          ,          ,          ,
          W!V,
          &   K  V ^V,          ^,
          ,          W#&   K  V ^ ,          V^ &   K  	  \        V4      P                  # )r.                 ?)r   r2   r   r   r3   r:   rD   )r    r5   x1r7   s   &   r&   direct_irdftrK   _   s    
AAA	q	 B1a46]sQw!A#a%2a!f9,AaCE(R!A#Y.Q3!A#a%aDBqE  r?r(   c                   >   a  ] tR t^ot o R tR tR tR tR tRt	V t
R# )_TestFFTBasec                `    R V n         R V n        \        P                  P	                  R4       R # )N  )cdtr$   r   r+   seedselfs   &r&   setup_method_TestFFTBase.setup_methodp   s     
		tr(   c                T   \         P                  ! . ROV P                  R7      p\        V4      p\	        VP
                  V P                  4       \        V4      p\        W#4       \         P                  ! . ROV P                  R7      p\        \        V4      \        V4      4       R# )   r.   NrW               @      ?rW   rY   rZ   y      @       @rW   rY   rZ   y      @           )r   r   rP   r
   r   r/   r8   r   rS   r    r!   y1s   &   r&   test_definition_TestFFTBase.test_definitionu   si    HH,DHH=FQWWdhh']!!'HH^4884!#a&A7r(   c                   \         P                  ! . ROV P                  R7      p\         P                  ! . ROV P                  R7      p\        W.^R7      p\	        VP
                  V P                  4       \	        VP                  R4       \        V^ ,          \        V4      4       \        V^,          \        V4      4       R# rW   r.   r5   NrW   rY   rZ      rY   rf   )
r   r   r$   r
   r   r/   rP   r>   r   r8   rS   rJ   x2r!   s   &   r&   test_n_argument_real!_TestFFTBase.test_n_argument_real~   s|    XXitxx0XXitxx0!QWWdhh'QWWU#!!A$z"~6!!A$z"~6r(   c                   \         P                  ! . ROV P                  R7      p\         P                  ! . ROV P                  R7      p\        W.^R7      p\	        VP
                  V P                  4       \	        VP                  R4       \        V^ ,          \        V4      4       \        V^,          \        V4      4       R# )rW   r.   rd   N)rW   rY   rZ   r[   rg   )	r   r   rP   r
   r   r/   r>   r   r8   rh   s   &   r&   _test_n_argument_complex%_TestFFTBase._test_n_argument_complex   s|    XXl$((3XXl$((3!QWWdhh'QWWU#!!A$z"~6!!A$z"~6r(   c                h    \        \        \        . 4       \        \        \        ^^.^^..R4       R# rW   N)assert_raises
ValueErrorr
   rR   s   &r&   test_invalid_sizes_TestFFTBase.test_invalid_sizes   s(    j#r*j#1qe}b9r(   rP   r$   N)__name__
__module____qualname____firstlineno__rT   r`   rj   rm   rt   __static_attributes____classdictcell____classdict__s   @r&   rM   rM   o   s#     
877: :r(   rM   c                   &   a  ] tR t^t o R tRtV tR# )TestDoubleFFTc                Z    \         P                  V n        \         P                  V n        R # r*   r   
complex128rP   float64r$   rR   s   &r&   rT   TestDoubleFFT.setup_method       ==::r(   rv   Nrw   rx   ry   rz   rT   r{   r|   r}   s   @r&   r   r            r(   r   c                   p   a  ] tR t^t o R tRt]P                  P                  R]R7      R 4       t	Rt
V tR# )TestSingleFFTc                Z    \         P                  V n        \         P                  V n        R # r*   r   	complex64rP   float32r$   rR   s   &r&   rT   TestSingleFFT.setup_method       <<::r(   zusingle-precision FFT implementation is partially disabled, until accuracy issues with large prime powers are resolvedF)runreasonc                    R # r*    rR   s   &r&   test_noticeTestSingleFFT.test_notice   s    r(   rv   N)rw   rx   ry   rz   rT   r   pytestmarkxfailr   r{   r|   r}   s   @r&   r   r      s:     KF [[50 1r(   r   c                   ,   a  ] tR t^t o R tR tRtV tR# )TestFloat16FFTc                H   \         P                  ! . RO\         P                  R7      p\        V^R7      p\	        VP
                  \         P                  4       \	        VP                  R4       \        V\        VP                  \         P                  4      4      4       R# )rW   r.   rd   Nre   )rf   r   r   float16r
   r   r/   r   r>   r   r8   astyper   )rS   rJ   r!   s   &  r&   test_1_argument_real#TestFloat16FFT.test_1_argument_real   s]    XXl"**5aLQWWbll+QWWe$!!Z		"**0E%FGr(   c                   \         P                  ! . RO\         P                  R7      p\         P                  ! . RO\         P                  R7      p\        W.^R7      p\	        VP
                  \         P                  4       \	        VP                  R4       \        V^ ,          \        VP                  \         P                  4      4      4       \        V^,          \        VP                  \         P                  4      4      4       R# rc   r   rh   s   &   r&   rj   #TestFloat16FFT.test_n_argument_real   s    XXl"**5XXl"**5AQWWbll+QWWf%!!A$
299RZZ3H(IJ!!A$
299RZZ3H(IJr(   r   N)rw   rx   ry   rz   r   rj   r{   r|   r}   s   @r&   r   r      s     HK Kr(   r   c                   J   a  ] tR t^t o R tR tR tR tR tR t	R t
RtV tR	# )
_TestIFFTBasec                D    \         P                  P                  R 4       R# rO   Nr   r+   rQ   rR   s   &r&   rT   _TestIFFTBase.setup_method       
		tr(   c                P   \         P                  ! . ROV P                  4      p\        V4      p\	        V4      p\        VP                  V P                  4       \        W#4       \         P                  ! . ROV P                  4      p\        \        V4      \	        V4      4       R# )rW   NrX   r\   )r   r   rP   r	   r:   r   r/   r   r^   s   &   r&   r`   _TestIFFTBase.test_definition   si    HH,dhh7G^QWWdhh'!!'HH^TXX.!$q'+a.9r(   c                   \         P                  ! . ROV P                  4      p\        V4      p\	        VP
                  V P                  4       \        V4      p\        W#4       \         P                  ! . ROV P                  R7      p\	        VP
                  V P                  4       \        \        V4      \        V4      4       R# )rW   r.   NrW   rY   rZ   rf   rW   rY   rZ   rf   rW   rY   rZ   rf   r]   )	r   r   r$   r	   r   r/   rP   r:   r   r^   s   &   r&   test_definition_real"_TestIFFTBase.test_definition_real   s{    HH&1GQWWdhh'^!!'HH[1QWWdhh'!$q'+a.9r(   c                   R F  p\        V.4      P                  V P                  4      p\        V.4      P                  V P                  4      RV,          ,           p\        \	        V4      4      p\	        \        V4      4      p\        VP                  V P                  4       \        VP                  V P                  4       \        W24       \        WB4       K  	  R# )rW   rI   N	rW   3   o   d      @         i   )r+   r   rP   r	   r
   r   r/   r   rS   r#   r    r_   y2s   &    r&   test_random_complex!_TestIFFTBase.test_random_complex   s    6Dv%%dhh/Av%%dhh/"Q$6Ac!fBT!WB488,488,%b,%b, 7r(   c                ^   R F  p\        V.4      P                  V P                  4      p\        \	        V4      4      p\	        \        V4      4      p\        VP                  V P                  4       \        VP                  V P                  4       \        W24       \        WB4       K  	  R# )rW   Nr   )	r+   r   r$   r	   r
   r   r/   rP   r   r   s   &    r&   test_random_real_TestIFFTBase.test_random_real   st    6Dv%%dhh/Ac!fBT!WB488,488,%b,%b, 7r(   c                R   V P                   \        P                  8X  d   R pM!V P                   \        P                  8X  d   Rp\        \
        ,            EFM  p\        P                  P                  R4       \        P                  P                  V4      P                  V P                   4      p\        \        V4      4      p\        W4XW P                   4       \        \        V4      4      p\        W4WV P                   4       VR\        P                  P                  V4      ,          ,           P                  V P                  4      p\        \        V4      4      p\        W4WV P                   4       \        \        V4      4      p\        W4WV P                   4       EKP  	  R# )h㈵>绽|=rO   rI   N)r$   r   r   r   LARGE_COMPOSITE_SIZESLARGE_PRIME_SIZESr+   rQ   r   r   r	   r
   r'   rP   rS   r"   r#   r    r!   s   &    r&   test_size_accuracy _TestIFFTBase.test_size_accuracy   s   88rzz!DXX#D),===DIINN4 		t$++DHH5ASVA!!dHH=DGA!!DHH=R		t,,,44TXX>ASVA!!DHH=DGA!!DHH= >r(   c                h    \        \        \        . 4       \        \        \        ^^.^^..R4       R# rp   )rr   rs   r	   rR   s   &r&   rt    _TestIFFTBase.test_invalid_sizes   (    j$+j$!A!ur:r(   r   N)rw   rx   ry   rz   rT   r`   r   r   r   r   rt   r{   r|   r}   s   @r&   r   r      s-     :	:	-->*; ;r(   r   c                   &   a  ] tR tRt o R tRtV tR# )TestDoubleIFFTi  c                Z    \         P                  V n        \         P                  V n        R # r*   r   rR   s   &r&   rT   TestDoubleIFFT.setup_method  r   r(   rv   Nr   r}   s   @r&   r   r     r   r(   r   c                   &   a  ] tR tRt o R tRtV tR# )TestSingleIFFTi	  c                Z    \         P                  V n        \         P                  V n        R # r*   r   rR   s   &r&   rT   TestSingleIFFT.setup_method
  r   r(   rv   Nr   r}   s   @r&   r   r   	  r   r(   r   c                   R   a  ] tR tRt o R tR tR t ! R R4      tR tR t	R	t
V tR
# )_TestRFFTBasei  c                D    \         P                  P                  R 4       R# r   r   rR   s   &r&   rT   _TestRFFTBase.setup_method  r   r(   c                    . RO. RO3 Fe  p\         P                  ! WP                  R7      p\        V4      p\	        V4      p\        W44       \        VP                  V P                  4       Kg  	  R# )rW   r.   Nr   	rW   rY   rZ   rf   rW   rY   rZ   rf   r]   )r   r   r$   r   rG   r   r   r/   )rS   tr    r!   r_   s   &    r&   r`   _TestRFFTBase.test_definition  sQ    *,GHA((+AQAQB%a+$((+ Ir(   c                h    \        \        \        . 4       \        \        \        ^^.^^..R4       R# rp   )rr   rs   r   rR   s   &r&   rt    _TestRFFTBase.test_invalid_sizes  r   r(   c                   ,   a  ] tR tRt o R tR tRtV tR# )_TestRFFTBase.MockSeriesi   c                <    \         P                  ! V4      V n        R # r*   )r   r   datarS   r   s   &&r&   __init__!_TestRFFTBase.MockSeries.__init__!  s    

4(DIr(   c                v     \        V P                  V4      #   \         d   p\        R T R24      ThRp?ii ; i)z&'MockSeries' object has no attribute ''N)getattrr   AttributeError)rS   itemes   && r&   __getattr__$_TestRFFTBase.MockSeries.__getattr__$  sO    Ktyy$//! K$ &;;?&&C DIJKKs    838)r   N)rw   rx   ry   rz   r   r   r{   r|   r}   s   @r&   
MockSeriesr      s     	)	K 	Kr(   r   c                    \         P                  ! . RO4      p\        P                  V4      p. ROp\	        V4       \        W4       \        VP                  V4       R# )      ?N)r   g       @g      @g      @g      @r   )r   r   r   r   r   r   r   )rS   r    xsexpecteds   &   r&   test_non_ndarray_with_dtype)_TestRFFTBase.test_non_ndarray_with_dtype+  sE    HH)*%%a("R 	Q!RWWh'r(   c           	     x    \        \        \        \        P                  ! ^\        P
                  R7      4       R# rf   r.   N)rr   	TypeErrorr   r   r   r   rR   s   &r&   test_complex_input _TestRFFTBase.test_complex_input6  s    iryy",,'GHr(   r   N)rw   rx   ry   rz   rT   r`   rt   r   r   r   r{   r|   r}   s   @r&   r   r     s1     ,;
	K 	K	(I Ir(   r   c                   &   a  ] tR tRt o R tRtV tR# )TestRFFTDoublei:  c                Z    \         P                  V n        \         P                  V n        R # r*   r   rR   s   &r&   rT   TestRFFTDouble.setup_method;  r   r(   rv   Nr   r}   s   @r&   r   r   :  r   r(   r   c                   &   a  ] tR tRt o R tRtV tR# )TestRFFTSinglei@  c                Z    \         P                  V n        \         P                  V n        R # r*   r   rR   s   &r&   rT   TestRFFTSingle.setup_methodA  r   r(   rv   Nr   r}   s   @r&   r   r   @  r   r(   r   c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
_TestIRFFTBaseiF  c                D    \         P                  P                  R 4       R# r   r   rR   s   &r&   rT   _TestIRFFTBase.setup_methodG  r   r(   c                T   a  . ROp. ROp. ROp. ROpV 3R lpV! W4       V! W44       R# )rW   c                 $  < \        \        P                  ! V SP                  R 7      4      p\	        V 4      p\        VP                  SP                  4       \        W#SP                  R7       \        V\        V4      SP                  R7       R# )r.   )decimalN)
r   r   r   r$   rK   r   r/   r   ndecr	   )r    xrr!   r_   rS   s   &&  r&   _test-_TestIRFFTBase.test_definition.<locals>._testP  sY    bhhq12AaB$((+%aDII>%aR$))Dr(   Nr   )rW          @      @r[   r  rf          @            @      r  r   )	rW   r  r[   r  y      @      @y      @      r  r  r  r   )rS   rJ   x1_1ri   x2_1r  s   f     r&   r`   _TestIRFFTBase.test_definitionJ  s-    2 :	E 	bbr(   c                   R F  p\        V.4      P                  V P                  4      p\        \	        V4      4      p\	        \        V4      4      p\        VP                  V P                  4       \        VP                  V P                  4       \        W2V P                  RV 2R7       \        WBV P                  RV 2R7       K  	  R# )rW   zsize=)r  r%   Nr   )	r+   r   r$   r   r   r   r/   r   r	  r   s   &    r&   r   _TestIRFFTBase.test_random_realZ  s    6Dv%%dhh/AtAwBeAhB488,488,%bTYY%PTvW%bTYY%PTvW 7r(   c                   V P                   \        P                  8X  d   R pM!V P                   \        P                  8X  d   Rp\        \
        ,            F  p\        P                  P                  R4       \        P                  P                  V4      P                  V P                   4      p\        \        V4      4      p\        W4XW P                   4       \        \        V4      4      p\        W4WV P                   4       K  	  R# )r   r   rO   N)r$   r   r   r   r   r   r+   rQ   r   r   r   r   r'   r   s   &    r&   r   !_TestIRFFTBase.test_size_accuracyd  s    88rzz!DXX#D),===DIINN4 		t$++DHH5Ad1gA!!dHH=U1XA!!DHH= >r(   c                h    \        \        \        . 4       \        \        \        ^^.^^..R4       R# rp   )rr   rs   r   rR   s   &r&   rt   !_TestIRFFTBase.test_invalid_sizess  s(    j%,j%1Q%1;r(   c           	     x    \        \        \        \        P                  ! ^\        P
                  R7      4       R# r   )rr   r   r   r   r   r   rR   s   &r&   r   !_TestIRFFTBase.test_complex_inputw  s    i		!2<<(HIr(   r   N)rw   rx   ry   rz   rT   r`   r   r   rt   r   r{   r|   r}   s   @r&   r  r  F  s+      X><J Jr(   r  c                   &   a  ] tR tRt o R tRtV tR# )TestIRFFTDoublei~  c                h    \         P                  V n        \         P                  V n        ^V n        R# )   N)r   r   rP   r   r$   r	  rR   s   &r&   rT   TestIRFFTDouble.setup_method  s    ==::	r(   rP   r	  r$   Nr   r}   s   @r&   r  r  ~  s      r(   r  c                   &   a  ] tR tRt o R tRtV tR# )TestIRFFTSinglei  c                h    \         P                  V n        \         P                  V n        ^V n        R# )r]   N)r   r   rP   r   r$   r	  rR   s   &r&   rT   TestIRFFTSingle.setup_method  s    <<::	r(   r   Nr   r}   s   @r&   r"  r"    s      r(   r"  c                   2   a  ] tR tRt o R tR tR tRtV tR# )Testfft2i  c                D    \         P                  P                  R 4       R# r   r   rR   s   &r&   rT   Testfft2.setup_method  r   r(   c                    \         P                  ! R4      p\        VRRR7      p\         P                  P	                  VRRR7      p\        W#4       R# )z-FFT returns wrong result with axes parameter.r>   axes)sr+  Nrf   rf   rY      r/  )numpyonesr   r
   r   r   rS   r    r!   y_rs   &   r&   test_regression_244Testfft2.test_regression_244  s@     JJy!&x0iinnQ&xn8!!)r(   c                j    \        \        \        . .4       \        \        \        ^^.^^..R4       R# )rW   Nrf   r1  )rr   rs   r   rR   s   &r&   rt   Testfft2.test_invalid_sizes  s+    j$-j$!Q!Q(8'Br(   r   N)	rw   rx   ry   rz   rT   r7  rt   r{   r|   r}   s   @r&   r&  r&    s     *C Cr(   r&  c                   z  a  ] tR tRt o R tR t]P                  P                  R]	]
,           4      R 4       t]P                  P                  R]],           4      R 4       tR t]P                  P                  R]	]
,           4      R 4       t]P                  P                  R]],           4      R	 4       tR
tV tR# )TestFftnSinglei  c                D    \         P                  P                  R 4       R# r   r   rR   s   &r&   rT   TestFftnSingle.setup_method  r   r(   c                :   . RO. RO. RO.p\        \        P                  ! V\        P                  4      4      p\	        VP
                  \        P                  8H  RR7       \        P                  ! \        V4      \        P                  4      p\        W#4       R# )rW   z-double precision output with single precision)msgNrW   rY   rZ   rf   r]         r/  	   )r   r   r   r   r   r/   r   r   r5  s   &   r&   r`   TestFftnSingle.test_definition  sj     !RZZ()2<<'C	E hhtAw-&q.r(   r#   c                   \         P                  P                  R 4      pVP                  W34      RVP                  W34      ,          ,           p\        VP                  P                  \         P                  4      4      p\        VP                  P                  \         P                  4      4      P                  \         P                  4      p\        VP                  \         P                  4       \        WER4       R# rO   rI     Nr   r+   default_rngr   rD   r   r   r   r   r   r/   r   rS   r#   rngr    r_   r   s   &&    r&   test_size_accuracy_small'TestFftnSingle.test_size_accuracy_small  s    ii##D)JJ|$r#**d\*B'BB!&&--

+,!&&--

+,33BLLARXXr||,&rt4r(   c                   \         P                  P                  R 4      pVP                  ! V^34      RVP                  ! V^34      ,          ,           p\        VP                  P                  \         P                  4      4      p\        VP                  P                  \         P                  4      4      P                  \         P                  4      p\        VP                  \         P                  4       \        WER4       R# rJ  rL  )rS   r#   r   r    r_   r   s   &&    r&   test_size_accuracy_large'TestFftnSingle.test_size_accuracy_large  s    yy$$T*KKq	"RT1I(>%>>!&&--

+,!&&--

+,33BLLARXXr||,&rt4r(   c                2   . RO. RO. RO.p\        \        P                  ! V\        P                  4      4      p\	        VP
                  \        P                  4       \        P                  ! \        V4      \        P                  4      p\        W#4       R# )rW   NrB  rC  rE  )r   r   r   r   r   r/   r   r   r5  s   &   r&   test_definition_float16&TestFftnSingle.test_definition_float16  s_     !RZZ()QWWbll+hhtAw-&q.r(   c                   \         P                  P                  R 4      pVP                  W34      RVP                  W34      ,          ,           p\        VP                  P                  \         P                  4      4      p\        VP                  P                  \         P                  4      4      P                  \         P                  4      p\        VP                  \         P                  4       \        WER4       R# )rO   rI   g    ANr   r+   rM  r   rD   r   r   r   r   r   r/   r   rN  s   &&    r&   test_float16_input_small'TestFftnSingle.test_float16_input_small  s    ii##D)JJ|$rCJJ|,D'DD!&&--

+,!&&--

+,33BLLARXXr||,&rs3r(   c                
   \         P                  P                  R 4      pVP                  V^34      RVP                  V^34      ,          ,           p\        VP                  P                  \         P                  4      4      p\        VP                  P                  \         P                  4      4      P                  \         P                  4      p\        VP                  \         P                  4       \        WER4       R# )rO   rI   g    >ANrY  rN  s   &&    r&   test_float16_input_large'TestFftnSingle.test_float16_input_large  s    ii##D)JJay!Bszz4)'<$<<!&&--

+,!&&--

+,33BLLARXXr||,&rs3r(   r   N)rw   rx   ry   rz   rT   r`   r   r   parametrizeSMALL_COMPOSITE_SIZESSMALL_PRIME_SIZESrP  r   r   rS  rV  rZ  r]  r{   r|   r}   s   @r&   r=  r=    s     	/ [[V%:=N%NO5 P5 [[V%:=N%NO5 P5/ [[V%:=N%NO4 P4 [[V%:=N%NO4 P4r(   r=  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestFftni  c                D    \         P                  P                  R 4       R# r   r   rR   s   &r&   rT   TestFftn.setup_method  r   r(   c                    . RO. RO. RO.p\        V4      p\        V\        V4      4       \        R4      p\        \        V4      \        V4      4       \        R4      p\        \        V4      \        V4      4       R# )rW   NrB  rC  rE        r]   rf   rZ   rh  )r   r   r@   r+   rS   r    r!   s   &  r&   r`   TestFftn.test_definition  sc     G!![^48!$q';q>:=!!$q';q>:r(   c           
     >   . RO. RO. RO.p. RO. RO. R	O.p. R
O. RO. RO.p. RO. RO. R
O.p. RO. RO. RO.p. RO. R	O. RO.p. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.p	. RO. RO. RO.p
. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.p. RO. RO. RO.pWxV	.pWV.pVVV.pWEV.pWV.p\        WV.4      p\        \        V4      \        VR"R7      4       \        \        V4      \        VR#R7      4       \        \        VR$R7      \        VR%R7      4       \        VR&R7      p\        \        VR!R4      \        V4      4       \        VR'R7      p\        \        \        VR!R4      R!R 4      \        V4      4       \        VR(R7      p\        \        \        VR!R4      RR 4      \        V4      4       \        VR)R7      p\        \        VR R4      \        V4      4       \        VR*R7      p\        \        VR R!4      \        V4      4       \        VR+R7      p\        \        V4      V^ ,          4       \        \        V4      V^,          4       \        \        V4      V^,          4       \        VR,R7      p\        \        V4      V^ ,          4       \        \        V4      V^,          4       \        \        V4      V^,          4       \        VR-R7      p\        \        VR.,          4      VR.,          4       \        \        VR/,          4      VR/,          4       \        \        VR0,          4      VR0,          4       \        VR1R7      p\        \        VR2,          4      VR2,          4       \        \        VR3,          4      VR3,          4       \        \        VR4,          4      VR4,          4       \        VR5R7      p\        \        V4      \        V^ ,          R R!4      4       \        \        V4      \        V^,          R R!4      4       \        \        V4      \        V^,          R R!4      4       \        VR6R7      p\        \        V4      \        VR2,          R!R 4      4       \        \        V4      \        VR3,          R!R 4      4       \        \        V4      \        VR4,          R!R 4      4       \        VR7R7      p\        \        V4      \        VR.,          R!R 4      4       \        \        V4      \        VR/,          R!R 4      4       \        \        V	4      \        VR0,          R!R 4      4       \        VR8R7      p\	        ^4       F>  p\	        ^4       F,  p\        \        VVVR3,          4      VVVR3,          4       K.  	  K@  	  \        VR9R7      p\	        ^4       F>  p\	        ^4       F,  p\        \        VVRV3,          4      VVRV3,          4       K.  	  K@  	  \        VR:R7      p\	        ^4       F>  p\	        ^4       F,  p\        \        VRVV3,          4      VRVV3,          4       K.  	  K@  	  \        VR;R7      p\        VV4       R# )<rW   r+  NNNNrB  rC  rE  )
         )   r     )         )   rh     )         )   ri     )rW   rp  rx  )rf   rs  rz  )rF  ru  r}  )rY   rq  rh  )r]   r  r{  )r/  rv  ri  )rZ   rr  ry  )rD  rt  r|  )rG  rw  r~  )rW   rf   rF  )rp  rs  ru  )rx  rz  r}  )rY   r]   r/  )rq  r  rv  )rh  r{  ri  )rZ   rD  rG  )rr  rt  rw  )ry  r|  r~  r1  r2  )r1  r2  r  r   rW   rY   )r   rY   )r   r  )rY   rW   r   )rY   r   rW   )rW   rY   r   )rW   r   rY   )r   rY   rW   r2  r  rW   rY   r0  )ro  ro  r   )ro  ro  rW   )ro  ro  rY   )r1  r  )ro  r   ro  )ro  rW   ro  )ro  rY   ro  r  r2  )r  r1  )r2  r1  r  r2  r   r   )r   r   r   r   r3   r
   )rS   plane1plane2plane3	ki_plane1	ki_plane2	ki_plane3	jk_plane1	jk_plane2	jk_plane3	kj_plane1	kj_plane2	kj_plane3	ij_plane1	ij_plane2	ij_plane3	ik_plane1	ik_plane2	ik_plane3	ijk_space	ikj_space	jik_space	jki_space	kij_spacer    r!   r7   js   &                           r&   test_axes_argumentTestFftn.test_axes_argument  s        !!#	 !!#	 !!#	 !  "	 !  "	 !  "	 !<1	!<1	!<1	 	 "!!#	 "!!#	 !  "	 !  "	 !  "	 95	95		95	95	95	66*+!$q'"&q|"<	>!$q'4	+BC!$qv"6QW8MN#!(1b""5tIG#!(8Ar2+>B"G"&y/	3#!(8Ar2+>B"G"&y/	3#!(1b""5tIG#!(1b""5tIG"!$v,!5!$v,!5!$v,!5 !$v,!5!$v,!5!$v,!5"!$qz"2AgJ?!$qz"2AgJ?!$qz"2AgJ?"!$qz"2AgJ?!$qz"2AgJ?!$qz"2AgJ?"!$y/8AaD"b3IJ!$y/8AaD"b3IJ!$y/8AaD"b3IJ"!$y/"*1W:r2">	@!$y/"*1W:r2">	@!$y/"*1W:r2">	@ "!$y/"*1W:r2">	@!$y/"*1W:r2">	@!$y/"*1W:r2">	@ qA1X)#a1aj/1Q1W:F   qA1X)#a1aj/1Q1W:F   qA1X)#a1aj/1Q1W:F   !!Q'r(   c                    . RO. RO.p. RO. RO. RO. RO.p\        VRR7      p\        V\        V4      4       \        VR	R7      p\        V\        VRR
 4      4       R# )rW   r>   NrB  rC  rW   rY   rZ   r   rf   r]   rD  r   r   r   r   r   rf   rf   )rZ   rf   r  )r   r   rS   small_xlarge_x1r!   s   &   r&   test_shape_argumentTestFftn.test_shape_argumentv  s_        "
 '!!T(^4'!!T(3B-%89r(   c                   . RO. RO. RO.p\        . RO. RO. RO. R	O.4      p\        VR
RR7      p\        V\        V4      4       \        VR
RR7      p\        V\        \        \        VRR4      4      RR4      4       R# )rW   r*  NrB  rC  rE  r  r  )rF  r/  rG  r   r  r  r2  r  r  r  )r   r   r   r   r  s   &   r&   test_shape_axes_argument!TestFftn.test_shape_axes_argument  s     ,&&&( ) X6!!T(^4X6!!X(B+,b"&6 	7r(   c           	        \         P                  P                  R4      p\        VRRR7      p\        V\	        VR^R7      4       \         P                  P                  R4      p\        VR
RR7      p\        V\	        VR	^R7      4       \         P                  P                  R4      p\        VRRR7      p\        V\         P                  P                  VRRR7      4       R# )rp  )r+  r>   )r=   r5   )r+  r,  N)rp  r]   rZ   rF  r  r  )r/  r2  r  r-  r0  r.  )r3  r+   r   r   r
   rk  s   &  r&   test_shape_axes_argument2"TestFftn.test_shape_axes_argument2  s    LL.d+!!Sq%9: LL.d+!!Sq%9: LL	*0!!"'))..V."L	Nr(   c                    \        R4      p\        \        RR7      ;_uu_ 4        \        VRR7       RRR4       R#   + '       g   i     R# ; i)rf   zBwhen given, axes and shape arguments have to be of the same lengthmatchr  Nr-  )r/  r/  rY   rW   )r   rr   rs   r   )rS   r    s   & r&   test_shape_argument_more!TestFftn.test_shape_argument_more  sA    ):"<= = ,'= = = =s	   =A	c                   \        \        R R7      ;_uu_ 4        \        . .4       RRR4       \        \        RR7      ;_uu_ 4        \        ^^.^^..R4       RRR4       R#   + '       g   i     LF; i  + '       g   i     R# ; iz4invalid number of data points \(\[1, 0\]\) specifiedr  Nz5invalid number of data points \(\[4, -3\]\) specifiedr:  )rr   rs   r   rR   s   &r&   rt   TestFftn.test_invalid_sizes  sz    :"67 7 "J7
 :"78 8 1a&1a&!7+8 87 7
8 8 8   A%A8%A5	8B		r   N)rw   rx   ry   rz   rT   r`   r  r  r  r  r  rt   r{   r|   r}   s   @r&   rc  rc    s5     ;D(L:7N"(	, 	,r(   rc  c                   b  a  ] tR tRt o RtRtR t]P                  P                  R]
P                  ]
P                  R3]
P                  ]
P                  R3.4      R 4       t]P                  P                  RRR.4      ]P                  P                  R	. RO4      R
 4       4       tR tRtV tR# )	TestIfftni  Nc                D    \         P                  P                  R 4       R# r   r   rR   s   &r&   rT   TestIfftn.setup_method  r   r(   zdtype,cdtype,maxnlprK  i  c                   \         P                  P                  R 4      p\         P                  ! . RO. RO. RO.VR7      p\	        V4      p\        VP                  V4       \        V\        V4      V4       VP                  R4      p\        \	        V4      \        V4      V4       VP                  R4      p\        \	        V4      \        V4      V4       R# )rO   r.   NrB  rC  rE  rg  rj  )	r   r+   rM  r   r   r   r/   r   rB   )rS   r/   cdtypemaxnlprO  r    r!   s   &&&&   r&   r`   TestIfftn.test_definition  s     ii##D)HHi!(-/ !HQWWf%&q,q/6BJJx &uQxa&IJJ}%&uQxa&Ir(   r  r#   c                   \         P                  P                  R 4      pVP                  W".4      RVP                  W".4      ,          ,           p\        \	        \        V4      4      WA4       \        \        \	        V4      4      WA4       R# )rO   rI   N)r   r+   rM  r   r   r   )rS   r  r#   rO  r    s   &&&  r&   r   TestIfftn.test_random_complex  sa     ii##D)JJ|$rCJJ|,D'DD&uT!W~qA&tE!H~qAr(   c                   \        \        R R7      ;_uu_ 4        \        . .4       RRR4       \        \        RR7      ;_uu_ 4        \        ^^.^^..R4       RRR4       R#   + '       g   i     LF; i  + '       g   i     R# ; ir  )rr   rs   r   rR   s   &r&   rt   TestIfftn.test_invalid_sizes  sz    :"67 7 2$K7
 :"78 8 Aq6Aq6"G,8 87 7
8 8 8r  r   )rW   rY   r       r   \   )rw   rx   ry   rz   r/   r  rT   r   r   r_  r   r   r   r   r   r`   r   rt   r{   r|   r}   s   @r&   r  r    s     EF [[2!zz2==$?!zz2<<>@AJAJ [[Xd|4[[V%;<B = 5B	- 	-r(   r  c                   &   a  ] tR tRt o R tRtV tR# )	FakeArrayi  c                4    Wn         VP                  V n        R # r*   )_data__array_interface__r   s   &&r&   r   FakeArray.__init__  s    
#'#;#; r(   )r  r  N)rw   rx   ry   rz   r   r{   r|   r}   s   @r&   r  r    s     < <r(   r  c                   0   a  ] tR tRt o R tRR ltRtV tR# )
FakeArray2i  c                    Wn         R # r*   r  r   s   &&r&   r   FakeArray2.__init__  s    
r(   Nc                    V P                   # r*   r  )rS   r/   copys   &&&r&   	__array__FakeArray2.__array__  s    zzr(   r  )NN)rw   rx   ry   rz   r   r  r{   r|   r}   s   @r&   r  r    s      r(   r  c                     a  ] tR tRt o Rt]P                  ]P                  3t]]P                  ]P                  3,           t. ROtR tR t]P                   P#                  R]4      ]P                   P#                  R]4      ]P                   P#                  RRR	.4      ]P                   P#                  R
. RO4      R 4       4       4       4       t]P                   P#                  R]4      ]P                   P#                  R]4      ]P                   P#                  RRR	.4      ]P                   P#                  R
. RO4      R 4       4       4       4       tR t]P                   P#                  R]4      ]P                   P#                  RRR	.4      ]P                   P#                  R
. RO4      R 4       4       4       tRtV tR# )TestOverwritei  z4Check input overwrite behavior of the FFT functions.c                   VP                  4       pR  \        \        3 Fc  pV! V! V4      W4VR7       VP                   RVP                   VP
                  : RV: RV: RV: R2pV'       d   KS  \        WaRV 2R7       Ke  	  R	# )
c                     V # r*   r   )r    s   &r&   <lambda>&TestOverwrite._check.<locals>.<lambda>  s    qr(   overwrite_x(z, z, axis=z, overwrite_x=)zspurious overwrite in )r%   N)r  r  r  rw   r/   r>   r   )	rS   r    routinefftsizer=   r  ri   fakesigs	   &&&&&&   r&   _checkTestOverwrite._check  s    VVX )Z8DDHgE&&'q	!''Bwk J(.qBC;R.DSE,JK 9r(   c                   \         P                  P                  R 4       \         P                  ! V\         P                  4      '       dJ   \         P                  P
                  ! V!  R\         P                  P
                  ! V!  ,          ,           pM\         P                  P
                  ! V!  pVP                  V4      pV P                  WWdVR7       R# )rO   rI   r  N)r   r+   rQ   
issubdtypecomplexfloatingrandnr   r  )	rS   r  r/   r>   r=   overwritable_dtypesr  r  r   s	   &&&&&&&& r&   	_check_1dTestOverwrite._check_1d  s    
		t== 2 23399??E*R		0G-GGD99??E*D{{5!D7 + 	 	-r(   r/   r  r  TFz
shape,axesc           	         \         P                  \         P                  3pV P                  \        WWVW#4       V P                  \
        WWVW#4       R # r*   )r   r   r   r  r
   r	   rS   r/   r  r  r>   r+  overwritables   &&&&&& r&   test_fft_ifftTestOverwrite.test_fft_ifft  s@     r||4sE$	-tU4	-r(   c           	     ~    V P                   pV P                  \        WWVW#4       V P                  \        WWVW#4       R # r*   )real_dtypesr  r   r   r  s   &&&&&& r&   test_rfft_irfftTestOverwrite.test_rfft_irfft  s9     ''ueD	-tU4	-r(   c           	       a
 \         P                  P                  R 4       \         P                  ! V\         P                  4      '       dJ   \         P                  P
                  ! V!  R\         P                  P
                  ! V!  ,          ,           pM\         P                  P
                  ! V!  pVP                  V4      pV
3R lo
Vf   TpM\        \         P                  ! W44      4      pS
! V4       FI  p	V P                  WqWVR7       VP                  ^8  g   K*  V P                  VP                  WVVR7       KK  	  R# )rO   rI   c              3      <"   \        V 4      ^ 8:  d   Rx  R# V ^ ,          ^,          V ^ ,          V ^ ,          ^,          3 F%  pS! V R,          4       F  pV3V,           x  K  	  K'  	  R# 5i)r   :rW   NNNr   )r2   )shpr  restfftshape_iters   &  r&   r  2TestOverwrite._check_nd_one.<locals>.fftshape_iter2  sZ     3x1}a&!)SVSVAX6A -c"g 6 dTk) !7 7s   A*A-Nr  )r   r+   rQ   r  r  r  r   tupletaker  ndimT)rS   r  r/   r>   r+  r  r  r   
part_shapefftshaper  s   &&&&&&&   @r&   _check_nd_oneTestOverwrite._check_nd_one)  s    
		t== 2 23399??E*R		0G-GGD99??E*D{{5!	* <Jrwwu34J%j1HKKx$/  1yy1}DFFGt(3  5	 2r(   Nc                    \         P                  \         P                  3pV P                  \        WWEV4       V P                  \
        WWEV4       R # r*   )r   r   r   r  r   r   )rS   r/   r  r>   r+  r  s   &&&&& r&   test_fftn_ifftnTestOverwrite.test_fftn_ifftnF  sD      r||44t&	(5%&	(r(   r   )r/  ru  r  ))ru  r  )ru  rY   r   )rY   ru  rW   ))r	  N)r	  r  )r
  r  )r  rW   )r/  ru  N)r  r   rW   )r/  ru  rY   r  )r  r  )r  r  )r  r  )r  )rY   )r  N)r  r  )rw   rx   ry   rz   __doc__r   r   r   r  r   r   dtypesfftsizesr  r  r   r   r_  r  r  r  r  r{   r|   r}   s   @r&   r  r    s    >::rzz*KBLL"--88FHL
- [[Wf-[[Y1[[]T5M:[[\ ,: ;-; ; 2 .- [[Wk2[[Y1[[]T5M:[[\ ,: ;-; ; 2 3-5: [[Wf-[[]T5M:[[\ ,E F(F ; .(r(   r  funcc                    \         P                  P                  ^
^
4      pV ! VRR7      pV ! V\         P                  ! ^^.4      R7      p\	        W#4       V ! VRR7      pV ! V\         P                  ! R.4      R7      p\	        W#4       V ! VRR	R7      pV ! V\         P                  ! ^^.4      \         P                  ! ^^ .4      R7      p\	        W#4       R# )
rp  r  rn  r*  N)r]   r]   r  r  )rf   rF  )rW   r   )r   r+   r   r   r   )r  aexpectactuals   &   r&   test_shape_axes_ndarrayr  ]  s     			r2A!6"F!288QF+,F !% F!"((B5/*F !6/F!288QF+"((Aq62BCF r(   )i    i`  i  )rY      $   )Cnumpy.testingr   r   r   r   r   r   r   rr   scipy.fftpackr	   r
   r   r   r   r   r   r3  r   r   r   r   r   r   r   r   r   r   r   	numpy.fftnumpy.randomr   r   r`  r   ra  r'   r+   r8   r:   r@   rB   rG   rK   rM   r   r   r   r   r   r   r   r   r   r  r  r"  r&  r=  rc  r  r  r  r  r   r_  r  r   r(   r&   <module>r     s  N N  * C C C. . .    
  	   
N   #: #:LL 
L 
K K&E; E;P] ] (I (IV] ] 2J 2Jpn n C C$>4 >4BU, U,p*- *-Z< < h( h(V $t!45! 6!r(   