L iddlZddlZddlmZmZmZmZddlZddl m Z ejjZ e dddggZ e dd Gd d Zy) N)xp_assert_equalassert_array_almost_equalassert_almost_equalis_cupy)ndimageTcupyz jax.numpy)cpu_only exceptionszjax-ml/jax#23827)reasoncreZdZejj dgdejj dddgdZejj dddgejj dd d gd Zejj dgdejj dddgd Zejj dddgejj dd d gd Z ejj dddgejj dddgdZ ejj dddgejj dddgdZ ejj dgdejj dddgdZ ejj dddgejj ddd gdZ dZdZejj dgdejj dgdejj dej"ej$ej&gdZy) TestNdimageFouriershape) ) z dtype, dec)float32)float64ct|d}tj||}d|d<|j|}|j ||dd}|j ||dd}t j|dd g|dd}|j||dd}|j||dd}tt j||jd|d y Nfftdtype?rrrnaxisr@@Fdecimalcheck_0d) getattrnpzerosasarrayrfftrrfourier_gaussianifftirfftrsumselfrrdecxpras f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/ndimage/tests/test_fourier.pytest_fourier_gaussian_real01z/TestNdimageFourier.test_fourier_gaussian_real01sb%  HHU% ($ JJqM HHQ%(H + GGAqG *  $ $Qc E!Ha @ HHQ%(H + IIa58!I ,GKKNBJJqM3%* ,rr) complex64r) complex128rct|d}tj||}d|d<|j|}|j ||dd}|j ||dd}t j |dd gd d}|j||dd}|j||dd}tt j|j||jd|d y Nrrr r!rr"rr%r&Fr') r*r+r,r-rrr/r0rr2realr3s r8test_fourier_gaussian_complex01z2TestNdimageFourier.test_fourier_gaussian_complex01'sb%  HHU% ($ JJqM GGAqG * GGAqG *  $ $Qc B : HHQ%(H + HHQ%(H +GKK 3RZZ_c%* ,r:ct|d}tj||}d|d<|j|}|j ||dd}|j ||dd}t j|dd g|dd}|j||dd}|j||dd}tt j||jd|d yr) r*r+r,r-r.rrfourier_uniformr0r1rr2r3s r8test_fourier_uniform_real01z.TestNdimageFourier.test_fourier_uniform_real018sb%  HHU% ($ JJqM HHQ%(H + GGAqG *  # #ASz58Q ? HHQ%(H + IIa58!I ,GKKNBJJsOS%* ,r:ct|d}tj||}d|d<|j|}|j ||dd}|j ||dd}t j |dd gd d}|j||dd}|j||dd}tt j|j||jd|d yr>) r*r+r,r-rrrCr0rr2r@r3s r8test_fourier_uniform_complex01z1TestNdimageFourier.test_fourier_uniform_complex01Isb%  HHU% ($ JJqM GGAqG * GGAqG *  # #ASz2q 9 HHQ%(H + HHQ%(H +GKK 3RZZ_c%* ,r:)r)r ct|d}tj|d|dz|j|}|j |}|j ||dd}|j ||dd}tj|ddg|dd}|j||dd}|j||dd}t|ddddf|ddddf|yNrrrrr"r?r() r*r+arangereshaper-r.rr fourier_shiftr0r1rr4rrr5r6rexpectedr7s r8test_fourier_shift_real01z,TestNdimageFourier.test_fourier_shift_real01Zsb% 99U1Xa0>FFuM::h' HHXqH 2 GGAqG *  ! !!aVU1Xq 9 HHQ%(H + IIa58!I ,!!ABF)Xcrc3B3h-?Mr:)r;rG)r<rHc>t|d}tj|d|dz|j|}|j |}|j ||dd}|j ||dd}t j|ddgdd}|j||dd}|j||dd}t|j|ddddf|ddddf|t|j||j||yrJ) r*r+rLrMr-rrrNr0rr@imagr,rOs r8test_fourier_shift_complex01z/TestNdimageFourier.test_fourier_shift_complex01isb% 99U1Xa0>FFuM::h' GGHaqG 1 GGAqG *  ! !!aVR 3 HHQ%(H + HHQ%(H +!"''!*QRV"4hssCRCx6HRUV!"''!*bhhuosKr:)rct|d}tj||}d|d<|j|}|j ||dd}|j ||dd}t j|dd g|dd}|j||dd}|j||dd}tt j||jd|d yr) r*r+r,r-r.rrfourier_ellipsoidr0r1rr2r3s r8test_fourier_ellipsoid_real01z0TestNdimageFourier.test_fourier_ellipsoid_real01ysb%  HHU% ($ JJqM HHQ%(H + GGAqG *  % %a#sU1Xq A HHQ%(H + IIa58!I ,GKKNBJJsOS%* ,r:)r;rUct|d}tj||}d|d<|j|}|j ||dd}|j ||dd}t j |dd gd d}|j||dd}|j||dd}tt j|j||jd|d yr>) r*r+r,r-rrrWr0rr2r@r3s r8 test_fourier_ellipsoid_complex01z3TestNdimageFourier.test_fourier_ellipsoid_complex01sb%  HHU% ($ JJqM GGAqG * GGAqG *  % %a#sR ; HHQ%(H + HHQ%(H +GKK 3RZZ_c%* ,r:c|jd|j}tjt5t j |ddddy#1swYyxYw)N)rGrrr)onesr<pytestraisesNotImplementedErrorrrW)r4r6xs r8)test_fourier_ellipsoid_unimplemented_ndimzP+QR ,S< , [[W&CD [[\NO+LM ,NE , [[Wx&:; [[\,<>P+QR ,S< , [[Wx&:; [[\NO+LM NN< N [[Wx&:; [[\,<>P+QR LS< L [[W&CD [[\NO+LM ,NE , [[Wx&:; [[\,<>P+QR ,S< ,, = [[W&?@ [[W'BC [[[%77%66%5578  8CA r:r )rlnumpyr+scipy._lib._array_apirrrrr_scipyrrrskip_xp_backends pytestmarkr rtr:r8rzse ;;//&+9NO P +&89gg:gr: