+
    ei~_  c                   s>   ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
Ht R t ! R R4      t ! R R4      t]P                  P!                  R	]P"                  ]P$                  ]P&                  ]P(                  .4      ]P                  P!                  R
RR.4      ]P                  P!                  R]P*                  P*                  ]P*                  P,                  ]P*                  P.                  ]P*                  P0                  ]P*                  P2                  ]P*                  P4                  .4      R 4       4       4       t]P                  P!                  R
RR.4      ]P                  P!                  R. RO4      R 4       4       t]P                  P;                  ]RR7       ! R R4      4       tR tR t ]P                  P!                  R]P*                  P*                  ]P*                  P0                  ]P*                  PB                  ]P*                  PD                  .4      ]P                  P!                  R]PF                  ! . RO4      ]PH                  ! ^
]PJ                  R7      ]PH                  ! ^]PL                  R7      .4      R 4       4       t'R# )    N)random)IS_WASMassert_allcloseassert_array_equalassert_raisesc                 sJ   \        V 4      pR\        P                  ,          \        P                  ! V4      V,          ,          p\        P                  ! V4      P	                  R^4      V,          p\        P
                  ! V \        P                  ! V4      ,          ^R7      # )y               @axisy              )ZlennpZpiarangereshapeZsumZexp)xZLZphase   &  E/usr/lib64/python3.14/site-packages/numpy/fft/tests/test_pocketfft.pyfft1r      sg    AA"%%K299Q<!+,EIIaL  Q'%/E66!bffUm#!,,    c                   s&   a  ] tR t^t o R tRtV tR# )TestFFTShiftc                s^    \        \        \        P                  P                  . RO^ 4       R# )   N)r         )r   
ValueErrorr	   fft)selfs   &r   
test_fft_nZTestFFTShift.test_fft_n   s    j"&&**i;r    N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell__Z__classdict__   @r   r   r      s     < <r   r   c            	       sV	  a  ] tR t^t o R t]P                  P                  R]P                  ]P                  ]P                  .4      R 4       t]P                  P                  R]P                  ]P                  ]P                  .4      R 4       tR t]P                  P                  RR*4      ]P                  P                  R]]34      ]P                  P                  RR+4      R 4       4       4       t]P                  P                  R^ ^.4      R	 4       tR
 t]P                  P                  RR,4      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"]P                  P                  R]PF                  PH                  ]PF                  PJ                  ]PF                  PL                  ]PF                  PN                  .4      R 4       t(]P                  P                  R]PF                  PH                  ]PF                  PJ                  ]PF                  PR                  ]PF                  PT                  .4      R 4       t+]P                  P                  R]PF                  PH                  ]PF                  PJ                  ]PF                  PL                  ]PF                  PN                  .4      R 4       t,]P                  P                  R]PF                  PR                  ]PF                  PT                  .4      R  4       t-]P                  P                  R]PF                  PH                  ]PF                  PJ                  ]PF                  PL                  ]PF                  PN                  ]PF                  PR                  ]PF                  PT                  .4      R! 4       t.R" t/]P                  P                  R#. R-O4      ]P                  P                  R]]34      ]P                  P                  RR+4      R$ 4       4       4       t0]P                  P                  R%]PF                  PH                  ]PF                  PJ                  ]PF                  PL                  .4      R& 4       t1]P                  P                  R'R.R/.4      R( 4       t2R)t3V t4R# )0	TestFFT1Dc           
     s   R p\        V4      R\        V4      ,          ,           p\        V4      p\        ^V4       F  p\        \        P                  P                  \        P                  P	                  V^ V 4      4      V^ V RR7       \        \        P                  P                  \        P                  P                  V^ V 4      V4      V^ V RR7       K  	  R# )i                 ?g-q=atolN)r   ranger   r	   r   ifftirfftrfft)r   maxlenr   xris   &    r   test_identityZTestFFT1D.test_identity   s    6NR&.00F^q&!ABFFKK

