L iSddlZddlmZddlmZddlmZm Z m Z m Z ddl m Z mZmZmZmZmZmZmZmZmZmZmZGddZGdd ZGd d ZGd d ZGddZGddZGddZGddZ y)N)suppress_warnings)raises)assert_array_almost_equalassert_almost_equalxp_assert_closexp_assert_equal) dlsimdstepdimpulsetf2zpkltidlti StateSpaceTransferFunctionZerosPolesGain dfreqrespdbodeBadCoefficientsc6eZdZdZdZdZdZdZdZdZ y) TestDLTIc$tjddgddgg}tjgdgdg}tjddgg}tjgdg}d}tjtjd d d ddtjftj d dtj d df}tjd dd }tj gdgj}tjd d gddgddgddgddgg} t|||||f||\} } } t|| t| | t|| tdd|d dgddf} tjddg}t|||||f| |\} } } t|| t| | t| t| k(sJtjddg}tjgd}tj gd gj}t||df|ddd f|\} } t| |t|| tj|ddd f}|jd!}t||df||\} } t| |t|| tj dd"g}tj d#tjd$z d%tjd$z g}d}tj gd&gj}t|||df|ddd f|\} } t| |t|| td'gd'd'g}ttt||y)(N?皙?皙ɿg?r皙皙?r333333?rrr?rg@)num)r#g{Gz?gMb`@)gMbPgc#GgD2?gъo?g#Y ?ga2U0*S?gMb@?g Tƿ?gkHcCG?g'h'?g56Ng 9!@gbmӿ)r%r?r)r r*皙?)rrg @gqqg^B{ 7@)r#?r'y)rr*r&g@g@r%)npasarrayhstacklinspacenewaxisfullarrayTr rlenreshapesqrtr assert_raisesAttributeError)selfabcddtut_in yout_truth xout_truthtoutyoutxoutu_sparset_sparser$denuflatzdpdksystems e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/signal/tests/test_dltisys.py test_dlsimzTestDLTI.test_dlsims[ JJc T3K0 1 JJ(*:; < JJc | $ JJ() *  IIr{{1cq1!RZZ-@wwvt,wwvv.0 1{{1cq)XX ,-./0a  ZZ!Q"(&!1")7!3"*I!6"+Z!8 !:; !!Q1b!11d;dD!*d3!*d3!$- iaVQY<::sCj) !Q1b!18XFdD!*d3!*d34yCI%%%jj#t%jj)XX 23456A Cc?AadGT: d!$ 3!$- 1QT7# d#Cc?E48 d!$ 3!$-XXsDk " XXsRWWQZ' ):; < XX9:;== BAs+Qq!tWd; d!$ 3!$-aS1a&!neVQ7ctjddgddgg}tjgdgdg}tjddgg}tjgdg}d}tjgd tjgd tjgd f}t|||||fd \}}t|dk(sJt dt|D]9} || j dd k(sJt || j|| ;dgddgdf} tjgd} t| d \}}t|dk(sJt |dj| t| d| ddz} t| d \}}t|dk(sJt |dj| tdgddg} ttt| y)Nrrrrrr r!r") r{Gz?g9v?gM O?gNz1?g0g >㷿gW N3Ŀg+(ͿgGӿ) rg333333gV-g,Ԛga̦ۢgQo&g*~gIطgp,%Բg[W) r{Gzg9vgM OgNz1cg0?g >?gW N3?g+(?gG? nr(rr*)rr*rr%r") r.r/r r6rangeshaperflattenr r r9r:)r;r<r=r>r?r@yout_step_truthrErFitfin yout_tfstepzpkinrOs rP test_dstepzTestDLTI.test_dstepgs JJc T3K0 1 JJ(*:; < JJc | $ JJ() * ::'DE::'78::'BC DAq!Q+r2 d4yA~~q#d)$ MA7==#r) )) %d1goo&79K L M Sz3'jj1 41% d4yA~~!$q'//"3[AtAwQ(615A& d4yA~~!$q'//"3[AaS1a&!neV4rRctjddgddgg}tjgdgdg}tjddgg}tjgdg}d}tjgd tjgd tjgd f}t|||||fd \}}t|dk(sJt dt|D]9} || j dd k(sJt || j|| ;dgddgdf} tjgd} t| d \}}t|dk(sJt |dj| t| d| ddz} t| d \}}t|dk(sJt |dj| tdgddg} ttt| y)Nrrrrrr r!r") rrTg~jt?ggr]g{ю~gB"LQ.gE_ngRPɺ1g1%) rg?g rh?g<,?gdm?gZՒr0[gS¸xg^TDgg#~g}T`) rrUg~jthgg?gr]?g{ю~?gB"LQ.?gE_n?gRPɺ1?g1%?rVrWr(rr*)rr*gr%rY) r.r/r r6rZr[rr\r r r9r:)r;r<r=r>r?r@yout_imp_truthrErFr^r_yout_tfimpulserarOs rP test_dimpulsezTestDLTI.test_dimpulses JJc T3K0 1 JJ(*:; < JJc | $ JJ() * **&CD**&DE**&AB Cq!Q2."5 d4yA~~q#d)$ LA7==#r) )) %d1goo&79J K L Sz3'$45da( d4yA~~!$q'//"3^DtAwQ(61eq) d4yA~~!$q'//"3^DaS1a&!nh7rRctjdgg}tjdgg}tjdgg}tjdgg}d}tj|jdd}t ||||df|\}}} t |tj t|t |tj|dft | tj|dfy)Nrr#r%r.r4zerosr7r rarangefloat) r;r<r=r>r?rXrArErFrGs rPtest_dlsim_trivialzTestDLTI.test_dlsim_trivials HHseW  HHseW  HHseW  HHseW   HHQK  A & !Q1a!4dDbiia12bhh1v./bhh1v./rRctjdgg}tjdgg}tjdgg}tjdgg}d}tj|jdd}t ||||df|d\}}} t |tj t|dtj t|zjdd} t || t | | y)Nr"rr*r#rhr%x0ri) r;r<r=r>r?rXrArErFrGexpecteds rPtest_dlsim_simple1dzTestDLTI.test_dlsim_simple1ds HHseW  HHseW  HHseW  HHseW   HHQK  A & !Q1a!:dDbiia12299U1X..77A>h'h'rRcdd}d}tj|dgd|gg}tjdgdgg}tjddgddgg}tjdgdgg}d}tj|jdd}t ||||df|d\} } } t | tj t|tj||gtj t|jddz} t | | t | | y) Nr"g?rr*r#rhr%rori) r;lambda1lambda2r<r=r>r?rXrArErFrGrqs rPtest_dlsim_simple2dzTestDLTI.test_dlsim_simple2ds# HHwnGn& ' HHsee  HHsCjCj" # HHsee   HHQK  A & !Q1a!:dDbiia12HHgw/0 " %( 3 ; ;B BCh'h'rRcd}d}tj|dgd|gg}tjddgddgg}tjddgg}tjddgg}d}t||||df|\}} dd|z z d|tj|zz z} dd|z z d|tj|zz z} t | ddddf| t | ddddf| tjddg} t ||||df|| \} }tj||gtjd |dzj d dz}d|dddf<|d|dftj|d|dzddf| z}|d|dftj|d|dzddf| z}t |ddddf|t |ddddf|dgdd gd f}t|d \}\}t |gdt|jgdgt |d \}\}t |gdt|jgdgy)Nr"g?rr*rVr%rWr)rXrprhr,rr()rrr+)rr*g?)rr%r") r.r4r rkrr r7dotrr5)r;rtrur<r=r>r?rXtsysstp0stp1rptiyiimpy0y1rOtys rPtest_more_step_and_impulsez#TestDLTI.test_more_step_and_impulses~ HHwnGn& ' HHsCjCj" # HHsCj\ " HHsCj\ " 1aA!,Bq7{#g1.E(EFq7{#g1.E(EF1ad T*1ad T*XXsCj !1aAq/Q26Bxx'*+IIb!a%088Q?@AqD !QZ"&&Qq1uWaZ"5 5 !QZ"&&Qq1uWaZ"5 51ad R(1ad R(%#tc*!$4A=)m_-6Q'4A=)k]+rRN) __name__ __module__ __qualname__rQrbrfrmrrrvrrRrPrrs)S8j+5Z*8X 0 ((*,,rRrceZdZdZy)TestDltic d}tdgdg|}t|tsJt|tsJt|trJ|j|k(sJtt j gt j dgd|}t|tsJt|tsJt|trJ|j|k(sJtdgdgdd|}t|tsJt|tsJt|trJ|j|k(sJtttdtttdddddy)Nrr%rhr@r() r isinstancerr r@r.r4rrr9 ValueError)r;r@ss rPtest_dlti_instantiationz TestDlti.test_dlti_instantiations: !rdr "!-...!T"""a%%%ttrzz "rxx~qR 8!^,,,!T"""a%%%ttrzz !rdAqR (!Z(((!T"""a%%%ttrzz j$*j$1aA6rRN)rrrrrrRrPrrs7rRrceZdZdZdZdZy)TestStateSpaceDisccFd}tdddd|tdgdgdgdg|ttjddgddggtjdgdggtjddggtjdgg|tdddddy) Nrr%rr'r(r)rT)rr.r4r;r@s rPtest_initializationz&TestStateSpaceDisc.test_initialization=s 1aA"%A3aS1#"-288aVaV,-rxx!qc /C88aVH%rxx!2 ?1aA$'rRc*tddddd}t|jtsJt|jtsJt|j t sJt||usJ|j|usJy)Nr%r'r(r)rr)rrto_ssto_tfrto_zpkrr;rs rPtest_conversionz"TestStateSpaceDisc.test_conversionFs q!Qd +!'')Z000!'')%5666!((*n555!}A%%%wwy!!!rRctddddd}t|jdgt|jdgy)Nr%rrr*r)rrpolesrjrs rPtest_propertiesz"TestStateSpaceDisc.test_propertiesQs6 q!Qd +"&"&rRNrrrrrrrrRrPrr<s( "'rRrceZdZdZdZdZy)TestTransferFunctioncd}tdd|tdgdg|ttjdgtjdg|tdddyNrr%rr'T)rr.r4rs rPrz(TestTransferFunction.test_initialization\sO A"%!qcb)1#! "=A$'rRc.tddgddgd}t|jtsJt|j tsJt|j t sJt||usJ|j |usJy)Nr%rrhrr)rrrrrrrrs rPrz$TestTransferFunction.test_conversionds aVaW 6!'')Z000!'')%5666!((*n555 "!+++wwy!!!rRctddgddgd}t|jdgt|jdgy)Nr%rrhrrr*r)rrrrjrs rPrz$TestTransferFunction.test_propertiesos: aVaW 6"&"&rRNrrrRrPrr[s( "'rRrceZdZdZdZy)TestZerosPolesGaincd}tddd|tdgdgd|ttjdgtjdgd|tddddyr)rr.r4rs rPrz&TestZerosPolesGain.test_initializationzsW q!Q2&sQCr*rxx}bhhsmQ2>q!Q4(rRc(tdddd}t|jtsJt|j t sJt|j tsJt||usJ|j |usJy)Nr%r'r(rr)rrrrrrrrs rPrz"TestZerosPolesGain.test_conversions~ 1at ,!'')Z000!'')%5666!((*n555a )))xxz"""rRN)rrrrrrrRrPrrys ) #rRrc6eZdZdZdZdZdZdZdZdZ y) Test_dfreqrespctdddgd}gd}t||\}}gd}t|j|d gd }t|j|d y) Nr%rrr)rr%rVw)gU0*?g;On?gfj+r)decimal)gClÿg&†WgZd;O?)rrrrealimag)r;rOrH expected_re expected_ims rP test_manualzTest_dfreqresp.test_manualsY"!aY37 1%10 AFFK;1 AFFK;rRctdddgd}gd}t||\}}tj|dz}tj|j |tj|j |z }|j}t|j||j}t|j|y)Nr%rrrrr%rVdrr-) rrr.exppolyvalr$rJrrr)r;rOrrjwrrrs rP test_autozTest_dfreqresp.test_autos"!aY37 1%1 VVAF^ JJvzz2 &FJJ)C Cff AFFK0ff AFFK0rRctdddgd}d}tjdtjdd}t || \}}t ||y) Nr%rrrrVrFendpointrW)rr.r1pirr)r;rOrX expected_wrrs rPtest_freq_rangezTest_dfreqresp.test_freq_rangesM"!aY37 [[BEE2> 1%1Az*rRctdgddgd}t5}|jtd|jtdt |d \}}dddd d k(sJy#1swYxYw Nr%rhrrzdivide by zero)messagezinvalid value encounteredr'rWrr)rrfilterRuntimeWarningr)r;rOsuprrs rP test_pole_onezTest_dfreqresp.test_pole_onesy"1#2w37   *C JJ~/?J @ JJ~/JJ KVq)DAq *trzz  * *s ?A..A7cLtdgddg}ttt|yNr%)r r9r:rr;rOs rP test_errorzTest_dfreqresp.test_errors aS1a&!ni8rRctdggd}tjgdgdgdg}tjgdgj}tjgdg}d}t||||}dtjd dd z}t 5}|j tt|| \} } t|| \} } dddt  y#1swYxYw) Nr')r%r,rr)r"rr)r%rr)rr%r)rrr'rg$@r"r) rr.r4r5rkrrrrr) r; system_TFABCD system_SSrrw1H1w2H2s rPtest_from_state_spacez$Test_dfreqresp.test_from_state_spaces!o. HHk! " HHi[ ! # # HHi[ ! Aq!$ "))Bq$ $   /C JJ 'yA.FByA.FB / B#  / /s 6C''C0ctgdgd}tdddg}gd}t||\}}t||\}}t||y)Nr+r r%rrr)rrr)r; system_ZPKrrrrrrs rP test_from_zpkzTest_dfreqresp.test_from_zpksQ"cU3' q$i( :+B9*BB#rRN) rrrrrrrrrrrrRrPrrs% <1"+ 9 $*$rRrc0eZdZdZdZdZdZdZdZy) Test_bodecd}tdddg|}dddtjg}t||\}}}gd}t ||d gd }t ||d t tj ||z |y) Nrr r%rrr"r)gD!gvq !g$~;#g0*(r)r)gzGgJAg_)Pgf)rr.rrrrr4) r;r@rOrrmagphase expected_magexpected_phases rPrzTest_bode.test_manuals!#4yR8 #q"%% v+C= Cq9BE>1=  b("-rRctdddgd}tjdddtjg}t ||\}}}tj |dz}tj |j|tj |j|z }d tjt|z}t||tjtj|} t|| y) Nr r%rrrr"rr-g4@)rr.r4rrrrr$rJlog10absrrad2degangle) r;rOrrrrrrrrs rPrzTest_bode.test_autos"#4yS9 HHc3255) *v+C VVAF^ JJvzz2 &FJJ)C Cbhhs1v.. C.BHHQK0E>2rRcd}tdddgd}d}tjdtj|d |z }t || \}}}t ||y) Nrr r%rrrVrFrrW)rr.r1rrr)r;r@rOrXrrrrs rP test_rangezTest_bode.test_rangesY!#4yS9 [[BEE1u=B f* 3Az*rRctdgddgd}t5}|jtd|jtdt |d \}}}dddd d k(sJy#1swYxYwr)rrrrr)r;rOrrrrs rPrzTest_bode.test_pole_ones{"1#2w37   /C JJ~/?J @ JJ~/JJ K!&A.MAsE /trzz  / /s AA//A8c@tdggdd}t|dy)Nr%)r%rrrrr'rW)rrrs rPtest_imaginaryzTest_bode.test_imaginary%s"1#{s; frRcLtdgddg}ttt|yr)r r9r:rrs rPrzTest_bode.test_error+s aS1a&!neV4rRN) rrrrrrrrrrrRrPrrs .&3" +  5rRrc"eZdZdZdZdZdZy)TestTransferFunctionZConversionz=Test private conversions between 'z' and 'z**-1' polynomials.c$tjgd}tjgd}tj||\}}t ||t ||tj ||\}}t ||t ||y)Nr&r(r))@r.r/r _z_to_zinvr _zinv_to_zr;r$rJnum2den2s rP test_fullz)TestTransferFunctionZConversion.test_full4srjj%jj%%00c: dT"T"%00c: dT"T"rRc,tjddg}tjgd}tj||\}}t gd|t ||tj ||\}}t gd|t ||y)Nr&r()2rr)rr'r()r&r(rrrs rPtest_numeratorz.TestTransferFunctionZConversion.test_numerator@svjj#q"jj$%00c: d T*T"%00c: d T*T"rRc,tjgd}tjddg}tj||\}}t ||t gd|tj ||\}}t ||t gd|y)Nrrr)rr#r)rrrrrs rPtest_denominatorz0TestTransferFunctionZConversion.test_denominatorLsvjj$jj#q"%00c: dT" T*%00c: dT" T*rRN)rrr__doc__rrrrrRrPrr1sG # # +rRr)!numpyr. numpy.testingrpytestrr9scipy._lib._array_apirrrr scipy.signalr r r r r rrrrrrrrrrrrrrrrrRrPr s+*==== J,J,Z77>''>''<##*X$X$vE5E5P%+%+rR