zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
U
P±d“3ã @sôddlZddlZddlmZddlmZmZmZm    Z    ddl
Z
ddl Z dd„Z Gdd„dƒZ Gdd    „d    ƒZej d
ejejejejg¡ej d d d g¡ej dejjejjejjejjejjejjg¡dd„ƒƒƒZejje    ddGdd„dƒƒZdS)éN)Úrandom)Úassert_array_equalÚ assert_raisesÚassert_allcloseÚIS_WASMcCsNt|ƒ}dtjt |¡|}t |¡ dd¡|}tj|t |¡ddS)Ny€Àéÿÿÿÿé©Úaxis)ÚlenÚnpÚpiZarangeZreshapeÚsumÚexp)ÚxÚLÚphase©rúUd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/fft/tests/test_pocketfft.pyÚfft1 src@seZdZdd„ZdS)Ú TestFFTShiftcCstttjjdddgdƒdS)Nréér)rÚ
ValueErrorr Úfft)ÚselfrrrÚ
test_fft_nszTestFFTShift.test_fft_nN)Ú__name__Ú
__module__Ú __qualname__rrrrrrsrc@sîeZdZdd„Zdd„Zej dd¡dd„ƒZd    d
„Z    d d „Z
d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zej d!ejjejjejjejjg¡d"d#„ƒZd$d%„Zej d&ejejejej g¡d'd(„ƒZ!d)S)*Ú    TestFFT1Dc    Cs’d}t|ƒdt|ƒ}t|ƒ}td|ƒD]b}ttj tj |d|…¡¡|d|…ddttj tj |d|…¡|¡|d|…ddq*dS)Niùð?rrgê-™—q=©Úatol)rÚrangerr rÚifftÚirfftÚrfft)rÚmaxlenrZxrÚirrrÚ test_identitys&ÿ
ÿzTestFFT1D.test_identitycCsštdƒdtdƒ}tt|ƒtj |¡ddtt|ƒtjj|ddddtt|ƒt d¡tjj|ddddtt|ƒdtjj|d    ddddS)
Nér!çíµ ÷ư>r"Úbackward©ÚnormÚorthoç>@Úforward)rrrr rÚsqrt©rrrrrÚtest_fft$sÿ ÿzTestFFT1D.test_fftr/©Nr-r0r2c    Cshtdƒdtdƒ}t|tjjtjj||d|dddtjtddtjjg|dW5QRXdS)Nr+r!r.r,r"z!Invalid number of FFT data points)Úmatch)rrr rr%ÚpytestZraisesr)rr/rrrrÚ    test_ifft-sþÿzTestFFT1D.test_ifftcCsºtdƒdtdƒ}ttjjtjj|ddddtj |¡ddttj |¡tjj|dd    ddttj |¡t d
¡tjj|d d    ddttj |¡d tjj|d d    dddS©N©r+ér!rr    rr,r"r-r.éXr0çÀ‚@r2)rrr rÚfft2r3r4rrrÚ    test_fft28s"
ÿ ÿÿÿzTestFFT1D.test_fft2cCsºtdƒdtdƒ}ttjjtjj|ddddtj |¡ddttj |¡tjj|dd    ddttj |¡t d
¡tjj|d d    ddttj |¡d tjj|d d    dddSr:)rrr rr%Úifft2r3r4rrrÚ
test_ifft2Cs"
ÿ ÿÿÿzTestFFT1D.test_ifft2cCsÆtdƒdtdƒ}ttjjtjjtjj|ddddddtj |¡ddttj |¡tjj|d    d
ddttj |¡t d ¡tjj|d d
ddttj |¡d tjj|dd
dddS©N©r+r<é
r!rr    rrr,r"r-r.épr0çp·@r2)rrr rÚfftnr3r4rrrÚ    test_fftnNs$&
þ ÿÿÿzTestFFT1D.test_fftncCsÆtdƒdtdƒ}ttjjtjjtjj|ddddddtj |¡ddttj |¡tjj|d    d
ddttj |¡t d ¡tjj|d d
ddttj |¡d tjj|dd
dddSrC)rrr rr%Úifftnr3r4rrrÚ
test_ifftnZs$&
þ ÿÿÿzTestFFT1D.test_ifftnc    Csìtdƒ}|jd|jfD]Î}dD]>}ttjj|||dd|dd…tjj|||dddq ttjj||dtjj||d    dddttjj||dt |¡tjj||d
dddttjj||d|tjj||d dddqdS) Nr+rr6©Únr/rr,r")rMr-r0r2)rÚsizerr rr'r3)rrrMr/rrrÚ    test_rfftfs. þþþþzTestFFT1D.test_rfftcCsœtdƒ}t|tj tj |¡¡ddt|tjjtjj|ddddddt|tjjtjj|ddddddt|tjjtjj|dddddddS)Nr+r,r"r-r.r0r2)rrr rr&r'r4rrrÚ
test_irfftws"ÿÿÿÿÿÿzTestFFT1D.test_irfftcCs®tdƒ}ttj |¡dd…dd…ftj |¡ddttj |¡tjj|ddddttj |¡t d¡tjj|ddddttj |¡d    tjj|d
ddddS) Nr;é r,r"r-r.r=r0r>r2)rrr rr?Úrfft2r3r4rrrÚ
test_rfft2s. ÿÿÿzTestFFT1D.test_rfft2cCsœtdƒ}t|tj tj |¡¡ddt|tjjtjj|ddddddt|tjjtjj|ddddddt|tjjtjj|dddddddS)Nr;r,r"r-r.r0r2)rrr rZirfft2rRr4rrrÚ test_irfft2‹s"ÿÿÿÿÿÿzTestFFT1D.test_irfft2cCs´tdƒ}ttj |¡dd…dd…dd…ftj |¡ddttj |¡tjj|ddddttj |¡t d¡tjj|ddddttj |¡d    tjj|d
ddddS) NrDér,r"r-r.rFr0rGr2)rrr rrHÚrfftnr3r4rrrÚ
test_rfftn•s4 ÿÿÿzTestFFT1D.test_rfftncCsœtdƒ}t|tj tj |¡¡ddt|tjjtjj|ddddddt|tjjtjj|ddddddt|tjjtjj|dddddddS)NrDr,r"r-r.r0r2)rrr rÚirfftnrVr4rrrÚ test_irfftnŸs"ÿÿÿÿÿÿzTestFFT1D.test_irfftncCsÞtdƒdtdƒ}t tdƒ|tdƒf¡}t ||ddd… ¡f¡}ttj |¡tj |¡ddttj |¡tjj|ddddttj |¡t d    ¡tjj|d
dddttj |¡d tjj|d ddddS) Nér!rrr,r"r-r.r+r0r1r2)rr Ú concatenateÚconjrrÚhfftr3©rrZx_hermrrrÚ    test_hfft©s  ÿÿÿzTestFFT1D.test_hfftcCsÜtdƒdtdƒ}t tdƒ|tdƒf¡}t ||ddd… ¡f¡}t|tj tj |¡¡ddt|tjjtjj|ddddddt|tjjtjj|d    dd    dddt|tjjtjj|d
dd
ddddS) NrZr!rrr,r"r-r.r0r2)rr r[r\rrÚihfftr]r^rrrÚ
test_ihfftµs2ÿÿÿÿÿÿÿÿÿzTestFFT1D.test_ihfftÚopcCsXtdƒ}ddddddg}|D]6}|t ||¡ƒ}t |||d|¡}t||d    d
qdS) NrD)rrr)rrr)rrr)rrr)rrr)rrr©Úaxesr,r")rr Z    transposer)rrbrrdÚaZop_trZtr_oprrrÚ    test_axesÁs zTestFFT1D.test_axesc    Cs°tdƒ}tj |¡}|jd}tjjtjjftjjtjjftjj    tjj
fg}|D]Z\}}|jd|jfD]@}dD]6}||||d}||||d}t |tj |¡ddqpqhqPdS)Nr+rr6rLr,r") rr Zlinalgr/rNrr%r'r&r`r]r)    rrZx_normrMZ
func_pairsZforwÚbackr/ÚtmprrrÚtest_all_1d_norm_preservingËs  
ü 
ÿz%TestFFT1D.test_all_1d_norm_preservingÚdtypecCsNtdƒ |¡}ttj tj |¡¡|ddttj tj |¡¡|dddS)Nr+r,r")rÚastyperr rr%r&r')rrjrrrrÚ test_dtypesÞszTestFFT1D.test_dtypesN)"rrrr*r5r8ÚmarkÚ parametrizer9r@rBrIrKrOrPrSrTrWrYr_rar rrHrJrVrXrfriZhalfZsingleÚdoubleZ
longdoublerlrrrrr s4
     
 
 
 
 
 
 
  ÿ
