+
    ,iO                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHtHtHt ]P(                  P*                  tR tR t ! R R	4      t]! R
R7      ]P(                  P3                  R]P4                  ]P6                  ]P8                  ]P:                  ]P<                  ]P>                  .4      ]P(                  P3                  RRR.4      ]P(                  P3                  R]P                  ]P@                  ]PB                  ]PD                  ]PF                  ]PH                  .4      R 4       4       4       4       t%]! R
R7       ! R R4      4       t&]! R
R7      ]P(                  P3                  R]P                  ]PD                  ]PN                  ]PP                  .4      R 4       4       t) ! R R4      t*]P(                  P3                  R]P                  ]PD                  ]PN                  ]PP                  ]PB                  ]PH                  ]PV                  ]PX                  ]PZ                  ]P\                  .
4      R 4       t/]P(                  P3                  RRR.4      ]P(                  P3                  R]P                  ]PD                  ]PP                  ]PB                  ]PH                  ]PX                  ]PZ                  .4      R 4       4       t0R# )    N)random)assert_array_almost_equalassert_allclose)raises)is_numpyxp_sizexp_assert_closexp_assert_equalc                    V \         P                   \         P                  \         P                  \         P                  \         P                  \         P
                  \         P                  \         P                  \         P                  \         P                  \         P                  \         P                  39   d   VP                  pV# V \         P                  \         P                  \         P                  \         P                   \         P"                  \         P$                  39   d   VP&                  pV# \)        R V  24      h)z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   && </usr/lib/python3/dist-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                 \   \        V 4      pR\        P                  ,          \        P                  ! V4      \	        V4      ,          ,          p\        P                  ! V4      P                  R^4      V,          p\        P                  ! V \        P                  ! V4      ,          ^R7      # )y               @axisy              )lennppiarangefloatreshapesumexp)xLphases   &  r$   fft1r6   #   sj    AAIryy|E!H,-EIIaL  Q'%/E66!BFF5M/**r&   c                   |  a  ] tR t^)t o R t]! RRR7      R 4       tR t]! RRR7      R 4       tR	 t	R
 t
R tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t]P8                  P;                  R]P>                  ]P@                  ]PB                  ]PD                  .4      R 4       t#]P8                  P;                  R]PH                  ]PJ                  .4      R 4       t&]P8                  P;                  R]P>                  ]P@                  ]PB                  ]PD                  .4      R 4       t']P8                  P;                  R]PP                  ]PR                  ]PT                  ]PV                  ]PX                  ]PZ                  ]PH                  ]PJ                  .4      R 4       t.R  t/]! RR!7      ]P8                  P;                  R"]0Pb                  ]0Pd                  .4      R# 4       4       t3]P8                  P;                  R"R$R%.4      R& 4       t4]P8                  P;                  R"R'R(.4      R) 4       t5]! RR*R7      ]P8                  P;                  R]P<                  ]Pl                  ]PP                  ]PR                  ]P>                  ]P@                  ]Pn                  ]Pp                  ]PT                  ]PV                  ]PB                  ]PD                  ]Pr                  ]Pt                  ]PX                  ]PZ                  ]PH                  ]PJ                  .4      R+ 4       4       t;R,t<V t=R-# ).TestFFTc           
        R pVP                  \        V4      R\        V4      ,          ,           4      pVP                  \        V4      4      pR Fx  p\        \        P                  ! \        P                  ! V^ V 4      4      V^ V 4       \        \        P
                  ! \        P                  ! V^ V 4      V4      V^ V 4       Kz  	  R# )                 ?N)	            r:   5      i  i  )asarrayr   r	   r   r   r   r   selfr"   maxlenr3   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           
        R pVP                  \        V4      R\        V4      ,          ,           4      pVP                  \        V4      4      p\        ^V4       Fx  p\        \        P
                  ! \        P                  ! V^ V 4      4      V^ V 4       \        \        P                  ! \        P                  ! V^ V 4      V4      V^ V 4       Kz  	  R# )r:   r;   N)rB   r   ranger	   r   r   r   r   rC   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                   \        ^4      R\        ^4      ,          ,           pVP                  \        V4      4      pVP                  V4      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  ^VP                  R7      4      ,          4       \        \        P                  ! VRR7      V^,          4       R# )   r;   backwardnormorthor#   forwardN)r   rB   r6   r	   r   sqrtr   rD   r"   r3   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                    VP                  . ROVP                  R7      p\        \        \        P                  V^ 4       R# r<   rV   Nr<   r=      )rB   r   assert_raisesr    r   )rD   r"   r3   s   && r$   