1Qq6(:;QqV!&(BFFLLR!W)=qAqG%1 "r   dtypec                sH   ^p^\         P                  ! \         P                  ! RVR7      4      ,          p\        V4      P	                  V4      R\        V4      P	                  V4      ,          ,           p\         P
                  ! V\         P                  ! V4      .4      p\        V4      P	                  V4      p\         P
                  ! V\         P                  ! V4      .4      p\        ^V^,          4       F  p\         P                  P                  \         P                  P                  WHR7      VR7      p	\        W^ V V^ R7       \         P                  P                  \         P                  P                  WhR7      VR7      p
\        W^ V V^ R7       K  	  R# i         ?r.   r#   nr%   rtolN)r	   spacingarrayr   astypeconcatenate
zeros_liker&   r   r'   r   r(   r)   )r   r.   r*   r%   r   xxr+   Zxxrr,   Zcheck_cZcheck_rs   &&         r   test_identity_long_shortZ"TestFFT1D.test_identity_long_short$   s#    2::bhhr7886N!!%(2v0E0Ee0L+LL^^Qa 012F^""5)nnb"--"345q&1*%Affkk"&&**Q*"4k:GG!W4a@ffll266;;r;#71l=GG1XDqA &r   c                s   ^p^\         P                  ! \         P                  ! RVR7      4      ,          p\        V4      P	                  V4      R\        V4      P	                  V4      ,          ,           p\         P
                  ! V\         P                  ! V4      .4      p\        ^V^,          4       EF#  p\         P                  P                  \         P                  P                  WFR7      VR7      p\        Wu^ V V^ R7       VP                  4       pV^,          ^,           p	^ VP                  ^ &   V^,          ^ 8X  d   ^ VP                  V	^,
          R% \         P
                  ! V\         P                  ! V4      .4      p
\         P                  P                  \         P                  P                  WFR7      VR7      p\        W^ V	 V^ R7       EK&  	  R# r/   )r	   r6   r7   r   r8   r9   r:   r&   r   r'   r   copyZimagr)   r(   )r   r.   r*   r%   r   r;   r,   Zcheck_via_cyr3   ZyyZcheck_via_rs   &&          r   !test_identity_long_short_reversedZ+TestFFT1D.test_identity_long_short_reversed6   sW    2::bhhr7886N!!%(2v0E0Ee0L+LL^^Qa 012q&1*%A&&**RVV[[[%8A*>KKAat!D AQ
AAFF1I1uz!"q1uvBMM!$4 56B&&++bffll1l&:a+@KKAat!DD &r   c                s:   \        ^4      R\        ^4      ,          ,           p\        \        V4      \        P                  P	                  V4      RR7       \        \        V4      \        P                  P	                  VRR7      RR7       \        \        V4      \        P
                  ! ^4      ,          \        P                  P	                  VRR7      RR7       \        \        V4      R,          \        P                  P	                  VRR7      RR7       R	# )
   r#   ư>r$   backwardnormortho      >@forwardN)r   r   r   r	   r   sqrtr   r      & r   test_fftZTestFFT1D.test_fftN   s    2JfRj(QAT:QAJ!?dKQ"''"+-

17
3$	@Q#

19
5D	Br   r   	transposec                s   a V3R  lpV\         J dW   \        R4      R\        R4      ,          ,           p\        P                  P                  \        P                  P                  rvM>\        R4      p\        P                  P
                  \        P                  P                  rvV! WSR7      pV! V4      p	V! WYVR7      p
\        W4       V! WR7      pV\         J d   T	MV! V4      pV! WVR7      p\        W4       R# )c                    < S'       d+   \         P                  ! V P                  4      P                  # \         P                  ! V 4      # Nr	   r:   Tr   rL      &r   r:   Z3TestFFT1D.test_fft_out_argument.<locals>.zeros_like[   .    }}QSS)+++}}Q''r   r#   r   )outr   N)
      )complexr   r	   r   r'   r)   r(   r   )r   r.   rL   r   r:   r>   r   r'   expectedrT   result	expected2out2result2   &&f&          r   test_fft_out_argumentZTestFFT1D.test_fft_out_argumentW   s    	( Gx 2x(8#88A

BFFKKx ARVV\\q$"Qd+6,-	w&sJy,As407.r   c                s\   \        R4      R\        R4      ,          ,           pVP                  4       p\        P                  P                  W1R7      p\        P                  P                  W1VR7      p\	        WT4       VP                  4       pV^ 8X  d
   VR,          MVR,          p\        P                  P                  V^
VR7      p\        P                  P                  V^
WR7      p	\	        W4       V^ 8X  d   \	        VR,          VR,          4       M\	        VR,          VR,          4       VP                  4       p
V^ 8X  d
   V
R	,          MV
R,          pV^ 8X  d
   V
R
,          MV
R,          p\        P                  P                  V^
VR7      p\        P                  P                  V^
WR7      p\	        W4       V^ 8X  d6   \	        V
R,          VR,          4       \	        V
R,          VR,          4       M4\	        V
R,          VR,          4       \	        V
R,          VR,          4       VP                  4       pV^ 8X  d
   VR,          MVR,          pV^ 8X  d
   VR,          MVR,          p\        P                  P                  V^VR7      p\        P                  P                  V^VVR7      p\	        VV4       V^ 8X  d   \	        VR,          VR,          4       M\	        VR,          VR,          4       VP                  4       pVP
                  p\        P                  P                  VVVR7      p\	        VV4       VP                  4       pV^ 8X  d   VRRR1,          MVRRRR13,          p\        P                  P                  VVVR7      p\	        VV4       R# )rV   r#   r   )r   rT   NrU   NNNN)r3   r   )r3   r   rT   rU   NN   NNrc      NNrc   Nre   NNNre   NN)rV   rV   )r`   r_   )r`   ra   )r`   rb   )r`   rd   )r`   rf   )r`   rg   )r`   rh   r   )r   r=   r	   r   r   rP   )r   r   r>   Zy1Z	expected1Zresult1Zy2r[   rZ   r\   Zy3Zy3_selZout3Z	expected3Zresult3Zy4Zy4_selZout4Z	expected4Zresult4Zy5Zout5Zresult5Zy6Zout6Zresult6s   &&                        r   test_fft_inplace_outZTestFFT1D.test_fft_inplace_outu   s    8rF8$444VVXFFJJrJ-	&&**R*37.VVX!)r#wFFFJJrRdJ3	&&**R2D*;7.19r#w#/r&z1V95VVX19B"U)19r$x"W+FFJJv$J7	&&**Vr*?7.19r"vqu-r#w#/r%y!E(3r&z1V95VVX AIC2f:!)r#wFFFJJv$J7	&&**Vr$*?7I.19r#w#/r&z1V95VVXtt&&**Rd*57I.VVX19r$B$x"Q"W+&&**Rd*57I.r   c           
     s   \         P                  ! R 4      p\        P                  ! \        RR7      ;_uu_ 4        \         P
                  P                  VRR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \         P
                  P                  V\         P                  ! V4      P                  ^R	4      R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \         P
                  P                  V\         P                  ! V\        R7      R7       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)
rF   zmust be of ArrayTypeZmatchZ )rT   Nhas wrong shapezCannot castr1   r   )
r	   r
   pytestraisesZ	TypeErrorr   r   r:   r   floatrI   rJ   r   test_fft_bad_outZTestFFT1D.test_fft_bad_out   s    IIcN]]9,BCCFFJJqbJ! D]]:->??FFJJqbmmA.66q"=J> @]]9M::FFJJqbmmAU;J< ;:	 DC??:::s$   "E	AE;<E'E	E$	'E8	rD   Nc           
     s   \        ^4      R\        ^4      ,          ,           p\        V\        P                  P	                  \        P                  P                  W!R7      VR7      RR7       \
        P                  ! \        RR7      ;_uu_ 4        \        P                  P	                  . VR7       RRR4       R#   + '       g   i     R# ; i)r@   r#   rC   rA   r$   z!Invalid number of FFT data pointsrj   N)r   r   r	   r   r'   rl   rm   r   )r   rD   r      && r   	test_ifftZTestFFT1D.test_ifft   s    2JfRj(rvv{{266::a:3${?	 ]]:!DF FFFKKK&F F F Fs   "B>>C	c           	     s   \        R
4      R\        R
4      ,          ,           p\        \        P                  P                  \        P                  P                  V^R7      ^ R7      \        P                  P	                  V4      RR7       \        \        P                  P	                  V4      \        P                  P	                  VRR7      RR7       \        \        P                  P	                  V4      \        P
                  ! R4      ,          \        P                  P	                  VRR7      RR7       \        \        P                  P	                  V4      R,          \        P                  P	                  VRR7      RR7       R	# r@   r#   r   rA   r$   rB   rC   rE   rG   Nr@   rV   X       @)r   r   r	   r   fft2rH   rI   rJ   r   	test_fft2ZTestFFT1D.test_fft2   s    8rF8$444

266::aa:#8q
AAT	3AAJ7d	DA)99AG44	AA)4AI6T	Cr   c           	     s   \        R
4      R\        R
4      ,          ,           p\        \        P                  P	                  \        P                  P	                  V^R7      ^ R7      \        P                  P                  V4      RR7       \        \        P                  P                  V4      \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      \        P                  ! R4      ,          \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      R,          \        P                  P                  VRR7      RR7       R	# rr   )r   r   r	   r   r'   ifft2rH   rI   rJ   r   
test_ifft2ZTestFFT1D.test_ifft2   s    8rF8$444BFFKKK$:CQd	4QQZ8t	EQ"'''*::QW5D	BQ95QY7d	Dr   c                sZ   \        R
4      R\        R
4      ,          ,           p\        \        P                  P                  \        P                  P                  \        P                  P                  V^R7      ^R7      ^ R7      \        P                  P	                  V4      RR7       \        \        P                  P	                  V4      \        P                  P	                  VRR7      RR7       \        \        P                  P	                  V4      \        P
                  ! R4      ,          \        P                  P	                  VRR7      RR7       \        \        P                  P	                  V4      R,          \        P                  P	                  VRR7      RR7       R	# r@   r#   r   rA   r$   rB   rC   rE   rG   Nr@   rV   rU   p       p@)r   r   r	   r   fftnrH   rI   rJ   r   	test_fftnZTestFFT1D.test_fftn   s   < 2|(<#<<FFJJrvvzz"&&**QQ*"7az@qJIFFKKN	' 	AAJ7d	DA)>>AG44	AA/:AI6T	Cr   c                sZ   \        R