ÿr rjÚorderÚFznon-contiguousrc Cs6tj d¡}| ddd¡j|dd}dt t |j¡¡t |j    ¡j
}|dkr\t  |¡}n"|ddd    …}t  |ddd    …¡}|j  d
¡rÂtd ƒD],}|||d }|||d }    t||    ||d q’np|j  d¡r,dddg}
|j  d¡rø|
 ddddg¡|
D],} ||| d}||| d}    t||    ||d qüntƒ‚dS)Né*ééé F)Úcopyg @rqrrrr    )r#Zrtol)r?rH)rr)rr)rrrH)r)r)rrc)r rZ RandomStateZrandrkr3Úlog2rNZfinforjZepsZasfortranarrayZascontiguousarrayrÚendswithr$rÚextendr) rjrprÚrngÚXZ_tolÚYr
ZX_resZY_resrdZaxrrrÚtest_fft_with_orderès* $     
   r}zCannot start thread)Úreasonc@s<eZdZdZdZdd„Zdd„Zdd„Zd    d
„Zd d „Z    d S)ÚTestFFTThreadSafeé)i éÈcs|‡fdd„‰t ¡‰ˆˆŽ}‡‡‡fdd„t|jƒDƒ}dd„|Dƒdd„|Dƒt|jƒD]}tˆjdd|d    ƒq^dS)
Ncs| ˆ|Ž¡dS©N)Úput)ÚargsÚq)ÚfuncrrÚworkersz.TestFFTThreadSafe._test_mtsame.<locals>.workercsg|]}tjˆˆˆfd‘qS))Útargetr„)Ú    threadingÚThread)Ú.0r))r„r…r‡rrÚ
<listcomp>sÿz2TestFFTThreadSafe._test_mtsame.<locals>.<listcomp>cSsg|] }| ¡‘qSr)Ústart©r‹rrrrrŒscSsg|] }| ¡‘qSr)ÚjoinrŽrrrrŒ sé)Útimeoutz6Function returned wrong value in multithreaded context)ÚqueueÚQueuer$ÚthreadsrÚget)rr†r„ÚexpectedÚtr)r)r„r†r…r‡rÚ _test_mtsames ÿÿzTestFFTThreadSafe._test_mtsamecCs(t |j¡dd}| tjj|¡dS©Nry)r ÚonesÚ input_shaper˜r©rrerrrr5&szTestFFTThreadSafe.test_fftcCs(t |j¡dd}| tjj|¡dSr™)r ršr›r˜rr%rœrrrr9*szTestFFTThreadSafe.test_ifftcCs t |j¡}| tjj|¡dSr‚)r ršr›r˜rr'rœrrrrO.s zTestFFTThreadSafe.test_rfftcCs(t |j¡dd}| tjj|¡dSr™)r ršr›r˜rr&rœrrrrP2szTestFFTThreadSafe.test_irfftN)
rrrr”r›r˜r5r9rOrPrrrrrsr)Únumpyr r8Z numpy.randomrZ numpy.testingrrrrr‰r’rrr rmrnÚfloat32Úfloat64Z    complex64Z
complex128rr?rHr%rArJr}ZskipifrrrrrÚ<module>s2 Qþÿþ