test_fft_nTestFFT.test_fft_nG   s*    JJyJ6j#''1a0r&   c           
     P   VP                  \        ^4      R\        ^4      ,          ,           4      p\        \        P                  ! \        P                  ! V4      4      V4       R F:  p\        \        P                  ! \        P                  ! W#R7      VR7      V4       K<  	  R# )rQ   r;   rS   NrR   rU   rW   )rB   r   r	   r   r   rD   r"   r3   rT   s   &&  r$   	test_ifftTestFFT.test_ifftL   sd    JJvbzBvbzM12,a04DCHHSWWQ%:FJ 5r&   c                >   VP                  \        R	4      R\        R	4      ,          ,           4      p\        P                  ! \        P                  ! V^R7      ^ R7      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R
VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR
,          4       R# rQ   r;   r(   rR   rS   rU   rV   rW   NrQ      X  )rB   r   r   r	   r   rX   r   rY   s   &&  r$   	test_fft2TestFFT.test_fft2R   s    JJvh'"VH-=*==>+!4V,4f=1G2::)N!OO	Q3Vw5GHr&   c                >   VP                  \        R	4      R\        R	4      ,          ,           4      p\        P                  ! \        P                  ! V^R7      ^ R7      p\	        \        P
                  ! V4      V4       \	        \        P
                  ! VRR7      V4       \	        \        P
                  ! VRR7      W1P                  VP                  R
VP                  R7      4      ,          4       \	        \        P
                  ! VRR7      VR
,          4       R# rj   )rB   r   r   r   r	   r   rX   r   rY   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                j   VP                  \        R	4      R\        R	4      ,          ,           4      p\        P                  ! \        P                  ! \        P                  ! V^R7      ^R7      ^ R7      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R
VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR
,          4       R# )rQ   r;   r(   rR   rS   rU   rV   rW   NrQ   rl   
   p  )rB   r   r   r	   r   rX   r   rY   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                   VP                  \        R4      R\        R4      ,          ,           4      p\        P                  ! \        P                  ! \        P                  ! V^R7      ^R7      ^ R7      p\	        \        P
                  ! V4      VRR7       \	        \        P
                  ! VRR7      VRR7       \	        \        P
                  ! VRR7      \        P
                  ! V4      VP                  VP                  RVP                  R7      4      ,          4       \	        \        P
                  ! VR	R7      VR,          RR7       R
# )rQ   r;   r(   gHz>)rtolrR   rS   rU   rV   rW   Nrt   rv   )rB   r   r   r   r	   r   rX   r   rY   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                @   VP                  \        ^4      VP                  R7      p\        V4      ^\        V4      ,          3 F  pR Ff  p\	        \
        P                  ! W#VR7      \
        P
                  ! VP                  W!P                  R7      W4R7      RV^,          ^,            4       Kh  	  \	        \
        P                  ! W#RR7      \
        P                  ! W#R7      VP                  VP                  W1P                  R7      4      ,          4       K  	  R# )   rV   NrU   nrT   )r   )NrR   rU   rW   )	rB   r   r   r   r	   r   r   r   rX   )rD   r"   r3   r   rT   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           
     "   VP                  \        ^4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# )rQ   rS   Nre   )rB   r   r	   r   r   r   rf   s   &&  r$   