4      R\        R
4      ,          ,           p\        \        P                  P	                  \        P                  P	                  \        P                  P	                  V^R7      ^R7      ^ R7      \        P                  P                  V4      RR7       \        \        P                  P                  V4      \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      \        P                  ! R4      ,          \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      R,          \        P                  P                  VRR7      RR7       R	# rz   )r   r   r	   r   r'   ifftnrH   rI   rJ   r   
test_ifftnZTestFFT1D.test_ifftn   s   < 2|(<#<<FFKKBFFKKK$:C!KLFFLLO$	( 	QQZ8t	EQ"'',*??QW5D	BQ?;QY7d	Dr   c                s>   \        ^4      pVP                  ^VP                  ,          3 EFm  pR	 F`  p\        \        P                  P	                  WVR7      RV^,          ^,            \        P                  P                  WVR7      RR7       Kb  	  \        \        P                  P                  WR7      \        P                  P                  WRR7      RR7       \        \        P                  P                  WR7      \        P                  ! V4      ,          \        P                  P                  WRR7      RR7       \        \        P                  P                  WR7      V,          \        P                  P                  WRR7      RR7       EKp  	  R# )
r@   NrB   rE   rG   r3   rD   rA   r$   r2   NrB   rE   rG   )r   sizer   r	   r   r)   rH   )r   r   r3   rD      &   r   	test_rfftZTestFFT1D.test_rfft   s!   2J&&!aff*%A>FFJJqDJ1-AFQJ@FFKKTK2? ? A#A44A A#bggaj0A1> A#a'A3$@ @ &r   c                s    \         P                  ! ^4      p^p\         P                  P                  W4      p\	        V\         P                  P                  VRV 4      RV^,          ^,            RR7       R# )i   N+=r5   )r	   r
   r   r)   r   )r   r   r3   r>   r   r   test_rfft_evenZTestFFT1D.test_rfft_even  sT    IIaLFFKK266::ae,[a1fqj9Fr   c                s    \         P                  ! . RO4      p\         P                  P                  V4      p\	        V\         P                  P                  V4      R,          RR7       R# )r   :Nr   Nr   r   N)r   r    r   r   i)r	   r7   r   r)   r   )r   r   r>   r   r   test_rfft_oddZTestFFT1D.test_rfft_odd
  s?    HH%&FFKKN266::a=,59r   c           
     st   \        ^4      p\        V\        P                  P	                  \        P                  P                  V4      4      RR7       \        V\        P                  P	                  \        P                  P                  VRR7      RR7      RR7       \        V\        P                  P	                  \        P                  P                  VRR7      RR7      RR7       \        V\        P                  P	                  \        P                  P                  VRR7      RR7      RR7       R# )r@   rA   r$   rB   rC   rE   rG   N)r   r   r	   r   r(   r)   rI   rJ   r   
test_irfftZTestFFT1D.test_irfft  s    2J266<<A7dC266<<AJ(G' ( )/3	5266<<AG(D$ ( &,0	2266<<AI(F& ( (.2	4r   c                s   \        R4      p\        \        P                  P	                  V4      R	,          \        P                  P                  V4      RR7       \        \        P                  P                  V4      \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      \        P                  ! R
4      ,          \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      R,          \        P                  P                  VRR7      RR7       R# )r@   rA   r$   rB   rC   rE   rG   Nrs   )r`   :Ni   Nrt   ru   )r   r   r	   r   rv   rfft2rH   rI   rJ   r   
test_rfft2ZTestFFT1D.test_rfft2  s    8Av.QdKQQZ8t	EQ"'''*::QW5D	BQ95QY7d	Dr   c           
     t   \        R4      p\        V\        P                  P	                  \        P                  P                  V4      4      RR7       \        V\        P                  P	                  \        P                  P                  VRR7      RR7      RR7       \        V\        P                  P	                  \        P                  P                  VRR7      RR7      RR7       \        V\        P                  P	                  \        P                  P                  VRR7      RR7      RR7       R# )	r@   rA   r$   rB   rC   rE   rG   Nrs   )r   r   r	   r   Zirfft2r   rI   rJ   r   test_irfft2ZTestFFT1D.test_irfft2#  s    8266==a9E266==aj)I' ) )/3	5266==ag)F$ ) &,0	2266==ai)H& ) (.2	4r   c           
     s   \        R
4      p\        \        P                  P	                  V4      R,          \        P                  P                  V4      RR7       \        \        P                  P                  V4      \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      \        P                  ! R4      ,          \        P                  P                  VRR7      RR7       \        \        P                  P                  V4      R,          \        P                  P                  VRR7      RR7       \        P                  ! R4      p\        P                  P                  VRRR7      p\        P                  P                  \        P                  P                  \        P                  P                  V^^(R7      ^ ^R7      ^ ^
R7      p\        W#RR7       R	# )r@   rA   r$   rB   rC   rE   rG   )axess)r   r3   Nr{   )r`   r`   :N   Nr|   r}   )r   r   )r    r    r   )rU   rV   i(   )	r   r   r	   r   r~   rfftnrH   onesr)   )r   r   rY   rX   r   r   
test_rfftnZTestFFT1D.test_rfftn-  sL   < Ax0"&&,,q/MQQZ8t	EQ"'',*??QW5D	BQ?;QY7d	D GGFOai<@66::bffjjQQ")E!"b ) *01R  9 	t4r   c           
     r   )	r@   rA   r$   rB   rC   rE   rG   Nr{   )r   r   r	   r   irfftnr   rI   rJ   r   test_irfftnZTestFFT1D.test_irfftn?  s    < 266==a9E266==aj)I' ) )/3	5266==ag)F$ ) &,0	2266==ai)H& ) (.2	4r   c                s   \        ^4      R\        ^4      ,          ,           p\        P                  ! \        ^4      V\        ^4      34      p\        P                  ! W!RRR
