id_2 fddlZddlZddlmZddlmZmZmZm Z ddl Z ddl Z dZ GddZ GddZejd ejejejejgejd d d gejd ejjejjejjejjejjejjgdZeje dGddZdS)N)random)assert_array_equal assert_raisesassert_allcloseIS_WASMct|}dtjztj||z z}tj|dd|z}tj|tj|zdS)Nyaxis)lennppiarangereshapesumexp)xLphases S/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/fft/tests/test_pocketfft.pyfft1r sm AA "%K29Q<r+backwardnormortho>@forward)rrrrr sqrtr!rs rtest_fftzTestFFT1D.test_fft$s 2JJF2JJ &QAT::::QAJ!?!?dKKKKQ"'"++- 17 33$ @ @ @ @Q#  19 55D B B B B B Brr:Nr8r;r=c tddtdzz}t|tjtj|||dt jtd5tjg|ddddS#1swxYwYdS)Nr6r*r9r7r+z!Invalid number of FFT data points)match)rrrr r.pytestraisesr)r!r:rs r test_ifftzTestFFT1D.test_ifft-s 2JJF2JJ & rv{{26::ad:33${??    ]:!DFFF ' ' FKKK & & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's"B==CCc(tddtdzz}ttjtj|ddtj|dttj|tj|d dttj|tjd z tj|d dttj|d z tj|d ddSNr6r*r r rr7r+r8r9Xr;@r=)rrrr fft2r>r?s r test_fft2zTestFFT1D.test_fft28sO 8  r&"2"22 2 26::aa:#8#8q AA AT 3 3 3 3 A AJ 77d D D D D A)9)99 AG 444 A A A A A)4 AI 66T C C C C C Crc(tddtdzz}ttjtj|ddtj|dttj|tj|d dttj|tjd ztj|d dttj|d ztj|d ddSrH)rrrr r.ifft2r>r?s r test_ifft2zTestFFT1D.test_ifft2CsO 8  r&"2"22 2 BFKKK$:$: CC Qd 4 4 4 4 Q QZ 88t E E E E Q"''*:*:: QW 55D B B B B Q95 QY 77d D D D D D Drc ftddtdzz}ttjtjtj|dddtj|dttj|tj|d dttj|tjd z tj|d dttj|d z tj|d ddSNr6rJ r*rr r rr7r+r8r9pr;p@r=)rrrr fftnr>r?s r test_fftnzTestFFT1D.test_fftnNsd < 2f\&:&:#: : FJJrvzz"&**QQ*"7"7az@@qJ I I FKKNN ' ' ' '  A AJ 77d D D D D A)>)>> AG 444 A A A A A/: AI 66T C C C C C Crc ftddtdzz}ttjtjtj|dddtj|dttj|tj|d dttj|tjd ztj|d dttj|d ztj|d ddSrS)rrrr r.ifftnr>r?s r test_ifftnzTestFFT1D.test_ifftnZsd < 2f\&:&:#: : FKK BFKKK$:$: CC!K L L FLLOO$ ( ( ( (  Q QZ 88t E E E E Q"',*?*?? QW 55D B B B B Q?; QY 77d D D D D D Drc 0td}|jd|jzfD]s}dD]b}ttj|||d|dzdztj|||dcttj||tj||d dttj||tj|z tj||d dttj|||z tj||d dudS) Nr6rrAnr:r r7r+)r_r8r;r=)rsizerrr r0r>)r!rr_r:s r test_rfftzTestFFT1D.test_rfftfs 2JJ&!AF(# @ @A> ? ?FJJqADJ11+AqD1H+>FKKQTK22?????  A ## A 444 A A A A  A ##bgajj0 A 11 > > > >  A ##a' A 33$ @ @ @ @ @ @ @rc td}t|tjtj|dt|tjtj|dddt|tjtj|dddt|tjtj|ddddS)Nr6r7r+r8r9r;r=)rrrr r/r0r?s r test_irfftzTestFFT1D.test_irfftws$ 2JJ26<< A77dCCCC26<< AJ (G(G'())/3 5 5 5 526<< AG (D(D$(&&,0 2 2 2 226<< AI (F(F&(((.2 4 4 4 4 4 4rctd}ttj|ddddftj|dttj|tj|ddttj|tjdz tj|ddttj|d z tj|d ddS) NrI r7r+r8r9rKr;rLr=)rrrr rMrfft2r>r?s r test_rfft2zTestFFT1D.test_rfft2s- 8   Aqqq#2#v. QdKKKK Q QZ 88t E E E E Q"''*:*:: QW 55D B B B B Q95 QY 77d D D D D D Drc td}t|tjtj|dt|tjtj|dddt|tjtj|dddt|tjtj|ddddS)NrIr7r+r8r9r;r=)rrrr irfft2rfr?s r test_irfft2zTestFFT1D.test_irfft2s& 8  26==a99EEEE26==aj)I)I')))/3 5 5 5 526==ag)F)F$)&&,0 2 2 2 226==ai)H)H&)((.2 4 4 4 4 4 4rctd}ttj|ddddddftj|dttj|tj|ddttj|tjdz tj|ddttj|d z tj|d ddS) NrTr7r+r8r9rVr;rWr=)rrrr rXrfftnr>r?s r test_rfftnzTestFFT1D.test_rfftns3 <  Aqqq!!!RaRx0"&,,q//MMMM Q QZ 88t E E E E Q"',*?*?? QW 55D B B B B Q?; QY 77d D D D D D Drc td}t|tjtj|dt|tjtj|dddt|tjtj|dddt|tjtj|ddddS)NrTr7r+r8r9r;r=)rrrr irfftnrmr?s r test_irfftnzTestFFT1D.test_irfftns& < 26==a99EEEE26==aj)I)I')))/3 5 5 5 526==ag)F)F$)&&,0 2 2 2 226==ai)H)H&)((.2 4 4 4 4 4 4rctddtdzz}tjtd|tdf}tj||dddf}t tj|tj|dt tj|tj|ddt tj|tjd z tj|d dt tj|d z tj|d ddS) Nr*r r r7r+r8r9r6r;r<r=)rr concatenateconjrr hfftr>r!rx_herms r test_hfftzTestFFT1D.test_hfftsw 2JJF2JJ &Avayy 9:: NFAdddGLLNN3 4 4 1 rv{{6':':FFFF F++ F <<4 I I I I F++bgbkk9 F 99 F F F F F++c1 F ;;$ H H H H H Hrc tddtdzz}tjtd|tdf}tj||dddf}t |tjtj|dt |tjtj|dddt |tjtj|d d dt |tjtj|d d ddS) Nrsr*r r r7r+r8r9r;r=)rrrtrurr ihfftrvrws r test_ihfftzTestFFT1D.test_ihffts 2JJF2JJ &Avayy 9:: NFAdddGLLNN3 4 4 RV[[-@-@ A AMMMM RV[['.9.).)/9!-!;!;AE G G G G RV[[$.9.&.&,3!-!5!5;? A A A A RV[[&.9.(.(.7!-!9!9?C E E E E E Eropctd}gd}|D]R}|tj||}tj||||}t||dSdS)NrT))rr r)rrr )r rr)r rr)rrr )rr raxesr7r+)rr transposer)r!r}rraop_trtr_ops r test_axeszTestFFT1D.test_axess < QQQ 5 5ABr|Aq))**ELAA22E E5t 4 4 4 4 4 5 5rc td}tj|}|jdz}tjjtjjftjjtjjftjj tjj fg}|D]i\}}|jd|jzfD]R}dD]M}||||}||||}t|tj|dNSjdS)Nr6rrAr^r7r+) rrlinalgr:r`r r.r0r/r{rvr) r!rx_normr_ func_pairsforwbackr:tmps rtest_all_1d_norm_preservingz%TestFFT1D.test_all_1d_norm_preservings$ 2JJ"" FQJvz26;/v{BFL1v|RV[1  % D DJD$fah' D DBDDD$qAD111C$sad333C#F$&INN3$7$7dDDDDDD D D Drdtypecztd|}ttjtj||dttjtj||ddS)Nr6r7r+)rastyperrr r.r/r0)r!rrs r test_dtypeszTestFFT1D.test_dtypess 2JJ  e $ $ BFJJqMM22ADAAAA RV[[^^44adCCCCCCrN)"r#r$r%r4r@rDmark parametrizerFrNrQrYr\rarcrgrjrnrqryr|rr rXr[rmrprrhalfsingledouble longdoublerr&rrr(r(s111BBB [V%KLL''ML' C C C D D D C C C D D D@@@"444DDD444DDD444 H H H E E E [TBFK$&FL"&-$ABB55BB5DDD& [Wrw 29')}'677DD77DDDrr(rorderFznon-contiguousr ctjd}|ddd|d}dtjtj|jztj|j j z}|dkrtj |}n(|ddd }tj |ddd }|j d rAtd D]/}||| }||| } t!|| || 0dS|j drigd} |j dr| gd| D]/} ||| }||| } t!|| || 0dSt%)N* F)copyg @rr r rr )r,rtol)rMrX))rr )r r)rrrX))r)r )rNr)rr RandomStaterandrr>log2r`finforepsasfortranarrayascontiguousarrayr#endswithr-rextendr) rrr rngX_tolYr X_resY_resraxs rtest_fft_with_orderrs )   # #C Ar!!%e!44A )) )BHQW,=,=,A AD ||  a  dddG  44R4 ) ) |U##!HH @ @DC%%%EC%%%E E5t$ ? ? ? ? ? @ @   / 0 0 ''' <  ( ( 2 KK000 1 1 1 @ @BCOOOECOOOE E5t$ ? ? ? ? ? @ @ llrzCannot start thread)reasonc4eZdZdZdZdZdZdZdZdZ dS) TestFFTThreadSafe)i c4fdtj}fdt|jD}d|Dd|Dt|jD]'}t d|d(dS)Nc8||dSN)put)argsqfuncs rworkerz.TestFFTThreadSafe._test_mtsame..workers! EE$$+     rc@g|]}tjfS))targetr) threadingThread).0r3rrrs r z2TestFFTThreadSafe._test_mtsame..s= + + + V4) < < < + + +rc6g|]}|Sr&)startrrs rrz2TestFFTThreadSafe._test_mtsame..s qrc6g|]}|Sr&)joinrs rrz2TestFFTThreadSafe._test_mtsame.. s ar)timeoutz6Function returned wrong value in multithreaded context)queueQueuer-threadsrget)r!rrexpectedtr3rrs `` @@r _test_mtsamezTestFFTThreadSafe._test_mtsames      KMM4; + + + + + +DL)) + + +A1t|$$ J JA quuQu//H J J J J J Jrctj|jdzdz}|tjj|dSNr y)rones input_shaperr r!rs rr@zTestFFTThreadSafe.test_fft&s> GD$ % % )" , "&*a(((((rctj|jdzdz}|tjj|dSr)rrrrr r.rs rrFzTestFFTThreadSafe.test_ifft*s> GD$ % % )" , "&+q)))))rctj|j}|tjj|dSr)rrrrr r0rs rrazTestFFTThreadSafe.test_rfft.s4 GD$ % % "&+q)))))rctj|jdzdz}|tjj|dSr)rrrrr r/rs rrczTestFFTThreadSafe.test_irfft2s> GD$ % % )" , "&,*****rN) r#r$r%rrrr@rFrarcr&rrrrslGKJJJ$)))******+++++rr)numpyrrD numpy.randomr numpy.testingrrrrrrrrr(rrfloat32float64 complex64 complex128r rMrXr.rPr[rskipifrr&rrrs              +++<<<<<<<< MDMDMDMDMDMDMDMD` RZr}=??3(8"9:: RV["&+ bflBFL 233 33;:??>G$9::$+$+$+$+$+$+$+;:$+$+$+r