test_irfftTestFFT.test_irfft   sW    JJvbz"		#((1+.24DCIIchhq&<4H!L 5r&   c                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# 
rQ   rV   rR   rS   rU   rW   Nrk   )NNN:N   Nrm   )	rB   r   r   r   r   r   r	   r   rX   rY   s   &&  r$   
test_rfft2TestFFT.test_rfft2   s    JJvh'rzzJ:"**Qmm*<=fE		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr&   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# rQ   rS   Nrk   re   )rB   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                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# 
rQ   rV   rR   rS   rU   rW   Nrt   )r   r   :N   Nrv   )	rB   r   r   r   r   r   r	   r   rX   rY   s   &&  r$   
test_rfftnTestFFT.test_rfftn   s    JJvl+2::J>"**Qmm*<=hG		!f-		!*5v>		!'2L

)S!TT	V		!)4f6MNr&   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# rQ   rS   Nrt   re   )rB   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                   \        ^4      R\        ^4      ,          ,           p\        P                  ! \        ^4      V\        ^4      34      p\        P                  ! W2RRR1,          P                  4       34      pVP	                  V4      pVP	                  V4      pVP                  \        P                  ! V4      4      p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      WAP                  VP	                  ^VP                  R7      4      ,          4       \        \        P                  ! VRR7      V^,          4       R# )	   r;   NrR   rS   rU   rV   rW   r*   )r   r,   concatenateconjrB   realr   r	   r   rX   r   )rD   r"   r3   x_hermrZ   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           
     *   \        ^4      R\        ^4      ,          ,           p\        P                  ! \        ^4      V\        ^4      34      p\        P                  ! W2RRR1,          P                  4       34      pVP	                  V4      pVP	                  V4      p\        \        P                  ! \        P                  ! V4      4      V4       R F:  p\        \        P                  ! \        P                  ! W4R7      VR7      V4       K<  	  R# )r   r;   NrS   r*   re   )	r   r,   r   r   rB   r	   r   r   r   )rD   r"   r3   r   rT   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           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# r   )rB   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                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        \        P                  ! V4      V4       \        \        P                  ! VRR7      V4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# r   )	rB   r   r   r   r   r   r	   r   rX   rY   s   &&  r$   test_ihfft2TestFFT.test_ihfft2   s    JJvh'rzzJ:2::a}}:=>vF

1v.

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

195v7IJr&   c           
     "   VP                  \        R4      4      p\        \        P                  ! \        P
                  ! V4      4      V4       R F:  p\        \        P                  ! \        P
                  ! W#R7      VR7      V4       K<  	  R# r   )rB   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                :   VP                  \        R4      VP                  R7      p\        P                  ! VP                  W!P
                  R7      4      R,          p\        V\        P                  ! V4      4       \        V\        P                  ! VRR7      4       \        \        P                  ! VRR7      W1P                  VP                  R	VP                  R7      4      ,          4       \        \        P                  ! VRR7      VR	,          4       R# r   )	rB   r   r   r   r   r   r	   r   rX   rY   s   &&  r$   test_ihfftnTestFFT.test_ihfftn   s    JJvl+2::J>2::a}}:=>xH

1.

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

195v7NOr&   c                    \        W4      pVP                  \        R4      VR7      p. ROpV F@  pV! VP                  WFR7      4      pVP                  V! WFR7      VR7      p\	        Wx4       KB  	  R# )rQ   rV   axesNrt   )r   r<   r=   r   r=   r<   )r<   r   r=   r<   r=   r   )r=   r   r<   )r=   r<   r   )r%   rB   r   permute_dimsr	   )	rD   opr"   r#   r3   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                (    V P                  W4       R # Nr   rD   r   r"   s   &&&r$   test_axes_standardTestFFT.test_axes_standard        r&   c                (    V P                  W4       R # r   r   r   s   &&&r$   test_axes_non_standardTestFFT.test_axes_non_standard   r   r&   c           	        \        W4      pVP                  \        R4      VR7      p. ROpV F  p\        \	        VP
                  4       Uu. uF=  pWvR,          9   d   ^VP                  V,          ,          MVP                  V,          NK?  	  up4      pV! VP                  WFR7      VR,          RR7      p	VP                  V! WHR,          VR,          R7      VR7      p
\        W4       K  	  R# u upi 	r>   rV   :Nr=   Nr   )sr   N)r>         )r   r   r   r   r<   	r%   rB   r   tuplerM   ndimshaper   r	   rD   r   r"   r#   r3   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 -/B%K1QWWR[=QWWR[H%24 5E rq1r1EOOBq"IAbE$B./ $ 1EE) 4   AC3
c           	        \        W4      pVP                  \        R4      VR7      p. ROpV F  p\        \	        VP
                  4       Uu. uF=  pWvR,          9   d   ^VP                  V,          ,          MVP                  V,          NK?  	  up4      pV! VP                  WFR7      VR,          RR7      p	VP                  V! WHR,          VR,          R7      VR7      p
