L iddlZddlZddlZddlZddlmZmZmZddl m Z ddl m Z m Z ejjZdZejj#dddgejj#d gd ejj#d gd ejj#d ddgdZejj&dZejj#d ddgdZeddejj#deegdZejj#d ddgdZy)N)fhtifht fhtoffset)poch)xp_assert_closexp_assert_lessc d}tjddd}tj|d|dz }d}d}d}|j |||}t ||||| }gd } |j | |j } t|| t||| }t ||||| }gd } |j | |j } t|| d}t||| }t|}t ||||| }gd} |j | |j } t|| d}t||| }t|}t ||||| }gd} |j | |j } t|| y)NcL||dzztj|dz dz zSN)npexp)rmus a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/fft/tests/test_fftlog.pyfz&test_fht_agrees_with_fftlog..fs'2a4yAa((r rg333333?offsetbias)g=lSgl1Z?gpR_g~] o?g0d@?g?g02u?g7c4Uo?gU/5?gޠ3JgQiIg!m9?g1g?Jb7?gtj3Bg 'K?dtyper)gDy?gTIg94?gBM?gQ89w?gĥ?gZT3%?gz;_x?g9%P?gv@݆gAAY]?gayig;gGIy7?g4⬞ F?gR^ء*9g-g?g!a?gR޴?gmMUU?g.?g'?eHgZ7ZP?gmܷ`%gCGT?g2Tg҅u>g/&g)gG3>g`4]<]?g[8+?g,8GdP?g u?g,ח$5?g~}?gra,4?gV?gh`>EgDgyٖ?gP2ZSg͆˝?gܺJ?g[U+@g" %@) rlogspacemathlogasarrayrfloat64rrfloat) xprrdlnrrraourstheirss rtest_fht_agrees_with_fftlogr*s ) B2A ((1Q4!9 C B F D 1Q8A q#r&t 4D@FZZbjjZ 1FD&!sBT *F q#r&t 4D@FZZbjjZ 1FD&! D sBT *F6]F q#r&t 4D@FZZbjjZ 1FD&! D sBT *F 6]F q#r&t 4D@FZZbjjZ 1FD&!roptimalTFr)r?gr)rg?gn@?c^tjjd}|j|j |}|j dd}|j dd}|rt ||||}t|}t|||||} t| ||||} t| |d y) NE3 r r initialrrgv !>)rtol) rrandom RandomStater"standard_normaluniformrr$rrr) r-rrr+r%rngr'r&rAa_s rtest_fht_identityr>as ))   +C 3&&q)*A ++b! C R B3F>v AsBvD1A abd 3BB'rctjjd}|j|j d}|j dd}d\}}t jd5}t|||||rJd  dddd \}}t jd5}t|||||rJd  dddd \}}tjt5}t|||||sJd  dddd \}}tjt5}t|||||sJd  dddy#1swYxYw#1swYxYw#1swYbxYw#1swYyxYw)Nr1r.r2r )gr,T)recordrz)fht warned about a well-defined transform)g?)g rAz+fht did not warn about a singular transformz,ifht did not warn about a singular transform) rr7r8r"r9r:warningscatch_warningsrpytestwarnsWarningr)r%r;r'r&rrr@s rtest_fht_special_casesrGzs ))   +C 3&&r*+A ++b! C HB   -G AsBT"FFFz6G HB   -G AsBT"FFFz6G HB g E& AsBT"DDDvE HB g F& QRd#EEEvFF)GG GGEEFFs0-E *E*E%*E1 EE"%E.1E:c$tjjd}|jdd}|jd|z d}tjdd|}|j ||z}t j|d|dz }t||d | }t|}t||||| } tj||dddz } |j d| z |zt|dz|z dz |z} t| | y) Nr1rr2rAr3r r rr4r)rr7r8r:rr"r r!rr$rrrr) r-r%r;rgammarr'r&rr<kAts rtest_fht_exactrMs ))   +C Q B KK2s #E B1A 1e8A ((1Q4!9 C sB% 8F6]F AsBvE2A vq2wA QqS5L4AeQ#>> ?BArrz,array-likes only supported for NumPy backend)np_onlyreasonopcddgddggddgddggddgddggg}t||dd||j|ddy)Nr,g@)rr")r%rPxs rtest_array_likerSs` *sCj ! *sCj ! *sCj ! #ABq#sOR 1 sC%@Arc>jd}d}tjdd|}tj|d|dz }t |dtjdz|}j||j }tj|j|d z }fd }|||} t| ||| } |||} jj| | z | z } t| jddy)Nr,rir ri )r5rrr2)axiscF||dzzj|dz dz zSr )r)rRrr%s rrztest_gh_21661..fs(26{2661a4%'?**r)rrg`m3*pC) r"rrr r!rrrfliprmaxabsr) r%r-onerrr&rrKra_rfht_vala_krel_errs ` r test_gh_21661rcs **S/C B B1A ((1Q4!A$; C sBO ;F 1CII &A 277127..A+ Ar(C#sr&1G Ar(CffRVVWs]c123G7BJJx045r)rBr numpyrrDscipy.fft._fftlogrrr scipy.specialrscipy._lib._array_apirrmarkskip_xp_backendsr* parametrizer> thread_unsaferGrMrSrcrZrrrls_  22A;;//O"dT5M2#340r2h'((153(* F FFr2h'(<$GIT{+B,IB sCj)6*6r