K i~_ <ddlZddlZddlZddlZddlmZddlmZm Z m Z m Z dZ GddZ GddZejj!d ej"ej$ej&ej(gejj!d d d gejj!d ej*j*ej*j,ej*j.ej*j0ej*j2ej*j4gdZejj!d d dgejj!dgddZejj;edGddZdZdZ ejj!d ej*j*ej*j0ej*jBej*jDgejj!dejFgdejHdejJejHdejLgdZ'y)N)random)IS_WASMassert_allcloseassert_array_equal assert_raisesct|}dtjztj||z z}tj|j dd|z}tj |tj |zdS)Nyaxis)lennppiarangereshapesumexp)xLphases d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/numpy/fft/tests/test_pocketfft.pyfft1r sg AA "%%K299QK$$/ // KAat! DAQ AAFF1I1uz!"q1uvBMM!$4 56B&&++bffll1l&:a+@K$$/ // KAat! D Erctddtdzz}tt|tjj |dtt|tjj |ddtt|tj dz tjj |ddtt|dz tjj |d dy) Nr*ư>r+backwardnormortho>@forward)rrrrr sqrtr!rs rtest_fftzTestFFT1D.test_fftNs 2JfRj (QAT:QAJ!?dKQ"''"+- 17 3$ @Q#  19 5D Brr rr transpose)TFc fd}|turOtddtdzz}tjjtjj}}n?td}tjj tjj }}|||}||} ||| |} | | usJt| ||||} |tur| n|| } || | |} | | usJt| | y)Ncr)tj|jjStj|SNrrDTrr`s rrDz3TestFFT1D.test_fft_out_argument..zeros_like[.}}QSS)+++}}Q''r) r*r )outr )complexrrr r.r0r/r)r!r5r`r rDrOr r.expectedrjresult expected2out2result2s ` rtest_fft_out_argumentzTestFFT1D.test_fft_out_argumentWs ( G x 2x(8#88A BFFKKCx A RVV\\Cqt$"QCd+}}68,- w&sJy,As40$7I.rrr c<tddtdzz}|j}tjj||}tjj|||}||usJt |||j}|dk(r|ddn |ddddf}tjj|d|}tjj|d||} | |usJt | ||dk(rt |dd|ddnt |ddddf|ddddf|j} |dk(r| d dn | ddd df} |dk(r| d d n | ddd d f} tjj| d|} tjj| d|| }|| usJt || |dk(r%t | dd |dd t | d d|d dn ? ? FFJJqbmmA.66q"=J > ? ]]9M : = FFJJqbmmAU;J < = =  " " ? ? = =s$"D"6AD.;D:"D+.D7:ErXNrVrYr[c rtddtdzz}t|tjj tjj|||dt j td5tjj g|dddy#1swYyxYw)NrTr*rWrUr+z!Invalid number of FFT data pointsr)rrrr r.rrr)r!rXrs r test_ifftzTestFFT1D.test_iffts 2JfRj ( rvv{{266::ad:3${? ]]:!DF ' FFKKK & ' ' 's "B--B6ctddtdzz}ttjjtjj|ddtjj |dttjj |tjj |d dttjj |tj d z tjj |d dttjj |d z tjj |d dyNrTrir*r r rrUr+rVrWXrY@r[)rrrr fft2r\r]s r test_fft2zTestFFT1D.test_fft2s 8 rF8$44 4 266::aa:#8q A AT 3 A AJ 7d D A)99 AG 44 A A)4 AI 6T Crctddtdzz}ttjj tjj |ddtjj |dttjj |tjj |d dttjj |tj d ztjj |d dttjj |d ztjj |d dyr)rrrr r.ifft2r\r]s r test_ifft2zTestFFT1D.test_ifft2s 8 rF8$44 4 BFFKKK$: C Qd 4 Q QZ 8t E Q"'''*:: QW 5D B Q95 QY 7d Drc 6tddtdzz}ttjjtjjtjj|dddtjj |dttjj |tjj |d dttjj |tj d z tjj |d dttjj |d z tjj |d dyNrTrirhr*rr r rrUr+rVrWprYp@r[)rrrr fftnr\r]s r test_fftnzTestFFT1D.test_fftns < 2|(<#< < FFJJrvvzz"&&**QQ*"7az@qJ I FFKKN '  A AJ 7d D A)>> AG 44 A A/: AI 6T Crc 6tddtdzz}ttjj tjj tjj |dddtjj |dttjj |tjj |d dttjj |tj d ztjj |d dttjj |d ztjj |d dyr)rrrr r.ifftnr\r]s r test_ifftnzTestFFT1D.test_ifftns < 2|(<#< < FFKK BFFKKK$: C!K L FFLLO$ (  Q QZ 8t E Q"'',*?? QW 5D B Q?; QY 7d Drc td}|jd|jzfD]a}dD]Y}ttjj |||d|dzdztjj |||d[ttjj ||tjj ||d dttjj ||tj |z tjj ||d dttjj |||z tjj ||d ddy) NrTrrr=rXr rUr+r<rVrYr[)rsizerrr r0r\)r!rr=rXs r test_rfftzTestFFT1D.test_rffts7 2J&&!aff*% @A> ?FFJJqADJ1-AFQJ@FFKKQTK2? ?  A # A 44 A  A #bggaj0 A 1 >  A #a' A 3$ @ @rctjd}d}tjj||}t |tjj|d|d|dzdzdy)Nrr +=r?)rrr r0r)r!rr=rOs rtest_rfft_evenzTestFFT1D.test_rfft_evensV IIaL  FFKK1 266::ae,[a1fqj9Frctjgd}tjj|}t |tjj|dddy)N)r rrrrrr)rrAr r0r)r!rrOs r test_rfft_oddzTestFFT1D.test_rfft_odd sA HH% & FFKKN266::a=!,59rc rtd}t|tjj tjj |dt|tjj tjj |dddt|tjj tjj |dddt|tjj tjj |dddy)NrTrUr+rVrWrYr[)rrrr r/r0r]s r test_irfftzTestFFT1D.test_irffts 2J266<< A7dC266<< AJ (G'()/3 5266<< AG (D$(&,0 2266<< AI (F&((.2 4rctd}ttjj |ddddftjj |dttjj |tjj |ddttjj |tj dz tjj |ddttjj |d z tjj |d dy) Nr rUr+rVrWrrYrr[)rrrr rrfft2r\r]s r test_rfft2zTestFFT1D.test_rfft2s 8  Aq#2#v. QdK Q QZ 8t E Q"'''*:: QW 5D B Q95 QY 7d Drc rtd}t|tjj tjj |dt|tjj tjj |dddt|tjj tjj |dddt|tjj tjj |dddy)NrrUr+rVrWrYr[)rrrr irfft2rr]s r test_irfft2zTestFFT1D.test_irfft2#s 8 266==a9E266==aj)I'))/3 5266==ag)F$)&,0 2266==ai)H&)(.2 4rc Btd}ttjj |ddddddftjj |dttjj |tjj |ddttjj |tj dz tjj |ddttjj |d z tjj |d dtjd }tjj |d d }|jdk(sJtjjtjjtjj|dddddd}|jdk(sJt||dy)NrrUr+rVrWrrYrr[)rr)rrr )rhri()axess)rhr r)r r=rrirh) rrrr rrfftnr\onesshaper0)r!rrmrls r test_rfftnzTestFFT1D.test_rfftn-sz <  Aq!RaRx0"&&,,q/M Q QZ 8t E Q"'',*?? QW 5D B Q?; QY 7d D GGFOai<@||x'''66::bffjjQQ")E!"b)*01R9~~)))t4rc rtd}t|tjj tjj |dt|tjj tjj |dddt|tjj tjj |dddt|tjj tjj |dddy)NrrUr+rVrWrYr[)rrrr irfftnrr]s r test_irfftnzTestFFT1D.test_irfftn?s < 266==a9E266==aj)I'))/3 5266==ag)F$)&,0 2266==ai)H&)(.2 4rc`tddtdzz}tjtd|tdf}tj||dddjf}t tj j |tj j |dt tj j |tj j |ddt tj j |tjd z tj j |d dt tj j |d z tj j |d dy) Nr*r r rUr+rVrWrTrYrZr[)rrrCconjrr hfftr\r!rx_herms r test_hfftzTestFFT1D.test_hfftIs 2JfRj (Avay 9: NNFAddGLLN3 4 1 rvv{{6':F F+ F <4 I F+bggbk9 F 9 F F+c1 F ;$ Hrc :tddtdzz}tjtd|tdf}tj||dddjf}t |tj j tj j|dt |tj j tj j|dddt |tj j tj j|d d dt |tj j tj j|d d dy) Nrr*r r rUr+rVrWrYr[)rrrCrrr ihfftrrs r test_ihfftzTestFFT1D.test_ihfftUs6 2JfRj (Avay 9: NNFAddGLLN3 4 RVV[[-@ AM RVV[['.9.)/9!-!;AE G RVV[[$.9.&,3!-!5;? A RVV[[&.9.(.7!-!9?C Eropctd}gd}|D]J}|tj||}tj||||}t||dLy)Nr)rr r)rrr )r rr)r rr)rrr )rr rrrUr+)rrr`r)r!rrraop_trtr_ops r test_axeszTestFFT1D.test_axesasY < Q 5Ar||Aq)*ELLAA2E E5t 4 5rctjdjdd}||ddjdk(sJy)Ndrhr r9r_rr)rhr9)rrrrr!rrs rtest_s_negative_1zTestFFT1D.test_s_negative_1ks; IIcN " "2r *!wV,22g===rctjdjdd}tjd5||ddddy#1swYyxYw)Nrrh"`axes` should not be `None` if `s`rr)rrrrrwarnsrs rtest_s_axes_nonezTestFFT1D.test_s_axes_nonersJ IIcN " "2r * \\ D E  qG    s AActjdjdd}tjd5||dddddy#1swYyxYw)Nrrhrrrrrrs rtest_s_axes_none_2DzTestFFT1D.test_s_axes_none_2DysJ IIcN " "2r * \\ D E ( qG$ ' ( ( (s AActd}tjd5||dddddy#1swYyxYw)Nrz%array containing `None` values to `s`r)rhNrhrr)rrrrs rtest_s_contains_nonezTestFFT1D.test_s_contains_nones< <  \\ G H 4 qN 3 4 4 4s 7Ac td}tjj|}|jdz}tj j tj j ftj jtj jftj jtj jfg}|D]m\}}|jd|jzfD]J}dD]C}||||}||||}t|tjj|dELoy)NrTrrrrUr+) rrlinalgrXrr r.r0r/rrr) r!rx_normr= func_pairsforwbackrXtmps rtest_all_1d_norm_preservingz%TestFFT1D.test_all_1d_norm_preservings 2J" FFQJvvzz266;;/vv{{BFFLL1vv||RVV[[1  % DJD$ffa!&&j) DBDDqAD1Csad3C#F$&IINN3$7dDD D Drr)r_rrNc fd}|turOtddtdzz}tjjtjj }}n?td}tjj tjj}}|||}||} ||| |} | | usJt| ||||} |tur| n|| } || | |} | | usJt| | y)Ncr)tj|jjStj|Srcrdrfs rrDz4TestFFT1D.test_fftn_out_argument..zeros_likergrrhr9rr*r)rjr) rkrrr rrrrr)r!r5r`rrDrr r.rlrjrmrnrorps ` rtest_fftn_out_argumentz TestFFT1D.test_fftn_out_arguments ( G z"R&*<%< ? F r}}Q'99 E F qAI.mmH%Q!)5}}68, F Fs  CCr) r9r9rctddtdzz}tjj||d}tj|}tjj||d|}||usJt ||y)N)rr9rrr*rrr)rrr rrDr)r!rrrlrjrms r!test_irfftn_out_and_s_interactionz+TestFFT1D.test_irfftn_out_and_s_interactionss < 2|(<#< <66==ai=8mmH%qAI3?}}68,rN)2r#r$r%r4rmark parametrizersingledouble longdoublerJrRr^rkrrqrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrr&rrr(r(s1 [[Wryy"))R]]&KLBMB" [[Wryy"))R]]&KLEME.B [[VV, [[Ww&67 [[[-8/98-/6 [[VaV,9/-9/v= [[V%KL'M' C D C D@"G : 4D45$4 H E [[TBFFKK$&FFLL"&&--$AB5B5 [[TBFFKK$&FFKK$?@>@>  [[TBFFKK$&FFLL"&&--$ABB  [[TBFFKK#>?(@(  [[TBFFKK$&FFLL"&&--$&FFKK$?@4@4 D& [[V%;< [[Ww&67 [[[-8/98=/6 [[URVV[["&&,, $MN-O-  [[S9i"89-:-rr(r5orderFznon-contiguousr c\tjjd}|jdddj |d}dtj tj |jztj|jjz}|dk(rtj|}n#|ddd }tj|ddd }|jjd r4td D]%}||| }||| } t!|| || 'y|jjdr]gd} |jjdr| j#gd| D]%} ||| }||| } t!|| || 'yt$)N*r F)rLg @rr r rr r>)rr)r_)r rrr))r)r )rNr)rr RandomStaterandrBr\log2rfinfor5epsasfortranarrayascontiguousarrayr#endswithr-rextendr) r5rr rngX_tolYr X_resY_resraxs rtest_fft_with_orderrsr ))   #C Ar!!%e!4A ) )BHHQWW,=,A,A AD |   a  ddG  4R4 ) ||U#!H @D%E%E E5t$ ? @   / 0' <<  ( KK0 1 @BOEOE E5t$ ? @ rCr=)Nr  ctjjd}|jd}tj|tj |}tj j ||}|jj|jjk(sJ|jj|jjk(sJy)Nr rh)r5rr<) rrr rasarray complex64r flags c_contiguous f_contiguous)rr=rrress rtest_fft_output_orderr's ))   #C  A 1BLL6A &&**Q!* C 99 ! !QWW%9%9 99 9 99 ! !QWW%9%9 99 9rzCannot start thread)reasonc2eZdZdZdZdZdZdZdZdZ y) TestFFTThreadSafer8)i cfd}tj}|}t|jDcgc]}t j |||f}}|Dcgc]}|j c}|Dcgc]}|jc}t|jD]}t|jd|d!ycc}wcc}wcc}w)Nc.|j|yrc)put)argsqfuncs rworkerz.TestFFTThreadSafe._test_mtsame..worker s EE$+ r)targetr/r9)timeoutz6Function returned wrong value in multithreaded context) queueQueuer-threads threadingThreadstartjoinrget) r!r1r/r2r0rlr3trs ` r _test_mtsamezTestFFTThreadSafe._test_mtsame s  KKM;DLL) +  V4) < + +qat||$ JA quuQu/H J J  +s C C;Cctj|jdzdz}|jtjj|yNr y)rr input_shaper>r r!rs rr^zTestFFTThreadSafe.test_ffts8 GGD$$ % )B . "&&**a(rctj|jdzdz}|jtjj |yr@)rrrAr>r r.rBs rrzTestFFTThreadSafe.test_ifft!s8 GGD$$ % )B . "&&++q)rctj|j}|jtjj |yrc)rrrAr>r r0rBs rrzTestFFTThreadSafe.test_rfft%s. GGD$$ % "&&++q)rctj|jdzdz}|jtjj |yr@)rrrAr>r r/rBs rrzTestFFTThreadSafe.test_irfft)s8 GGD$$ % )B . "&&,,*rN) r#r$r%r7rAr>r^rrrr&rrr*r*s&GKJ$)**+rr*c&tjd}tjj|dtjj |dtjjtj dgt dy)Nrhr r<r)rrr r/rrArk)rs rtest_irfft_with_n_1_regressionrG.sX " AFFLLaLFFKKQKFFLL1#w'2L.rctjddz}tjj|d}tjgd}t ||y)Nr9y??rhr<) g4@gk"#@g'g$ pn]k@grg@gG& gdƍĿgt=M?g@L>M4)rrr rrAr)rrmrls r"test_irfft_with_n_large_regressionrI6sI ! A VV[[b[ !Fxx23HFH%rdata)FTFrhr;r9c||}|jtj|d}||}t||y)Nr:)rBr result_typer)rJr rm float_datarls r#test_fft_with_integer_or_bool_inputrN@s9YFR^^D"56J:Hvx(r)(r5r8rnumpyr numpy.randomr numpy.testingrrrrrrr(rrfloat32float64r" complex128r rrr.rrrr'skipifr*rGrIr0r/rAruint8int16rNr&rrrXs  UU-<< z-z-z  RZZr}}=?3(8"9: RVV[["&&++ bffllBFFLL 23 3;?>3*-m,:-.:G$9:$+$+;$+N/&FFJJ RVV[["&&,,! BHH !" BIIb! BIIarxx " ) )r