
    9iO                        S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJr  S SKJr  S SKJrJrJrJr  \R(                  R*                  rS rS r " S S	5      r\" S
S9\R(                  R3                  S\R4                  \R6                  \R8                  \R:                  \R<                  \R>                  /5      \R(                  R3                  SSS/5      \R(                  R3                  S\R                  \R@                  \RB                  \RD                  \RF                  \RH                  /5      S 5       5       5       5       r%\" S
S9 " S S5      5       r&\" S
S9\R(                  R3                  S\R                  \RD                  \RN                  \RP                  /5      S 5       5       r) " S S5      r*\R(                  R3                  S\R                  \RD                  \RN                  \RP                  \RB                  \RH                  \RV                  \RX                  \RZ                  \R\                  /
5      S 5       r/\R(                  R3                  SSS/5      \R(                  R3                  S\R                  \RD                  \RP                  \RB                  \RH                  \RX                  \RZ                  /5      S 5       5       r0g)    N)random)assert_array_almost_equalassert_allclose)raises)is_numpyxp_sizexp_assert_closexp_assert_equalc                    U [         R                   [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  4;   a  UR                  nU$ U [         R                  [         R                  [         R                  [         R                   [         R"                  [         R$                  4;   a  UR&                  nU$ [)        SU  35      e)NzUnknown FFT function: )fftfftnfft2ifftifftnifft2hffthfftnhfft2irfftirfftnirfft2
complex128rfftrfftnrfft2ihfftihfftnihfft2float64
ValueError)funcxpdtypes      Z/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/scipy/fft/tests/test_basic.pyget_expected_input_dtyper%      s    388#))SYY#))SYY		3::szz3 3  L 
#((CIIsyy))SZZ5 
5

 L 1$899    c                 .   [        U 5      nS[        R                  -  [        R                  " U5      [	        U5      -  -  n[        R                  " U5      R                  SS5      U-  n[        R                  " U [        R                  " U5      -  SS9$ )Ny                 axis)lennppiarangefloatreshapesumexp)xLphases      r$   fft1r7   #   sj    AAIryy|E!H,-EIIaL  Q'%/E66!BFF5M/**r&   c                   X   \ rS rSrS r\" SSS9S 5       rS r\" SSS9S	 5       rS
 r	S r
S rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R8                  R;                  S\R>                  \R@                  \RB                  \RD                  /5      S 5       r#\R8                  R;                  S\RH                  \RJ                  /5      S 5       r&\R8                  R;                  S\R>                  \R@                  \RB                  \RD                  /5      S 5       r'\R8                  R;                  S\RP                  \RR                  \RT                  \RV                  \RX                  \RZ                  \RH                  \RJ                  /5      S  5       r.S! r/\" SS"9\R8                  R;                  S#\0Rb                  \0Rd                  /5      S$ 5       5       r3\R8                  R;                  S#S%S&/5      S' 5       r4\R8                  R;                  S#S(S)/5      S* 5       r5\" SS+S9\R8                  R;                  S\R<                  \Rl                  \RP                  \RR                  \R>                  \R@                  \Rn                  \Rp                  \RT                  \RV                  \RB                  \RD                  \Rr                  \Rt                  \RX                  \RZ                  \RH                  \RJ                  /5      S, 5       5       r;S-r<g.)/TestFFT)   c           
         SnUR                  [        U5      S[        U5      -  -   5      nUR                  [        U5      5      nS Hx  n[        [        R                  " [        R                  " USU 5      5      USU 5        [        [        R
                  " [        R                  " USU 5      U5      USU 5        Mz     g )N                 ?)	r)            r<   5      i  i  r   )asarrayr   r	   r   r   r   r   selfr"   maxlenr4   xris         r$   test_identityTestFFT.test_identity+   s    JJvf~6&>(99:ZZv'8ACHHSWWQqV_5q1v>CIIchhr!Aw&7;R!WE 9r&   Tz&significant overhead for some backends)np_onlyreasonc           
         SnUR                  [        U5      S[        U5      -  -   5      nUR                  [        U5      5      n[        SU5       Hx  n[        [        R
                  " [        R                  " USU 5      5      USU 5        [        [        R                  " [        R                  " USU 5      U5      USU 5        Mz     g )Nr<   r=   r)   r   )rC   r   ranger	   r   r   r   r   rD   s         r$   test_identity_extensiveTestFFT.test_identity_extensive4   s    JJvf~6&>(99:ZZv'q&!ACHHSWWQqV_5q1v>CIIchhr!Aw&7;R!WE "r&   c                    [        S5      S[        S5      -  -   nUR                  [        U5      5      nUR                  U5      n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9X1R                  UR                  SUR                  S95      -  5        [        [        R                  " USS9US-  5        g )N   r=   backwardnormorthor#   forward)r   rC   r7   r	   r   sqrtr   rE   r"   r4   expects       r$   test_fftTestFFT.test_fft=   s    2JF2J&DG$JJqM
F+
3V<0Bbjj)I!JJ	M	2FRK@r&   zsome backends allow `n=0`c                 |    UR                  / SQUR                  S9n[        [        [        R                  US5        g )Nr)   r>      rW   r   )rC   r   assert_raisesr    r   )rE   r"   r4   s      r$   
test_fft_nTestFFT.test_fft_nG   s*    JJyJ6j#''1a0r&   c           
      2   UR                  [        S5      S[        S5      -  -   5      n[        [        R                  " [        R                  " U5      5      U5        S H4  n[        [        R                  " [        R                  " X#S9US9U5        M6     g )NrR   r=   rS   rV   rX   rT   )rC   r   r	   r   r   rE   r"   r4   rU   s       r$   	test_ifftTestFFT.test_ifftL   sd    JJvbzBvbzM12,a04DCHHSWWQ%:FJ 5r&   c                    UR                  [        S5      S[        S5      -  -   5      n[        R                  " [        R                  " USS9SS9n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9X1R                  UR                  S	UR                  S
95      -  5        [        [        R                  " USS9US	-  5        g NrR      r=   r)   r*   r   rS   rT   rV   X  rW   rX   )rC   r   r   r	   r   rY   r   rZ   s       r$   	test_fft2TestFFT.test_fft2R   s    JJvh'"VH-=*==>+!4V,4f=1G2::)N!OO	Q3Vw5GHr&   c                    UR                  [        S5      S[        S5      -  -   5      n[        R                  " [        R                  " USS9SS9n[	        [        R
                  " U5      U5        [	        [        R
                  " USS9U5        [	        [        R
                  " USS9X1R                  UR                  S	UR                  S
95      -  5        [	        [        R
                  " USS9US	-  5        g rj   )rC   r   r   r   r	   r   rY   r   rZ   s       r$   
test_ifft2TestFFT.test_ifft2[   s    JJvh'"VH-=*==>#((11-A6		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr&   c                    UR                  [        S5      S[        S5      -  -   5      n[        R                  " [        R                  " [        R                  " USS9SS9SS9n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " US	S9X1R                  UR                  S
UR                  S95      -  5        [        [        R                  " USS9US
-  5        g )NrR   rl   
   r=   r>   r*   r)   r   rS   rT   rV   p  rW   rX   )rC   r   r   r	   r   rY   r   rZ   s       r$   	test_fftnTestFFT.test_fftnd   s    JJvl+b1E.EEF!3!<1EV,4f=1L

)S!TT	V3V|5LMr&   c                 B   UR                  [        S5      S[        S5      -  -   5      n[        R                  " [        R                  " [        R                  " USS9SS9SS9n[	        [        R
                  " U5      USS9  [	        [        R
                  " US	S
9USS9  [	        [        R
                  " USS
9[        R
                  " U5      UR                  UR                  SUR                  S95      -  5        [	        [        R
                  " USS
9US-  SS9  g )Nrt   r=   r>   r*   r)   r   gHz>)rtolrS   rT   rV   rv   rW   rX   )rC   r   r   r   r	   r   rY   r   rZ   s       r$   
test_ifftnTestFFT.test_ifftnm   s    JJvl+b1E.EEF#((388AA#6Q?aH		!f48		!*5vDIIIag&IIaL2772::l"**:#MNN	
 			!)4,/!	#r&   c                    UR                  [        S5      UR                  S9n[        U5      S[        U5      -  4 H  nS HU  n[	        [
        R                  " X#US9[
        R
                  " UR                  X!R                  S9X4S9S US-  S-    5        MW     [	        [
        R                  " X#SS9[
        R                  " X#S9UR                  UR                  X1R                  S95      -  5        M     g )	N   rW   r>   )NrS   rV   rX   nrU   r)   rV   )r   )	rC   r   r   r   r	   r   r   r   rY   )rE   r"   r4   r   rU   s        r$   	test_rfftTestFFT.test_rfftz   s    JJvbzJ4!*a
l+A>d ; #

1MM
(J*+!88C!Q$(!EF ? g. 2772::azz:+J#KK ,r&   c           
         UR                  [        S5      5      n[        [        R                  " [        R
                  " U5      5      U5        S H4  n[        [        R                  " [        R
                  " X#S9US9U5        M6     g )NrR   re   rT   )rC   r   r	   r   r   r   rf   s       r$   
test_irfftTestFFT.test_irfft   sW    JJvbz"		#((1+.24DCIIchhq&<4H!L 5r&   c                    UR                  [        S5      UR                  S9n[        R                  " UR                  X!R
                  S95      S S 2S S24   n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9X1R                  UR                  SUR                  S95      -  5        [        [        R                  " USS9US-  5        g 	Nrk   rW      rS   rT   rV   rm   rX   )	rC   r   r   r   r   r   r	   r   rY   rZ   s       r$   
test_rfft2TestFFT.test_rfft2   s    JJvh'rzzJ:"**Qmm*<=a"fE		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr&   c           
         UR                  [        S5      5      n[        [        R                  " [        R
                  " U5      5      U5        S H4  n[        [        R                  " [        R
                  " X#S9US9U5        M6     g Nrk   re   rT   )rC   r   r	   r   r   r   rf   s       r$   test_irfft2TestFFT.test_irfft2   sX    JJvh'(

399Q<0!44DCJJsyy'>TJAN 5r&   c                    UR                  [        S5      UR                  S9n[        R                  " UR                  X!R
                  S95      S S 2S S 2S S24   n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9X1R                  UR                  SUR                  S95      -  5        [        [        R                  " USS9US-  5        g 	Nrt   rW      rS   rT   rV   rv   rX   )	rC   r   r   r   r   r   r	   r   rY   rZ   s       r$   
test_rfftnTestFFT.test_rfftn   s    JJvl+2::J>"**Qmm*<=aBQBhG		!f-		!*5v>		!'2L

)S!TT	V		!)4f6MNr&   c           
         UR                  [        S5      5      n[        [        R                  " [        R
                  " U5      5      U5        S H4  n[        [        R                  " [        R
                  " X#S9US9U5        M6     g Nrt   re   rT   )rC   r   r	   r   r   r   rf   s       r$   test_irfftnTestFFT.test_irfftn   sX    JJvl+,

399Q<0!44DCJJsyy'>TJAN 5r&   c                    [        S5      S[        S5      -  -   n[        R                  " [        S5      U[        S5      45      n[        R                  " X2S S S2   R                  5       45      nUR	                  U5      nUR	                  U5      nUR                  [        R                  " U5      5      n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9XAR                  UR	                  SUR                  S	95      -  5        [        [        R                  " US
S9US-  5        g )N   r=   r)   r(   rS   rT   rV   rR   rW   rX   )r   r-   concatenateconjrC   realr   r	   r   rY   r   )rE   r"   r4   x_hermr[   s        r$   	test_hfftTestFFT.test_hfft   s    2JF2J&Avay 9:NNFddGLLN34JJqMF#$(&1j96Bg6Bbjj)I!JJ	Li8&2+Fr&   c           
         [        S5      S[        S5      -  -   n[        R                  " [        S5      U[        S5      45      n[        R                  " X2S S S2   R                  5       45      nUR	                  U5      nUR	                  U5      n[        [        R                  " [        R                  " U5      5      U5        S H4  n[        [        R                  " [        R                  " X4S9US9U5        M6     g )Nr   r=   r)   r(   re   rT   )	r   r-   r   r   rC   r	   r   r   r   )rE   r"   r4   r   rU   s        r$   
test_ihfftTestFFT.test_ihfft   s    2JF2J&Avay 9:NNFddGLLN34JJqMF#		#((6"23V<4DCIIchhv&AMvV 5r&   c           
         UR                  [        S5      5      n[        [        R                  " [        R
                  " U5      5      U5        S H4  n[        [        R                  " [        R
                  " X#S9US9U5        M6     g r   )rC   r   r	   r   r   r   rf   s       r$   
test_hfft2TestFFT.test_hfft2   sX    JJvh'(		#**Q-0!44DCIIcjj&>TJAN 5r&   c                    UR                  [        S5      UR                  S9n[        R                  " UR                  X!R
                  S95      S S 2S S24   n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9X1R                  UR                  SUR                  S95      -  5        [        [        R                  " USS9US-  5        g r   )	rC   r   r   r   r   r   r	   r   rY   rZ   s       r$   test_ihfft2TestFFT.test_ihfft2   s    JJvh'rzzJ:2::a}}:=>q#2#vF

1v.

1:6?JJqw'WWRZZrzzZBCC	
 	

195v7IJr&   c           
         UR                  [        S5      5      n[        [        R                  " [        R
                  " U5      5      U5        S H4  n[        [        R                  " [        R
                  " X#S9US9U5        M6     g r   )rC   r   r	   r   r   r   rf   s       r$   
test_hfftnTestFFT.test_hfftn   sX    JJvl+,		#**Q-0!44DCIIcjj&>TJAN 5r&   c                    UR                  [        S5      UR                  S9n[        R                  " UR                  X!R
                  S95      S S 2S S 2S S24   n[        U[        R                  " U5      5        [        U[        R                  " USS95        [        [        R                  " USS9X1R                  UR                  SUR                  S95      -  5        [        [        R                  " USS9US-  5        g r   )	rC   r   r   r   r   r   r	   r   rY   rZ   s       r$   test_ihfftnTestFFT.test_ihfftn   s    JJvl+2::J>2::a}}:=>q!RaRxH

1.

1: >?JJqw'WWRZZBJJZGHH	
 	

195v7NOr&   c                     [        X5      nUR                  [        S5      US9n/ SQnU H7  nU" UR                  XFS95      nUR                  U" XFS9US9n[	        Xx5        M9     g )Nrt   rW   )r   r)   r>   r   r>   r)   )r)   r   r>   r)   r>   r   )r>   r   r)   )r>   r)   r   axes)r%   rC   r   permute_dimsr	   )	rE   opr"   r#   r4   r   aop_trtr_ops	            r$   _check_axesTestFFT._check_axes   se    (0JJvl+5J9QArq12EOOBqMO:EE) r&   r   c                 &    U R                  X5        g Nr   rE   r   r"   s      r$   test_axes_standardTestFFT.test_axes_standard        r&   c                 &    U R                  X5        g r   r   r   s      r$   test_axes_non_standardTestFFT.test_axes_non_standard   r   r&   c           
         [        X5      nUR                  [        S5      US9n/ SQnU H  n[        [	        UR
                  5       Vs/ s H,  nXvS S ;   a  SUR                  U   -  OUR                  U   PM.     sn5      nU" UR                  XFS9US S SS9n	UR                  U" XHS S US S S9US9n
[        X5        M     g s  snf N)r?         rW   )r   r   r   r>   r   r   r)   )sr   	r%   rC   r   tuplerN   ndimshaper   r	   rE   r   r"   r#   r4   r   r   axr   r   r   s              r$   $test_axes_subset_with_shape_standard,TestFFT.test_axes_subset_with_shape_standard   s     )0JJvj)J70A%*166]4%2r -/BQ%K1QWWR[=QWWR[H%24 5E rq1r1EOOBq"1IAbqE$B./ $ 1EE) 4   
3C
c           
         [        X5      nUR                  [        S5      US9n/ SQnU H  n[        [	        UR
                  5       Vs/ s H,  nXvS S ;   a  SUR                  U   -  OUR                  U   PM.     sn5      nU" UR                  XFS9US S SS9n	UR                  U" XHS S US S S9US9n
[        X5        M     g s  snf r   r   r   s              r$   (test_axes_subset_with_shape_non_standard0TestFFT.test_axes_subset_with_shape_non_standard  s    
 )0JJvj)J70A%*166]4%2r -/BQ%K1QWWR[=QWWR[H%24 5E rq1U2AYVLEOOBq"1IAbqE$BOKEE) 4r   c           	         UR                  [        S5      UR                  S9nUR                  R	                  U5      n[        U5      S-  n[        R                  [        R                  4[        R                  [        R                  4[        R                  [        R                  4/nU H  u  pgU[        R                  :X  a4  UR                  X!R                  S9nUR                  R	                  U5      n[        U5      S[        U5      -  4 H?  nS H6  nU" X$US9n	U" XUS9n	[        UR                  R	                  U	5      U5        M8     MA     M     g )NrR   rW   r>   re   r   )rC   r   r   linalgvector_normr   r   r   r   r   r   r   r   r	   )
rE   r"   r4   x_normr   
func_pairsforwbackrU   tmps
             r$   test_all_1d_norm_preserving#TestFFT.test_all_1d_norm_preserving  s   JJvbzJ4&&q)AJNxx+ yy#((+ww)
 %JDswwJJqJ6..q1aj!GAJ,/<DqD1Csd3C#BII$9$9#$>G = 0	 %r&   rK   r#   c                 h   [        S5      R                  U5      n[        R                  [        R                  [        R
                  [        R                  0nUR                  XA   5      n[        R                  " [        R                  " U5      5      n[        R                  " [        R                  " U5      5      n[        R                  " [        R                  " U5      UR                  S   5      n[        Xe5        [        Xs5        [        X5        UR                  UR                  :X  d   eUR                  [        R                   " [        R"                  UR                  5      :X  d   eUR                  [        R                   " [        R"                  UR                  5      :X  d   eg )NrR   r   )r   astyper-   float16	complex64
longdoubleclongdoubler   r   r   r   r   r   r   r   r#   result_typefloat32)	rE   r#   r"   r4   
out_dtypes	x_complexres_fftres_rfftres_hffts	            r$   test_dtypes_nonstandardTestFFT.test_dtypes_nonstandard0  s    2Je$jj",,r~~N
HHZ./	((3771:&99SXXa[)88CIIaL!''!*5!'5!(.!(.}}	///~~

AGG!DDDD~~

AGG!DDDDr&   r   r   c                 8   UR                  [        S5      [        X!5      S9n[        R                  " [        R
                  " U5      5      n[        R                  " [        R                  " U5      UR                  S   5      n[        XC5        [        XS5        g )NrR   rW   r   )
rC   r   getattrr   r   r   r   r   r   r	   )rE   r#   r"   r4   r   r   s         r$   test_dtypes_realTestFFT.test_dtypes_realB  sc    JJvbz);J<99SXXa[)88CIIaL!''!*5$$r&   r   r   c                     [         R                  R                  S5      nUR                  UR                  S5      [	        X!5      S9n[
        R                  " [
        R
                  " U5      5      n[        XT5        g )Ni  rR   rW   )r-   r   default_rngrC   r   r   r   r	   )rE   r#   r"   rngr4   r   s         r$   test_dtypes_complexTestFFT.test_dtypes_complexL  sS    ii##D)JJszz"~WR-?J@((3771:&#r&   z,array-likes only supported for NumPy backendc                     SS/SS//SS/SS//SS/SS///n[        U" U5      U" UR                  U5      5      5        g )Ng      ?)r	   rC   )rE   r"   r   r4   s       r$   test_array_likeTestFFT.test_array_likeU  sX     Cj3*%Cj3*%Cj3*%' 	1r"**Q-01r&    N)=__name__
__module____qualname____firstlineno__rI   skip_xp_backendsrO   r\   rb   rg   rn   rq   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   pytestmarkparametrizer   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   __static_attributes__r   r&   r$   r9   r9   )   s   F d+STF UFA d+FG1 H1KIJN#
MJOOOGWO	KO	P* [[TCHHciiCJJ#OP! Q! [[TCIIszz#:;! <! [[TCHHcii$'IIszz$; <*<*  [[TCHHcii$'IIszz$'IIszz$'IIszz$; <*	<*H. d#[[Wrzz2==&ABE C $E  [[Wy)&<=% >% [[W{L&AB$ C$ dKM[[TCGGSXX$'HHcii$'HHcii$'HHcii$'IIszz$'IIszz$'HHcii$'IIszz$'IIszz$< =2=M2r&   r9   Tr   r#   orderFznon-contiguousr   c                    [         R                  R                  S5      nUR                  SSS5      R	                  U SS9nUS:X  a  [         R
                  " U5      nO$US S S2   n[         R                  " US S S2   5      nUR                  R                  S	5      (       a*  [        S
5       H  nU" XWS9nU" XgS9n	[        X5        M     g UR                  R                  S5      (       aX  / SQn
UR                  R                  S5      (       a  U
R                  / SQ5        U
 H  nU" X[S9nU" XkS9n	[        X5        M     g [        e)N*   r         F)copyr	  r(   r   r`   r*   )r   r   )r   )r)   r>   )r   r>   r   ))r   )r)   )r>   Nr   )r-   r   RandomStaterandr   asfortranarrayascontiguousarrayr   endswithrN   r   extendr    )r#   r  r   r"   r   XYr+   X_resY_resr   r   s               r$   test_fft_with_orderr  g  s"    ))


#CAr!!%e!4A|a  ddG  4R4)
||U##!HD%E%E%e3  
		/	0	0'<<  ((KK01BOEOE%e3 
 r&   )cpu_onlyc                   N    \ rS rSrSrSrSS.S jrS rS rS	 r	S
 r
S rS rSrg)TestFFTThreadSafei  r?   )i      Nr"   c                  ^ U4S jn[         R                  " 5       nT" U6 n[        U R                  5       Vs/ s H  n[        R
                  " XCU4S9PM     nnU V	s/ s H  oR                  5       PM       n	U V	s/ s H  oR                  5       PM       n	[        U R                  5       H  n[        UR                  SS9USS9  M     g s  snf s  sn	f s  sn	f )Nc                 .   > UR                  T" U 6 5        g r   )put)argsqr!   s     r$   worker.TestFFTThreadSafe._test_mtsame.<locals>.worker  s    EE$+r&   )targetr"     )timeoutz6Function returned wrong value in multithreaded context)err_msg)
queueQueuerN   threads	threadingThreadstartjoinr
   get)
rE   r!   r"   r"  r$  r#  expectedrH   tr4   s
    `        r$   _test_mtsameTestFFTThreadSafe._test_mtsame  s    	 KKM; DLL)+) V)<) 	
 +AqA1a1 t||$Aa (P %+s    CC>Cc                     UR                  U R                  UR                  S9nU R                  [        R                  X!S9  g NrW   r  )onesinput_shaper   r4  r   rE   r"   r   s      r$   r\   TestFFTThreadSafe.test_fft  s5    GGD$$BMMG:#''1,r&   c                 x    UR                  U R                  S5      nU R                  [        R                  X!S9  g Ny      ?        r  )fullr9  r4  r   r   r:  s      r$   rg   TestFFTThreadSafe.test_ifft  s/    GGD$$d+#((A-r&   c                 v    UR                  U R                  5      nU R                  [        R                  X!S9  g Nr  )r8  r9  r4  r   r   r:  s      r$   r   TestFFTThreadSafe.test_rfft  s-    GGD$$%#((A-r&   c                 x    UR                  U R                  S5      nU R                  [        R                  X!S9  g r=  )r>  r9  r4  r   r   r:  s      r$   r   TestFFTThreadSafe.test_irfft  s/    GGD$$d+#))Q.r&   c                     UR                  U R                  UR                  S9nU R                  [        R
                  X!S9  g r7  )r8  r9  r   r4  r   r   r:  s      r$   r   TestFFTThreadSafe.test_hfft  s5    GGD$$BLLG9#((A-r&   c                 v    UR                  U R                  5      nU R                  [        R                  X!S9  g rA  )r8  r9  r4  r   r   r:  s      r$   r   TestFFTThreadSafe.test_ihfft  s-    GGD$$%#))Q.r&   r   )r   r   r  r  r,  r9  r4  r\   rg   r   r   r   r   r  r   r&   r$   r  r    s2    GK+/ *-.././r&   r  r!   c           
      N   [         R                  " S5       nUR                  U [        S5       Vs/ s H  n[        R
                  " S5      PM     sn5      nS S S 5        U " [        R
                  " S5      5      nW H  n[        Xe5        M     g s  snf ! , (       d  f       ND= f)Nr>   r   d   )multiprocessingPoolmaprN   r-   r8  r   )r!   r"   p_resr[   r4   s          r$   test_multiprocessrQ    sx    
 
		a	 AeeDq:A2773<:; 
! "''#,F"  ; 
!	 s   B BBB
B$c                       \ rS rSrS rSrg)
TestIRFFTNi  c                     [         R                  R                  S5      u  p#USU-  -   nUR                  U5      nSn[        R                  " XES9  g )N)r>   r?   r       r=   )r   )r-   r   rC   r   r   )rE   r"   arair   r   s         r$   test_not_last_axis_success%TestIRFFTN.test_not_last_axis_success  sE    !!.1BJJJqM 	

1 r&   r   N)r   r   r  r  rY  r  r   r&   r$   rS  rS    s    !r&   rS  c                    U [         R                  [         R                  [         R                  4;   a  UR                  nOUR
                  nUR                  / SQUS9nU " U5        [        U5      (       a  U " USS9  g [        [        XSS9  g )Nr_   rW   r>   )workers)
r   r   r   r   r   r   rC   r   ra   r    )r!   r"   r#   r4   s       r$   test_non_standard_paramsr]    si     #))SYY//




9E
*AG||Qj$15r&   r   r   c                 J    UR                  / SQ[        X!5      S9nU " U5        g )Nr_   rW   )rC   r   )r!   r#   r"   r4   s       r$   test_real_inputr_    s"    
 	

9GB$6
7AGr&   )1r*  r-  rK  numpyr-   r  numpy.randomr   numpy.testingr   r   r   ra   	scipy.fftr   scipy._lib._array_apir   r   r	   r
   r  r  r%   r7   r9   r  r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   rQ  rS  r   r   r   r   r]  r_  r   r&   r$   <module>re     sk         D *   ;;// +{2 {2|	 $	RZZ	r}}bnn	67 3(8"9:	#((CHH	399cii	)*	* ;	7  : 4 // // !//d $#''388SXXsyy!IJ# K  #
! 
! #''388SXXsyy"%((CII"%))SZZ399"N O6O6& 9i"89#''388SYY"%((CII"%**chh"9 :: :r&   