\        W4       K  	  R# u upi 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 -/B%K1QWWR[=QWWR[H%24 5E rq1U2YVLEOOBq"IAbE$BOKEE) 4r   c           	        VP                  \        ^4      VP                  R7      pVP                  P	                  V4      p\        V4      ^,          p\        P                  \        P                  3\        P                  \        P                  3\        P                  \        P                  3.pV F  w  rgV\        P                  8X  d8   VP                  W!P                  R7      pVP                  P	                  V4      p\        V4      ^\        V4      ,          3 FE  pR F<  pV! W$VR7      p	V! WVR7      p	\        VP                  P	                  V	4      V4       K>  	  KG  	  K  	  R# )rQ   rV   r   Nre   )rB   r   r   linalgvector_normr   r   r   r   r   r   r   r   r	   )
rD   r"   r3   x_normr   
func_pairsforwbackrT   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&   rJ   r#   c                   \        ^4      P                  V4      p\        P                  \        P                  \        P
                  \        P                  /pVP                  WA,          4      p\        P                  ! \        P                  ! V4      4      p\        P                  ! \        P                  ! V4      4      p\        P                  ! \        P                  ! V4      VP                  ^ ,          4      p\        We4       \        Ws4       \        W4       VP                  VP                  8X  g   Q hVP                  \        P                   ! \        P"                  VP                  4      8X  g   Q hVP                  \        P                   ! \        P"                  VP                  4      8X  g   Q hR# )rQ   N)r   astyper,   float16	complex64
longdoubleclongdoubler   r   r   r   r   r   r   r   r#   result_typefloat32)	rD   r#   r"   r3   
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                H   VP                  \        ^4      \        W!4      R7      p\        P                  ! \        P
                  ! V4      4      p\        P                  ! \        P                  ! V4      VP                  ^ ,          4      p\        WC4       \        WS4       R# )rQ   rV   N)
rB   r   getattrr   r   r   r   r   r   r	   )rD   r#   r"   r3   r   r   s   &&&   r$   test_dtypes_realTestFFT.test_dtypes_realB  sc    JJvbz);J<99SXXa[)88CIIaL!''!*5$$r&   r   r   c                   \         P                  P                  R 4      pVP                  VP                  ^4      \	        W!4      R7      p\
        P                  ! \
        P
                  ! V4      4      p\        WT4       R# )i  rV   N)r,   r   default_rngrB   r   r   r   r	   )rD   r#   r"   rngr3   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                    R R .R R ..R R .R R ..R R .R R ...p\        V! V4      V! VP                  V4      4      4       R# )g      ?N)r	   rB   )rD   r"   r   r3   s   &&& r$   test_array_likeTestFFT.test_array_likeU  sX     Cj3*%Cj3*%Cj3*%' 	1r"**Q-01r&    N)>__name__
__module____qualname____firstlineno__rH   skip_xp_backendsrN   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____classdictcell____classdict__s   @r$   r8   r8   )   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&   r8   Tr   r#   orderFznon-contiguousr   c                    \         P                  P                  ^*4      pVP                  ^^^4      P	                  V RR7      pVR8X  d   \         P
                  ! V4      pM,VRRR	1,          p\         P                  ! VRRR	1,          4      pVP                  P                  R4      '       d2   \        ^4       F   pV! WWR7      pV! WgR7      p	\        W4       K"  	  R# VP                  P                  R
4      '       da   . ROp
VP                  P                  R4      '       d   V
P                  . RO4       V
 F   pV! W[R7      pV! WkR7      p	\        W4       K"  	  R# \        h)*   F)copyr  Nr   r(   r   r   r*   )r   r   )r   )r<   r=   )r   r=   ))r   )r<   )r=   N)r,   r   RandomStaterandr   asfortranarrayascontiguousarrayr   endswithrM   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                   Z   a  ] tR tRt o ^tRtRR/R ltR tR tR t	R t
R	 tR
 tRtV tR# )TestFFTThreadSafei  r"   Nc                 a V3R  lp\         P                  ! 4       pS! V!  p\        V P                  4       Uu. uF  p\        P
                  ! WCV3R7      NK  	  ppV U	u. uF  qP                  4       NK  	   p	V U	u. uF  qP                  4       NK  	   p	\        V P                  4       F!  p\        VP                  ^R7      VRR7       K#  	  R# u upi u up	i u up	i )c                 2   < VP                  S! V !  4       R # r   )put)argsqr!   s   &&r$   worker.TestFFTThreadSafe._test_mtsame.<locals>.worker  s    EE$+r&   )targetr"  )timeoutz6Function returned wrong value in multithreaded context)err_msgN)
queueQueuerM   threads	threadingThreadstartjoinr
   get)