1,          P                  4       34      p\	        \        P
                  P                  V4      \        P
                  P                  V4      RR7       \	        \        P
                  P                  V4      \        P
                  P                  VRR7      RR7       \	        \        P
                  P                  V4      \        P                  ! ^4      ,          \        P
                  P                  VRR7      RR7       \	        \        P
                  P                  V4      R,          \        P
                  P                  VR	R7      RR7       R# )   r#   NrA   r$   rB   rC   rE   rF   rG   r   )r   r	   r9   conjr   r   hfftrH   r   r   Zx_hermr   r   	test_hfftZTestFFT1D.test_hfftI  s   2JfRj(Avay 9:NNFddGLLN34

1rvv{{6':FF+F<4	IF+bggbk9F9	FF+c1F;$	Hr   c           
     sV   \        ^4      R\        ^4      ,          ,           p\        P                  ! \        ^4      V\        ^4      34      p\        P                  ! W!RRR	1,          P                  4       34      p\	        V\        P
                  P                  \        P
                  P                  V4      4      RR7       \	        V\        P
                  P                  \        P
                  P                  VRR7      RR7      RR7       \	        V\        P
                  P                  \        P
                  P                  VRR7      RR7      RR7       \	        V\        P
                  P                  \        P
                  P                  VRR7      RR7      RR7       R# )
r   r#   NrA   r$   rB   rC   rE   rG   r   )r   r	   r9   r   r   r   ihfftr   r   r   r   
test_ihfftZTestFFT1D.test_ihfftU  s4   2JfRj(Avay 9:NNFddGLLN34RVV[[-@ AMRVV[[' .9 .)/9 !- !;AE	GRVV[[$ .9 .&,3 !- !5;?	ARVV[[& .9 .(.7 !- !9?C	Er   opc                s    \        R4      p. ROpV FJ  pV! \        P                  ! W$4      4      p\        P                  ! V! W$R7      V4      p\        WVRR7       KL  	  R# )r@   r   rA   r$   Nr{   )r    r   r   )r    r   r   )r   r    r   )r   r   r    )r   r    r   )r   r   r    )r   r	   rL   r   )r   r   r   r   aZop_trZtr_op   &&     r   	test_axesZTestFFT1D.test_axesa  sN     < QAr||A)*ELLA2EEt4 r   c                sR    \         P                  ! ^d4      P                  ^
^
4      pR# )d   N)r	   r
   r   r   r   r   rp   r   test_s_negative_1ZTestFFT1D.test_s_negative_1k  s     IIcN""2r*r   c                s    \         P                  ! ^d4      P                  ^
^
4      p\        P                  ! RR7      ;_uu_ 4        V! VRR7       RRR4       R#   + '       g   i     R# ; i)r   "`axes` should not be `None` if `s`rj   )r   Nr   rc   r	   r
   r   rl   warnsr   rp   r   test_s_axes_noneZTestFFT1D.test_s_axes_noner  sH     IIcN""2r*\\ DEEqG FEEEs   AA,	c                s    \         P                  ! ^d4      P                  ^
^
4      p\        P                  ! RR7      ;_uu_ 4        V! VRRR7       RRR4       R#   + '       g   i     R# ; i)r   r   rj   Nr   r   r   r   r   rp   r   test_s_axes_none_2DZTestFFT1D.test_s_axes_none_2Dy  sH    IIcN""2r*\\ DEEqG$' FEEEs   AA-	c                s    \        R4      p\        P                  ! RR7      ;_uu_ 4        V! VRRR7       RRR4       R#   + '       g   i     R# ; i)r@   z%array containing `None` values to `s`rj   Nr   r{   )rU   NrU   r   )r   rl   r   r   rp   r   test_s_contains_noneZTestFFT1D.test_s_contains_none  s:     < \\ GHHqN3 IHHHs   AA	c           	     s   \        ^4      p\        P                  P                  V4      pVP                  ^,          p\        P
                  P
                  \        P
                  P                  3\        P
                  P                  \        P
                  P                  3\        P
                  P                  \        P
                  P                  3.pV Fs  w  rVVP                  ^VP                  ,          3 FK  pR FB  pV! WVR7      pV! WVR7      p\        V\        P                  P                  V4      RR7       KD  	  KM  	  Ku  	  R# )r@   Nr   rA   r$   r   )r   r	   ZlinalgrD   r   r   r'   r)   r(   r   r   r   )	r   r   Zx_normr3   Z
func_pairsZforwZbackrD   Ztmps	   &        r   test_all_1d_norm_preservingZ%TestFFT1D.test_all_1d_norm_preserving  s    2J"FFQJvvzz266;;/vv{{BFFLL1 vv||RVV[[1	
 %JDffa!&&j)BDqD1Csd3C#F$&IINN3$7dD C * %r   r   c                s   a V3R  lpV\         J dW   \        R4      R\        R4      ,          ,           p\        P                  P                  \        P                  P
                  rvM>\        R4      p\        P                  P                  \        P                  P                  rvV! WSR7      pV! V4      p	V! WYVR7      p
\        W4       V! WR7      pV\         J d   T	MV! V4      pV! WVR7      p\        W4       R# )c                 rM   rN   rO   rQ   rR   r   r:   Z4TestFFT1D.test_fftn_out_argument.<locals>.zeros_like  rS   r   r#   r   )rT   r   NrU   rc   r   )	rW   r   r	   r   r~   r   r   r   r   )r   r.   rL   r   r:   r   r   r'   rX   rT   rY   rZ   r[   r\   r]   r   test_fftn_out_argumentZ TestFFT1D.test_fftn_out_argument  s    	( Gz"R&*<%<<ARVV\\z"Abffmmq$"Qd+6,-	w&sJy,As407.r   r   c           	     s   V\         P                  P                  J d   \        R4      pM"\        R4      R\        R4      ,          ,           p\        P
                  ! \        RR7      ;_uu_ 4        V! V\         P                  ! V4      R	R
R7       RRR4       RpV! W#R
R7      p\         P                  ! V4      pV! W#R
VR7      p\        Wd4       R#   + '       g   i     LJ; i)rU   r#   rk   rj   )rT   r   r   Nr   r   r   rT   r   r   r   r   r   )rU   rc   rc   )	r	   r   r   r   rl   rm   r   r:   r   )r   r   r   r   rX   rT   rY   r   r   test_fftn_out_and_s_interactionZ)TestFFT1D.test_fftn_out_and_s_interaction  s     "&&,,z"Az"R&*<%<<A]]:->??r}}Q'99E @ qI.mmH%Q)56, @?s   1!CC$	r   c                s   \        R4      R\        R4      ,          ,           p\        P                  P                  W!RR7      p\        P                  ! V4      p\        P                  P                  W!RVR7      p\        WS4       R# )	   r#   r   r   N)r   rc   r   r   r   )r   r	   r   r   r:   r   )r   r   r   rX   rT   rY   s   &&    r   !test_irfftn_out_and_s_interactionZ+TestFFT1D.test_irfftn_out_and_s_interaction  sa     < 2|(<#<<66==i=8mmH%qI3?6,r   r   r    r   )TFr   )r   r    r   N)r   rc   rc   r   )5r   r   r   r   r-   rl   markparametrizer	   ZsingleZdoubleZ
longdoubler<   r?   rK   rW   rn   r^   ri   ro   rq   rw   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r~   r   r   r   r   rv   rx   r   r   r   r   r   r   r   r   r   r   r    r!   r   r"   r"      s    1 [[Wryy"))R]]&KLB MB" [[Wryy"))R]]&KLE ME.B [[VV,[[Ww&67[[[-8/ 9 8 -/6 [[VaV,9/ -9/v= [[V%KL' M'	C	D
C
D@"G:
4D45$4
H
E [[TBFFKK$&FFLL"&&--$A B5B5 [[TBFFKK$&FFKK$? @>@>
 [[TBFFKK$&FFLL"&&--$A BB
 [[TBFFKK#>?( @(
 [[TBFFKK$&FFLL"&&--$&FFKK$? @4@4
D& [[V%;<[[Ww&67[[[-8/ 9 8 =/6 [[URVV[["&&,,$MN- O-  [[S9i"89- :-r   r"   r.   orderFznon-contiguousr   c                 s   \         P                  P                  ^*4      pVP                  ^^^4      P	                  V RR7      pR\         P
                  ! \         P                  ! VP                  4      4      ,          \         P                  ! VP                  4      P                  ,          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      '       d4   \        ^4       F"  pV! WGR7      pV! WgR7      p	\!        WWUR7       K$  	  R# VP                  P                  R4      '       dc   . ROp
VP                  P                  R	4      '       d   V
P#                  . RO4       V
 F"  pV! WKR
7      pV! WkR
7      p	\!        WWUR7       K$  	  R# \$        h)*   F)r=   g       @r   Nr   r   r4   r~   r   r   )rv   r~   )r   )r   r   r   ))r    )r   )r   N)r	   r   RandomStaterandr8   rH   Zlog2r   Zfinfor.   ZepsZasfortranarrayZascontiguousarrayr   Zendswithr&   r   Zextendr   )r.   r   r   rngZXZ_tolZYr   ZX_resZY_resr   Zaxs   &&&         r   test_fft_with_orderr     s]    ))


#CAr!!%e!4A))BHHQWW,=,A,AAD|a  ddG  4R4)
||U##!HD%E%EEt?  
		/	0	0'<<  ((KK01BOEOEEt? 
 r   ZCr3   c                 s    \         P                  P                  ^*4      pVP                  ^
4      p\         P                  ! V\         P
                  V R7      p\         P                  P                  W1R7      pR# )r   )r.   r   r2   N)r	   r   r   r   Zasarray	complex64r   )r   r3   r   r   Zres   &&   r   test_fft_output_orderr     sO     ))


#CA


1BLL6A
&&**Q*
Cr   zCannot start thread)Zreasonc                   sF   a  ] tR tRt o ^tR	tR tR tR tR t	R t
RtV tR# )
TestFFTThreadSafei  c                s  a V3R  lp\         P                  ! 4       pS! V!  p\        V P                  4       Uu. uF  p\        P
                  ! W2V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4       K"  	  R# u upi u upi u upi )c                 s2   < VP                  S! V !  4       R # rN   )Zput)argsqfuncs   &&r   workerZ.TestFFTThreadSafe._test_mtsame.<locals>.worker  s    EE$+r   )Ztargetr   )Ztimeoutz6Function returned wrong value in multithreaded contextN)
queueZQueuer&   threads	threadingZThreadZstartZjoinr   Zget)	r   r   r   r   r   rX   r,   Ztr   s	   &f*      r   _test_mtsameZTestFFTThreadSafe._test_mtsame  s    	 KKM; DLL)+) V)<) 	
 +AqA1a1t||$AquuQu/HJ %+s   "C"C Cc                s    \         P                  ! V P                  4      ^,          R,           pV P                  \         P                  P                  V4       R# r   y                N)r	   r   input_shaper   r   r   r   rJ   r   rK   ZTestFFTThreadSafe.test_fft  s8    GGD$$%)B."&&**a(r   c                    \         P                  ! V P                  4      ^,          R,           pV P                  \         P                  P
                  V4       R# r   )r	   r   r   r   r   r'   r   rJ   r   rq   ZTestFFTThreadSafe.test_ifft!  s8    GGD$$%)B."&&++q)r   c                s    \         P                  ! V P                  4      pV P                  \         P                  P
                  V4       R # rN   )r	   r   r   r   r   r)   r   rJ   r   r   ZTestFFTThreadSafe.test_rfft%  s.    GGD$$%"&&++q)r   c                r   r   )r	   r   r   r   r   r(   r   rJ   r   r   ZTestFFTThreadSafe.test_irfft)  s8    GGD$$%)B."&&,,*r   r   N)i   i   )r   r   r   r   r   r   r   rK   rq   r   r   r   r   r    r!   r   r   r     s.     GKJ$)**+ +r   r   c                  s,   \         P                  ! ^
4      p \         P                  P                  V ^R7       \         P                  P	                  V ^R7       \         P                  P                  \         P
                  ! ^ .\        4      ^
R7       R# )rU   r2   N)r	   r
   r   r(   r   r7   rW   )r   s    r   test_irfft_with_n_1_regressionr   .  sX    
		"AFFLLaLFFKKQKFFLL1#w'2L.r   c                  s    \         P                  ! ^4      R,          p \         P                  P                  V ^
R7      p\         P                  ! . RO4      p\        W4       R# )rc   r2   Ny      ?      ?)
g      4@gk "#@g'g$ pn]k@grg      @gG& gdƍĿgt=M?g@L>M4)r	   r
   r   r   r7   r   )r   rY   rX   s      r   "test_irfft_with_n_large_regressionr   6  sG    
		!AVV[[b[!Fxx 2 3H F%r   datar1   c                 s    V! V 4      pV P                  \        P                  ! V R 4      4      pV! V4      p\        W$4       R# )r0   N)r8   r	   Zresult_typer   )r   r   rY   Z
float_datarX   r   r   #test_fft_with_integer_or_bool_inputr   @  s7     YFR^^D"56J:Hv(r   )Ni   i   )FTF)(r   r   rl   Znumpyr	   Znumpy.randomr   Znumpy.testingr   r   r   r   r   r   r"   r   r   Zfloat32Zfloat64r   Z
complex128r   rv   r~   r'   rx   r   r   r   Zskipifr   r   r   r)   r(   r7   r
   Zuint8Zint16r   r   r   r   <module>r      s        U U-< <z- z-z 	RZZr}}=? 3(8"9:	RVV[["&&++	bffllBFFLL	23	3 ;?> 3*-m,: - .: G$9:$+ $+ ;$+N/& FFJJRVV[["&&,,!  HH!"IIb!IIarxx " 
))r   