rD   r!   r"   r"  r$  r#  expectedrG   tr3   s
   &f$*      r$   _test_mtsameTestFFTThreadSafe._test_mtsame  s    	 KKM; DLL)+) V)<) 	
 +AqA1a1 t||$Aa (P %+s   "C"C C c                    VP                  V P                  VP                  R 7      pV P                  \        P                  W!R7       R# rV   r"   N)onesinput_shaper   r3  r   rD   r"   r   s   && r$   r[   TestFFTThreadSafe.test_fft  s5    GGD$$BMMG:#''1,r&   c                    VP                  V P                  R4      pV P                  \        P                  W!R7       R# r<   r7  Ny      ?        )fullr9  r3  r   r   r:  s   && r$   rg   TestFFTThreadSafe.test_ifft  s/    GGD$$d+#((A-r&   c                ~    VP                  V P                  4      pV P                  \        P                  W!R 7       R# r7  N)r8  r9  r3  r   r   r:  s   && r$   r   TestFFTThreadSafe.test_rfft  s-    GGD$$%#((A-r&   c                    VP                  V P                  R4      pV P                  \        P                  W!R7       R# r=  )r>  r9  r3  r   r   r:  s   && r$   r   TestFFTThreadSafe.test_irfft  s/    GGD$$d+#))Q.r&   c                    VP                  V P                  VP                  R 7      pV P                  \        P
                  W!R7       R# r6  )r8  r9  r   r3  r   r   r:  s   && r$   r   TestFFTThreadSafe.test_hfft  s5    GGD$$BLLG9#((A-r&   c                ~    VP                  V P                  4      pV P                  \        P                  W!R 7       R# rA  )r8  r9  r3  r   r   r:  s   && r$   r   TestFFTThreadSafe.test_ihfft  s-    GGD$$%#))Q.r&   r   )i      )r   r  r  r  r+  r9  r3  r[   rg   r   r   r   r   r  r	  r
  s   @r$   r  r    s>     GK4 *-.././ /r&   r  r!   c                 b   \         P                  ! ^4      ;_uu_ 4       pTP                  T \        ^4       Uu. uF  p\        P
                  ! ^d4      NK  	  up4      pRRR4       V ! \        P
                  ! ^d4      4      pX F  p\        We4       K  	  R# u upi   + '       g   i     LG; i)r=   N)multiprocessingPoolmaprM   r,   r8  r   )r!   r"   p_resrZ   r3   s   &&     r$   test_multiprocessrQ    s{    
 
		a	 	 AeeDq:A2773<:; 
! "''#,F"  ; 
!	 s   BBBBB.	c                   &   a  ] tR tRt o R tRtV tR# )
TestIRFFTNi  c                    \         P                  P                  R4      w  r#VRV,          ,           pVP                  V4      pRp\        P                  ! WER7       R# )r=   r;   r   N)r=   r>   r       ))r,   r   rB   r   r   )rD   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
  s   @r$   rS  rS    s     ! !r&   rS  c                 8   V \         P                  \         P                  \         P                  39   d   VP                  pMVP
                  pVP                  . ROVR7      pV ! V4       \        V4      '       d   V ! V^R7       R# \        \        W^R7       R# )r<   rV   )workersNr_   )
r   r   r   r   r   r   rB   r   ra   r    )r!   r"   r#   r3   s   &&  r$   test_non_standard_paramsr]    si     #))SYY//




9E
*AG||Qj$15r&   r   r   c                 R    VP                  . RO\        W!4      R7      pV ! V4       R# r^   )rB   r   )r!   r#   r"   r3   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%   r6   r8   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&   