+
    /i                        ^ RI t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIH	t	H
t
HtHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt R"R lt  ! R R	4      t! ! R
 R4      t" ! R R4      t# ! R R4      t$ ! R R4      t% ! R R4      t& ! R R4      t' ! R R4      t( ! R R4      t)]! ]4       ! R R4      4       t* ! R R4      t+ ! R R4      t,]PZ                  P]                  R ]]]]].4      R! 4       t/R# )#    N)GenericAlias)raises)assert_almost_equalxp_assert_equalxp_assert_closemake_xp_test_case)ss2tftf2ssltidltibodefreqresplsimimpulsestepabcd_normalizeplace_polesTransferFunction
StateSpaceZerosPolesGain)BadCoefficientsc           
     &   VP                  4       pV  F  pRp\        VP                  ^ ,          4       F  p\        P                  ! \        P
                  ! V4      \        P                  ! V4      .\        P
                  ! W,          4      \        P                  ! W,          4      .W#4      '       g   K  Rp\        P                  ! W4        M	  V'       d   K  \        R\        V4      ,           R,           \        V4      ,           4      h	  R# )a  
Check each pole in P1 is close to a pole in P2 with a 1e-8
relative tolerance or 1e-8 absolute tolerance (useful for zero poles).
These tolerances are very strict but the systems tested are known to
accept these poles so we should not be far from what is requested.
FTzCan't find pole z in N)
copyrangeshapenpallcloserealimagdelete
ValueErrorstr)P1P2rtolatolp1foundp2_idxs   &&&&   \/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/signal/tests/test_ltisys.py_assert_poles_closer+      s     
BBHHQK(F{{BGGBK5GGBJ/1DE' ' 		"% ) u/#b'9FBSWLMM     c                   >   a  ] tR t^(t o R tR tR tR tR tRt	V t
R# )TestPlacePolesc                *   \        WV3/ VB p\        P                  P                  V\        P                  ! W%P
                  4      ,
          4      w  rg\        WeP                  4       \        WeP                  4       \        W5P                  4       V# )z{
Perform the most common tests on the poles computed by place_poles
and return the Bunch object for further specific tests
)	r   r   linalgeigdotgain_matrixr+   requested_polescomputed_poles)selfABPkwargsfsfexpected_s   &&&&,   r*   _checkTestPlacePoles._check*   sj    
 !,V,iimmAq//(B$BCH&9&9:H&8&89A112
r,   c                   \         P                  ! . RO4      P                  ^^4      p\         P                  ! . RO4      P                  ^^4      p\         P                  ! . R	O4      pV P                  WVRR7       V P                  WVRR7       \         P                  ! RR7      ;_uu_ 4        V P                  WR
4       RRR4       R#   + '       g   i     R# ; i)Gz?KNV0methodYTignore)invalidNrA   gʿg\(@gNbX9g<,Ԛg)\(r   g?gOn?d;O@gV-gOn@g~jt?rI   grh|?gE )r   K@V-?rK   r   r   ^I+	r   皙ɿ      g}гY9gDT!)   rP      rQ   )r   arrayreshaper>   errstate)r6   r7   r8   r9   s   &   r*   	test_realTestPlacePoles.test_real6   s     HH % &&-gam 	
 HH=>FFq!LHH34 	A!F+A!D) [[**KKi( +***s   0CC	c           	        \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! ^ ^ .^ ^ .^^ .^ ^..4      p\         P                  ! . R
O4      p\         P                  ! RRR7      ;_uu_ 4        V P                  WV4       RRR4       . ROp\         P                  ! RRR7      ;_uu_ 4        V P                  WVRR7       RRR4       \         P                  ! . RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%N^NR&NR'NR(NR)NR*NR+NR,NR-NR.N4      P	                  ^^4      p\         P                  ! . R/O4      P	                  ^^4      p. R0OpV P                  WV4       \         P
                  ! R14      \         P                  ! ^4      ,
          p\         P
                  ! R24      \         P                  ! ^.^
,          ^4      R3,          ,
          pWR4&   W%R5&   . R6Op\         P                  ! RRR7      ;_uu_ 4        V P                  WEV4       RRR4       . R7OpV P                  VRR	1RR	13,          VRR	1RR	13,          V4       . R8OpV P                  VRR	1RR	13,          VRR	1RR	13,          V4       \         P                  ! . R9O4      P	                  ^^4      p\         P                  ! . R:O4      P	                  ^^4      p\         P                  ! . R;O4      p\         P                  ! RRR7      ;_uu_ 4        \        WV4       RRR4       \         P                  ! . R<O4      p\         P                  ! RRR7      ;_uu_ 4        V P                  WV4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)=r   rF   )dividerG   Ni  maxiter)r      r   r   )r   r   r   竪@)r   r   r   r   )r]                             ?)y        ưy        ư>
   iii%iiFii[iiiYiiii\ii^iciii(i~iiiiiiSiiigiiipii)iiiii0i_iLi`iiiii]ii#iii"iHiii<i^iUiiiciiiR)y      9      =y      9      =@y      ?@      Ey      ?@      E@y     @@     Dy     @@     D@)   rc   )rc   rb   )NNN:   NN)N   Nrf   )rf   :N   N)ra   (   2   <   F   y      4      y      4      @y      @      @y      @      )
ra   ri   rj   iiii)
y      $      $@y      4      4@y      >      >@y      D      D@y      I      I@y      $      $y      4      4y      >      >y      D      Dy      I      I)r   r[   r   r   r   r   r   r\   r   r   r   r   r   r   r   r   r   r   r   rh   r   r   r   r   	   )
r   r   r   r   re   r   r   re   rP   rQ   )y            ?y                        ?            )rs   r^   rt   ru   )	r   rR   rT   r>   rS   oneseyediagr   )r6   r7   r8   r9   big_Abig_Bs   &     r*   test_complexTestPlacePoles.test_complexL   s1    HHl%""$ % HHq!f!f!f!f 
 HH+, [[(;;KKa  < %[[(;;KKaK. < HHGU G5 G% G Gu Ge GT G4 G GGG$G&*G,1G37G9>G@DGFKGGG $G&+G-1G37G9=G?DGFGGING G G  $G &+G -2G 49G ;?G AFG
 WQq\ 	
 HH(
 wq| 	
 KA!
  + !R!24!88ee=[[(;;KKa( < 7E#2#crc'NE#2#crc'NA66E#2#crc'NE#2#crc'NA6 HH ) **1'!A, 	
HH*+33Aa8HH56[[(;;a  <
 HH/0[[(;;KKa  <;{ <;; <;;> <;;  <; <;;s<   =N<N&#N:(O5O!N#	&N7	:O	O	!O2	c                X   \         P                  ! . RO4      P                  ^^4      p\         P                  ! . RO4      P                  ^^4      p\         P                  ! . RO4      pV P                  WV4      p\         P                  ! VP
                  4      '       g   Q h\         P                  ! VP                  4      '       g   Q h\         P                  ! R4      pV P                  WV4      p\         P                  ! VP
                  4      '       g   Q h\         P                  ! VP                  4      '       g   Q hVR,          P                  ^^4      p\         P                  ! R4      pV P                  WV4      pVP
                  ^ 8X  g   Q hVP                  ^ 8X  g   Q hR# )rA   NrH   )r   rJ   rK   rK   r   r   rL   r   re   rP   rQ      rh   rg   r[      rM   )r`   r_   r^   rs   rd   r   )r   rR   rS   r>   isnanr%   nb_iter)r6   r7   r8   r9   r;   s   &    r*   test_tricky_BTestPlacePoles.test_tricky_B   sI    HH % &&-gam 	
 HH " ##*71a= 	

 HH34kk!" xx!!!!xx$$$$ HH()kk!"xx!!!!xx$$$$ cFNN1QHH()kk!" xx1}}{{ar,   c           
        \         P                  ! . RO4      P                  ^^4      p\         P                  ! . RO4      P                  ^^4      p\        \        \
        WRRR7       \        \        \
        W\         P                  ! R4      P                  ^^4      4       \        \        \
        VRR\         P                  3,          VR4       \        \        \
        WRR\         P                  3,          R4       \        \        \
        WR4       \        \        \
        WR4       \        \        \
        WR^*R7       \        \        \
        WRRR7       \        \        \
        WR4       \        \        \
        \         P                  ! R4      \         P                  ! R4      R4       \        P                  ! RR7      ;_uu_ 4       p\        P                  ! R4       \        WRR	^*R
7      p\        V4      ^8X  g   Q h\        VR,          P                  \        4      '       g   Q hR\        VR,          P                   4      9   g   Q hVP"                  ^*8X  g   Q h RRR4       \        \        \
        WR4       \        \        \
        VR,          VR4       \        \        \
        WR,          R4       \        \        \
        WRRR7       R#   + '       g   i     L{; i)r   foorC   rd   r%   rY   T)recordalwaysgؗҜ<)r%   rZ   z4Convergence was not reached after maxiter iterationsNrB   )r   r[   r   r   r   r   r   r\   r   r   r   r   r   r   r   r   )r   r   r   r   re   r   r   re   ) 皙ffffff333333)r   r   r   r   r^   )r   r   r   i)rs   rs   rs   rs   )r   r   )r   rP   re   rP   rQ   r   r]   )r]   rs   r^   rv   )r`   r_                @rs   )rd   NrQ   N)rs   r^   rv   )r   rd   )r`   r_   r   y             )r   rR   rS   assert_raisesr!   r   newaxisrw   warningscatch_warningssimplefilterlen
issubclasscategoryUserWarningr"   messager   )r6   r7   r8   wr;   s   &    r*   test_errorsTestPlacePoles.test_errors   s5   HH9:BB1QGHH&'//!4 	j+q5J"	$ 	j+qhh45==aB	D 	j+q1RZZ/@!+	- 	j+qAa

N2C+	- 	j+q5MN 	j+q5EF 	j+q5J	 	j+q5J!	# 	j+q]C 	j+rwwu~ggeni	1
 $$D11Q!!(+aMrJCq6Q;;aennk::::J1R5==)* + *;;"$$$ 2 	j+q5KL 	j+qw=I 	j+qD'=I 	j+q/	@' 21s   BKK+	 N)__name__
__module____qualname____firstlineno__r>   rU   r|   r   r   __static_attributes____classdictcell____classdict__s   @r*   r.   r.   (   s*     
),N!`  D@@ @@r,   r.   c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )	TestSS2TFi  c           	         \        \        P                  ! W34      \        P                  ! W34      \        P                  ! W134      \        P                  ! W234      ^ 4       R# )r   N)r	   r   zerosr6   pqrs   &&&&r*   check_matrix_shapesTestSS2TF.check_matrix_shapes  sC    bhhvhhvhhvhhv	#r,   c                B    R F  w  rpV P                  WV4       K  	  R# )rQ   N))rQ   rQ   rQ   )re   rQ   rQ   re   re   re   )r   r   s   &   r*   test_shapesTestSS2TF.test_shapes	  s"     9GA!$$Q1- 9r,   c                p   \         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      w  r4rV\        VRR.^^ ..RR7       \        VR .^ ..RR7       \        VR ^..RR7       \        VR ..RR7       \	        W4WV4      w  rx\        V^ ,          VRR7       \        WRR7       R# )	      ?vIh%<=r   +=N)r         @      @)r          @r          r^   )r   rR   r
   r   r	   )	r6   bar7   r8   CDbbaas	   &        r*   
test_basicTestSS2TF.test_basic  s    HH_%HH_%1[
aS"I1v.U;RD1#;U3RG951RD6.qQ"1qu-E*r,   c                   Rp\        V!  w  r#rE\        VR..RR7       \        VR..RR7       \        VR..RR7       \        VR..RR7       \        W#WE4      w  rg\        VR^ ..RR7       \        VR^ .RR7       ^.^..^3p\        V!  w  r#rE\        VR..RR7       \        VR..RR7       \        VR.^ ..RR7       \        VR.^..RR7       \        W#WE4      w  rg\        VR^ .^^ ..RR7       \        VR^ .RR7       R# )	rP           r   r   r   r   r   N)rP   re   )r
   r   r	   r6   tfr7   r8   r   r   numdens   &       r*   test_zero_order_round_trip$TestSS2TF.test_zero_order_round_trip  s!   BZ
aRD6.RD6.RD6.RD6.q$r1gYU3b!W51sQCj!_BZ
aRD6.RD6.RD1#;U3RD1#;U3q$r1g1v.U;b!W51r,   c                0   ^^.^^..^^.3p\        V!  w  r#rE\        VR	..RR7       \        VR..RR7       \        VR.R
..RR7       \        VR.R..RR7       \        W#WE4      w  rg\        VRR.RR..RR7       \        VRR.RR7       . RO. RO.. RO3p\        V!  w  r#rE\        VR
R
.RR..RR7       \        VR.R..RR7       \        VR
R.RR..RR7       \        VR.R..RR7       \        W#WE4      w  rg\        V. RO. RO.RR7       \        V. RORR7       . RO. RO.. RO3p\        V!  w  r#rE\        V. RO. RO. RO.RR7       \        VR.^ .^ ..RR7       \        V. RO. RO.RR7       \        VR.^ ..RR7       \        W#WE4      w  rg\        V. RO. RO.RR7       \        V. RORR7       \        P                  ! ^^^..\
        R7      ^^.3p\        V!  w  r#rE\        VR..RR7       \        VR..RR7       \        VR.R..RR7       \        VR.^..RR7       \        W#WE4      w  rg\        VR^.^^..RR7       \        VR^.RR7       \        P                  ! ^R.. RO.\
        R7      . RO3p\        V!  w  r#rE\        VRR.^^ ..RR7       \        VR.^ ..RR7       \        VRR.RR..RR7       \        VR.^..RR7       \        W#WE4      w  rg\        V. RO. RO.RR7       \        V. R ORR7       R# )!re   r   r   r   r   r   )dtypeghe99Nr         )re   r   re   r   )r   r   r   )r   r   r   )re   rP   rQ   r   r^   rv   )r   r^   rv   )re   r   r   r   re   r   )r   rP   rQ   )r   re   rP   rQ   )r   re   rP   rQ   )r   rP   rQ   r   g      i)re   rg   rh   r   rs   )r   re   r^   )r   rg   rh   )r
   r   r	   r   rR   objectr   s   &       r*   test_simo_round_tripTestSS2TF.test_simo_round_trip6  s?   1v1vA'BZ
aSE7/RD6.RD3%=u5RD2$<e4q$r2hR1>b"XE2)$i0BZ
aS#JR1>RD2$<e4S"IBx0u=RD2$<e4q$lL9F\6)$l3BZ
aM9i@uMRD1#s+%8J	2?RD1#;U3q$m\:G]7hhAq6{&1Aq6:BZ
aSE7/RD6.RD2$<e4RD1#;U3q$r1g1v.U;b!W51hhB+6:IFBZ
aS"I1v.U;RD1#;U3RHr2h/e<RD1#;U3q$k95EBZe4r,   c                    . RO. RO. RO.p^ .^ .^..p. R	O.p^ ..p\        WW44      w  rV\        V. R
O.RRR7       \        V. RORR7       R# )r   r   r   r%   r&   r   Nr   )r   r   re   )r^   rv   rs   )rh   re   r   )r   r   r   r   )r   r         @r   )r	   r   )r6   r7   r8   r   r   r   r   s   &      r*   test_all_int_arraysTestSS2TF.test_all_int_arrayso  s\    	<0S1#sOKSEq$23%eL1>r,   c                ^   \         P                  ! . R	O. R
O. RO. RO.4      p\         P                  ! R.R.R.R..4      p\         P                  ! . RO. RO. RO.4      p\         P                  ! R.R.R ..4      p\        WW44      w  rV\        WV^ ,          V^ ,          4      w  rx\        WV^,          V^,          4      w  r\        WV^,          V^,          4      w  r\        WRR7       \        WRR7       \        WRR7       \        V\         P                  ! WyV34      RRR7       R# )r   r   333333?g      @r   r   r   r   N)r   r   r   r   )r   r   r   r   )g      r   r   r   )g              @r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   rR   r	   r   vstack)r6   r7   r8   r   r   b_allr   b0a0b1a1b2a2s   &            r*   test_multioutputTestSS2TF.test_multioutputx  s!    HH++++- . HHseeee  HH***, - HHseee 
 q$ qQqT1Q4(qQqT1Q4(qQqT1Q4( 	E*E*E*ryy""6UOr,   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r*   r   r     s0     #.+2075r?$P $Pr,   r   c                   `   a  ] tR tRt o ^tR tR tR tR tR t	R t
R tR	 tR
 tR tRtV tR# )TestLsimi  c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \	        V!  pRRR4       V#   + '       g   i     X# ; i)rF   N)r   r   r   r   r   )r6   argssystems   &* r*   
lti_nowarnTestLsim.lti_nowarn  sF    $$&&!!(O<$ZF '  '& s   %AA	c                   V P                  RR R R4      p\        P                  ! ^ ^4      p\        P                  ! V4      p\	        WVR .R7      w  rEp\        P
                  ! V) 4      p\        Wg4       \        WW4       R# r   r   X0Nr   r   r   linspace
zeros_liker   expr   r6   r   tutoutyx
expected_xs   &       r*   test_first_orderTestLsim.test_first_order  si     R2.KK!MM!&QC51
VVTE]
A*A*r,   c                "   \         P                  ! ^ ^
R4      p\         P                  ! V4      pV P                  R.. RO4      p\	        W2VRR.R7      w  rEpRV,
          \         P
                  ! V) 4      ,          p\        VR,          V4       R# )r   i  r   r   r   Nr   r   r   r   )r   r   r   r   r   r   r   )r6   r   r   r   r   r   r   r   s   &       r*   test_second_orderTestLsim.test_second_order  sr    KK2t$MM! #8&QC:6
DjBFFD5M1
AdGZ0r,   c                    V P                  R RRR 4      p\        P                  ! ^ ^4      pTp\        WV4      w  rEpRV^,          ,          p\	        WgV P
                  R7       \	        WWV P
                  R7       R# )r   r         ?decimalN)r   r   r   r   r   digits_accuracyr   s   &       r*   test_integratorTestLsim.test_integrator  sh    RR0KK!&Q'
47]
A43G3GHA43G3GHr,   c                   \         P                  ! RR.RR..4      p\         P                  ! R R.RR ..4      p\         P                  ! R R.4      p\         P                  ! R4      pV P                  WW44      p\         P                  ! ^ R^4      p\         P                  ! \        V4      ^34      p\        WWVR R .R7      w  rp
\         P                  ! V) 4      p\         P                  ! V) 4      p\         P                  ! RV,          4      p\        W4       \        V
R,          V4       \        V
R	,          V4       R# )
r   r   g      $@)UTr   Nr   r   re   rP   r   rd   re   	r   rR   r   r   r   r   r   r   r   r6   r7   r8   r   r   r   r   r   r   r   r   
expected_yexpected_x0expected_x1s   &             r*   test_two_statesTestLsim.test_two_states  s    HHtSkC;/0HHsCj3*-.HHc3Z HHVq,KK4$HHc!fa[!&Sz:
VVTE]
ffdUmffTD[)A*AdG[1AdG[1r,   c                $   \         P                  ! R R.R R ..4      p\         P                  ! R .R..4      p\         P                  ! RR ..4      pV P                  WVR 4      p\         P                  ! ^ ^4      p\         P                  ! V4      p\        WFV4      w  rxp	\         P                  ! \         P                  ! RV^,          ,          V.4      4      p
V^,          p\        WV P                  R7       \        WV P                  R7       R# )r   r   r   r  r  N)	r   rR   r   r   	ones_liker   	transposer   r  )r6   r7   r8   r   r   r   r   r   r   r   r   r  s   &           r*   test_double_integratorTestLsim.test_double_integrator  s    HHr2hR)*HHrdRD\"HHr2hZ q"-KK!LLO&Q'
\\"((C$'M4+@"AB
1W
A43G3GHA43G3GHr,   c                   \         P                  ! RR .RR..4      p\         P                  ! R.R ..4      p\         P                  ! R R..4      pV P                  WVR4      p\         P                  ! ^ ^4      p\         P                  ! V4      p\        WFVRR .R7      w  rxp	V\         P                  ! V) 4      ,          p
\        W4       R# r   )r   rR   r   r   r   r   r   r   )r6   r7   r8   r   r   r   r   r   r   r   r  s   &          r*   test_jordan_blockTestLsim.test_jordan_block  s     HHsBi"c+,HHrdRD\"HHr2hZ q"-KK!MM!&QC:6
BFFD5M)
A*r,   c                   \         P                  ! RR.RR..4      p\         P                  ! R R.RR ..4      p\         P                  ! R R.4      p\         P                  ! R4      pV P                  WW44      p\         P                  ! ^ R^e4      p\         P                  ! \        V4      ^34      p\        WWVR R .R7      w  rp
\         P                  ! V) 4      p\         P                  ! V) 4      p\         P                  ! RV,          4      p\        W4       \        V
R,          V4       \        V
R	,          V4       R# )
r   r   r   r   Nr   r   r  r   r  r  r  s   &             r*   	test_misoTestLsim.test_miso  s    HHtSkC;/0HHsCj3*-.HHc3Z HHUOq,KK3$HHc!fa[!&QC:6
VVTE]
ffdUmffT$Y'A*AcFK0AcFK0r,   c                    V P                  RR R R4      p\        P                  ! ^^4      p\        P                  ! V4      p\	        WVR .R7      w  rEp\        P
                  ! V) 4      p\        WW4       R# r   r   )r6   r   r   r   r   r   r   r  s   &       r*   test_nonzero_initial_time"TestLsim.test_nonzero_initial_time  s_    R2.KK!MM!&QC51
VVTE]
A*r,   c           	        \         P                  ! . RO4      p\         P                  ! . RO4      pR.RR .3p\        \        RR7      ;_uu_ 4        \	        W2VR.R7      w  rEpRRR4       R#   + '       g   i     R# ; i)r   r   z"Time steps are not equally spaced.)matchr   N)r   r   r   r   )r   r   r   r   )r   rR   r   r!   r   )r6   r   r   r   r   r   r   s   &      r*   test_nonequal_timesteps TestLsim.test_nonequal_timesteps  sq    HH)*HH)*%#s$:!EG Gfu5JDQG G G Gs   A..A?	r   N)r   r   r   r   r  r   r   r  r	  r  r  r  r   r#  r'  r   r   r   s   @r*   r   r     sC     O	+	1I2&I+ 1$+6 6r,   r   c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestImpulsei  c                r    R .R R .3p\        V4      w  r#\        P                  ! V) 4      p\        W44       R# r   Nr   r   r   r   r6   r   r   r   r  s   &    r*   r   TestImpulse.test_first_order  s6     %#c#&/VVTE]
A*r,   c                    R .R R .3p^p\         P                  ! ^ RV4      p\        WR7      w  rEVP                  V38X  g   Q h\	        WC4       \         P
                  ! V) 4      p\	        WV4       R# r   r   r  N)r   r   r   r   r   r   r6   r   nr   r   r   r  s   &      r*   test_first_order_fixed_time'TestImpulse.test_first_order_fixed_time&  sj    
 %#c#KK3"&&zzaT!!!D$VVQBZ
A*r,   c                    R .R R .3p\        VRR7      w  r#R\        P                  ! V) 4      ,          p\        W44       R# r   r   r   r   Nr-  r.  s   &    r*   test_first_order_initial$TestImpulse.test_first_order_initial4  s>    
 %#c#&S)2664%=(
A*r,   c                    R .R R .3p\        VR.R7      w  r#R\        P                  ! V) 4      ,          p\        W44       R# r8  r-  r.  s   &    r*   test_first_order_initial_list)TestImpulse.test_first_order_initial_list>  s@    
 %#c#&cU+2664%=(
A*r,   c                p    R .R R.3p\        V4      w  r#\        P                  ! V4      p\        W44       R# r   r   N)r   r   r  r   r.  s   &    r*   r	  TestImpulse.test_integratorH  s3    %#c#&/\\$'
A*r,   c                    R .. RO3p\        V4      w  r#V\        P                  ! V) 4      ,          p\        W44       R# r   Nr  r-  r.  s   &    r*   r  TestImpulse.test_second_orderO  s7     %)&/BFFD5M)
A*r,   c                ^    R .. RO3p\        V^.^^.R7      w  r#\        V^.^.R7      w  r#R# r   )r   r  Nr  r   r6   r   r   r   s   &   r*   test_array_likeTestImpulse.test_array_likeX  s:    %)&aSQF3&aSQC0ar,   c                4    R .. RO3p\        V^^R7      w  r#R# rE  rF  rG  s   &   r*   test_array_like2TestImpulse.test_array_like2_  s     %)&Q!,ar,   r   N)r   r   r   r   r   r5  r9  r<  r	  r  rH  rK  r   r   r   s   @r*   r*  r*    s2     ++++++1- -r,   r*  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestStepid  c                    R .R R .3p\        V4      w  r#R \        P                  ! V) 4      ,
          p\        W44       R# r,  r   r   r   r   r.  s   &    r*   r   TestStep.test_first_ordere  s;     %#c#v,2664%=(
A*r,   c                    R .R R .3p^p\         P                  ! ^ RV4      p\        WR7      w  rEVP                  V38X  g   Q h\	        WC4       ^\         P
                  ! V) 4      ,
          p\	        WV4       R# r1  )r   r   r   r   r   r   r3  s   &      r*   r5  $TestStep.test_first_order_fixed_timem  sn    
 %#c#KK3"v#zzaT!!!D$^
A*r,   c                    R .R R .3p\        VRR7      w  r#^R\        P                  ! V) 4      ,          ,           p\        W44       R# r   r   r   r   NrP  r.  s   &    r*   r9  !TestStep.test_first_order_initial{  sC    
 %#c#v#&RVVTE]**
A*r,   c                    R .R R .3p\        VR.R7      w  r#^R\        P                  ! V) 4      ,          ,           p\        W44       R# rU  rP  r.  s   &    r*   r<  &TestStep.test_first_order_initial_list  sE    
 %#c#v3%(RVVTE]**
A*r,   c                H    R .R R.3p\        V4      w  r#Tp\        W44       R# r?  )r   r   r.  s   &    r*   r	  TestStep.test_integrator  s,     %S	"v,
A*r,   c                    R .. RO3p\        V4      w  r#^^V,           \        P                  ! V) 4      ,          ,
          p\        W44       R# rB  rP  r.  s   &    r*   r  TestStep.test_second_order  s@     %)v,!d(bffdUm33
A*r,   c                6    R .. RO3p\        V^^.R7      w  r#R# )r   r2  Nr  r   rG  s   &   r*   rH  TestStep.test_array_like  s"    %)v!Q(ar,   c                $    \        . R.R34       R# )re   Nr]   y      ?        r^  r6   s   &r*   test_complex_inputTestStep.test_complex_input  s     	b2$r,   r   N)r   r   r   r   r   r5  r9  r<  r	  r  rH  rb  r   r   r   s   @r*   rN  rN  d  s2     ++++++) r,   rN  c                   &   a  ] tR tRt o R tRtV tR# )TestLtii  c                   \        ^.R.4      p\        V\        4      '       g   Q h\        V\         4      '       g   Q h\        V\        4      '       d   Q hVP                  e   Q h\        \
        P                  ! . 4      \
        P                  ! R.4      ^4      p\        V\        4      '       g   Q h\        V\         4      '       g   Q h\        V\        4      '       d   Q hVP                  e   Q h\        . R.^4      p\        ^.R.^^4      p\        V\        4      '       g   Q h\        V\         4      '       g   Q h\        V\        4      '       d   Q hVP                  e   Q hR# re   Nr]   )	r   
isinstancer   r   dtr   rR   r   r   r6   ss   & r*   test_lti_instantiationTestLti.test_lti_instantiation  s1   
 bTN!-....!S!!!!a&&&&tt|| bhhtna0!^,,,,!S!!!!a&&&&tt|| RD!bT1a !Z((((!S!!!!a&&&&tt||r,   r   N)r   r   r   r   rl  r   r   r   s   @r*   re  re    s      r,   re  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestStateSpacei  c                    \        ^^^^4       \        ^.^.^.^.4       \        \        P                  ! ^^.^^..4      \        P                  ! ^.^..4      \        P                  ! ^^ ..4      \        P                  ! ^ ..4      4       R# re   N)r   r   rR   ra  s   &r*   test_initialization"TestStateSpace.test_initialization  sy    1aAA3aS1#&288aVaV,-rxx!qc
/C88aVH%rxx!	8r,   c                T   \        ^^^^4      p\        VP                  4       \         4      '       g   Q h\        VP                  4       \        4      '       g   Q h\        VP                  4       \        4      '       g   Q h\        V4      VJg   Q hVP                  4       VJg   Q hR# rq  )r   rh  to_ssto_tfr   to_zpkr   rj  s   & r*   test_conversionTestStateSpace.test_conversion  s    q!Q"!'')Z0000!'')%56666!((*n5555 !}A%%%wwy!!!r,   c                    \        ^^^^4      p\        VP                  R.4       \        VP                  R.4       VP                  e   Q hR# )re   r   r   N)r   r   polesr   ri  rj  s   & r*   test_propertiesTestStateSpace.test_properties  sB    
 q!Q""&"&tt||r,   c                    ! R  R4      p\        \        P                  ! RR.RR..4      \        P                  ! ^.^ ..4      \        P                  ! ^^ ..4      \        P                  ! ^ ..4      4      p\        \        P                  ! RR.RR..4      \        P                  ! ^.^ ..4      \        P                  ! ^^ ..4      \        P                  ! ^ ..4      4      pVP                  R4      pVP                  R4      pVP                  R4      p\        P                  ! ^ ^^d4      p\        P
                  ! V4      p^V^ &   \        \        \        \        P                  \        P                  \        P                  3 EF  p	\        \        V	! ^4      V,          WR7      ^,          V	! ^4      \        W(VR7      ^,          ,          4       \        \        W)! ^4      ,          WR7      ^,          \        W(VR7      ^,          V	! ^4      ,          4       \        \        W)! ^4      ,          WR7      ^,          \        W(VR7      ^,          V	! ^4      ,          4       \        \        4      ;_uu_ 4        V	! ^4      V,           RRR4       EK  	  \        \        V^,          WR7      ^,          \        V^V,          VR7      ^,          4       \        \        W#,          WR7      ^,          \        V\        W8VR7      ^,          VR7      ^,          R	R
7       \        \        4      ;_uu_ 4        W",           RRR4       \        \        4      ;_uu_ 4        W$,           RRR4       \        \        4      ;_uu_ 4        WE,           RRR4       \        \        4      ;_uu_ 4        W!! 4       ,           RRR4       \        \        4      ;_uu_ 4        V! 4       V,           RRR4       \        \        4      ;_uu_ 4        W!! 4       ,           RRR4       \        \        4      ;_uu_ 4        V! 4       V,           RRR4       \        \        V^,           WR7      ^,          ^V,          \        W(VR7      ^,          ,           4       \        \        4      ;_uu_ 4        V\        P                  ! ^^.4      ,            RRR4       \        \        4      ;_uu_ 4        \        P                  ! ^^.4      V,            RRR4       \        \        4      ;_uu_ 4        W$,            RRR4       \        \        4      ;_uu_ 4        V\        P                  ! ^^.^^..4      ,           RRR4       \        \        4      ;_uu_ 4        WE,            RRR4       \        \        4      ;_uu_ 4        W!! 4       ,            RRR4       \        \        4      ;_uu_ 4        V! 4       V,            RRR4       \        \        W#,           WR7      ^,          \        W(VR7      ^,          \        W8VR7      ^,          ,           4       \        \        V^,
          WR7      ^,          RV,          \        W(VR7      ^,          ,           4       \        \        ^V,
          WR7      ^,          ^V,          \        V) WR7      ^,          ,           4       \        \        W#,
          WR7      ^,          \        W(VR7      ^,          \        W8VR7      ^,          ,
          4       \        \        4      ;_uu_ 4        W!! 4       ,
           RRR4       \        \        4      ;_uu_ 4        V! 4       V,
           RRR4       WF,           p
V
P                   R8X  g   Q hWF,          p
V
P                   R8X  g   Q h^V,          p
V
P                   R8X  g   Q hV) p
V
P                   R8X  g   Q hR#   + '       g   i     EK}  ; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELp; i  + '       g   i     ELW; i  + '       g   i     EL=; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL_; i  + '       g   i     ELK; i  + '       g   i     EL2; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i)c                       ] tR tRtRtR# ).TestStateSpace.test_operators.<locals>.BadTypei  r   N)r   r   r   r   r   r   r,   r*   BadTyper    s    r,   r  gffffff?r   g?皙?g?)r  r  Ngh㈵>)r&   rO   grN   grs   )r   r   rR   to_discreter   r   intfloatcomplexfloat32
complex128r   r   r   	TypeErrorr!   ri  )r6   r  s1s2
s_discretes2_discretes3_discreter   r   typrk  s   &          r*   test_operatorsTestStateSpace.test_operators  sz   	 	 4+T{!;<1#s,1a&*1# 4,d!<=1#s,1a&*1# ^^C(
nnS)nnS) KK1c"MM!! R]]BHHMCDQ"7:FT"Q%7%::< Dc!f7: A.q1CF:< Dc!f7: A.q1CF:< y))A *) N 	R!Vq.q1R1q5A.q1	3 	RW/2R41#5a#8A>qA!	# 9%%G & 9%%O & 9%%$ & 9%%N & 9%%IN & 9%%N & 9%%IN & 	R!Vq.q1AR 21 55	7 :&&1a&!! ' :&&HHaVr! ' 9%%O & :&&Aq6Aq6*++ ' 9%%$ & 9%%N & 9%%IN & 	RW/2R*1-R0B10EE	G 	R!Vq.q1Qb!3A!66	8 	QVq.q1AbSA 3A 66	8 	RW/2R*1-R0B10EE	G 9%%N & 9%%IN & $tts{{$tts{{
Ntts{{Ktts{{q *)) &%% &%% &%% &%% &%% &%% &%% '&& '&& &%% '&& &%% &%% &%%  &%% &%%s    _4>	`	&	`	`16a#aa->b1 b0 b)/	b=$c	c%c9/dd!3d54`	`	`.	1a	a	a*	-a>	b	b&	)b:	=c	c"	%c6	9d
	d	!d2	5e	r   N)
r   r   r   r   rr  rx  r|  r  r   r   r   s   @r*   ro  ro    s      8	"~ ~r,   ro  c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestTransferFunctionif  c                    \        ^^4       \        ^.^.4       \        \        P                  ! ^.4      \        P                  ! ^.4      4       R# rq  )r   r   rR   ra  s   &r*   rr  (TestTransferFunction.test_initializationg  s8    A!qc"1#!6r,   c                X   \        ^^ .^R.4      p\        VP                  4       \        4      '       g   Q h\        VP	                  4       \         4      '       g   Q h\        VP                  4       \        4      '       g   Q h\        V4      VJg   Q hVP	                  4       VJg   Q hR# rg  )r   rh  ru  r   rv  rw  r   rj  s   & r*   rx  $TestTransferFunction.test_conversionm  s    aVaW-!'')Z0000!'')%56666!((*n5555  "!+++wwy!!!r,   c                    \        ^^ .^R.4      p\        VP                  R.4       \        VP                  R.4       R# )re   r   r   Nr]   )r   r   r{  r   rj  s   & r*   r|  $TestTransferFunction.test_propertiesx  s8    
 aVaW-"&"&r,   r   N)	r   r   r   r   rr  rx  r|  r   r   r   s   @r*   r  r  f  s     7	"' 'r,   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestZerosPolesGaini  c                    \        ^^^4       \        ^.^.^4       \        \        P                  ! ^.4      \        P                  ! ^.4      ^4       R# rq  )r   r   rR   ra  s   &r*   rr  &TestZerosPolesGain.test_initialization  s>    q!QsQC#rxx}bhhsmQ7r,   c                R   \        ^^^4      p\        VP                  4       \        4      '       g   Q h\        VP	                  4       \
        4      '       g   Q h\        VP                  4       \         4      '       g   Q h\        V4      VJg   Q hVP                  4       VJg   Q hR# rq  )r   rh  ru  r   rv  r   rw  rj  s   & r*   rx  "TestZerosPolesGain.test_conversion  s    1a#!'')Z0000!'')%56666!((*n5555 a )))xxz"""r,   r   N)r   r   r   r   rr  rx  r   r   r   s   @r*   r  r    s     8	# 	#r,   r  c                      a  ] tR tRt o RR.RR..tR.R..tRR..tR..tR tR	 t	R
 t
R tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# ) Test_abcd_normalizei  r   r   r   r   r         @c                .    \        \        \        4       R # N)r   r!   r   ra  s   &r*   test_no_matrix_fails(Test_abcd_normalize.test_no_matrix_fails  s    j.1r,   c           
         \        \        \        VP                  ^R.4      VP                  V P                  4      VP                  V P
                  4      VP                  V P                  4      4       R# rg  )r   r!   r   asarrayr8   r   r   r6   xps   &&r*   test_A_nosquare_fails)Test_abcd_normalize.test_A_nosquare_fails  sL    j."**aW2Ejj("**TVV*<bjj>P	Rr,   c           
         \        \        \        VP                  V P                  4      VP                  R^.4      VP                  V P
                  4      VP                  V P                  4      4       R# rg  r   r!   r   r  r7   r   r   r  s   &&r*   test_AB_mismatch_fails*Test_abcd_normalize.test_AB_mismatch_fails  L    j."**TVV2Djj"a)2::dff+=rzz$&&?Q	Sr,   c           
         \        \        \        VP                  V P                  4      VP                  V P
                  4      VP                  R .R..4      VP                  V P                  4      4       R# )r   r   N)r   r!   r   r  r7   r8   r   r  s   &&r*   test_AC_mismatch_fails*Test_abcd_normalize.test_AC_mismatch_fails  sP    j."**TVV2Djj("**secU^*Djj(	*r,   c                    \        \        \        VP                  V P                  4      VP                  V P
                  4      VP                  V P                  4      VP                  R ^ .4      4       R# )r  N)r   r!   r   r  r7   r8   r   r  s   &&r*   test_CD_mismatch_fails*Test_abcd_normalize.test_CD_mismatch_fails  sL    j."**TVV2Djj("**TVV*<bjj#q>R	Tr,   c           
         \        \        \        VP                  V P                  4      VP                  R^.4      VP                  V P
                  4      VP                  V P                  4      4       R# rg  r  r  s   &&r*   test_BD_mismatch_fails*Test_abcd_normalize.test_BD_mismatch_fails  r  r,   c                   \        VP                  V P                  V P                  V P                  V P
                  34      w  r#rE\        W#WER 7      w  rgr\        Wb4       \        Ws4       \        W4       \        W4       R# ))r7   r8   r   r   N)mapr  r7   r8   r   r   r   r   )
r6   r  A_B_C_D_r7   r8   r   r   s
   &&        r*   "test_normalized_matrices_unchanged6Test_abcd_normalize.test_normalized_matrices_unchanged  s_    RZZ$&&$&&$&&$&&)IJ#b";
ar,   c                z   \        VP                  V P                  4      VP                  V P                  4      VP                  ^^ .4      VP                  ^ 4      4      w  r#rEVP                  ^ ,          VP                  ^,          8X  g   Q hVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^ ,          VP                  ^,          8X  g   Q hVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^,          VP                  ^,          8X  g   Q hR# rq  )r   r  r7   r8   r   )r6   r  r7   r8   r   r   s   &&    r*   r   Test_abcd_normalize.test_shapes  s    #BJJtvv$6

4668J$&JJ1v$6

1G
awwqzQWWQZ'''wwqzQWWQZ'''wwqzQWWQZ'''wwqzQWWQZ'''wwqzQWWQZ'''r,   c                   VP                  V P                  4      pVP                  R4      pVP                  R4      p\        W#VR7      w  rVrx\	        WR4       \	        Wc4       \	        W4       VP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^ ,          8X  g   Q hR# )rP   r7   r8   r   NrP   r   )r   r   r  r7   r   r   r   r   	r6   r  r  r  r  r7   r8   r   r   s	   &&       r*    test_zero_dimension_is_not_none14Test_abcd_normalize.test_zero_dimension_is_not_none1      ZZXXfXXf#b"5
awwqzRXXa[(((wwqzRXXa[(((r,   c                   VP                  V P                  4      pVP                  R4      pVP                  R4      p\        W#VR7      w  rVrx\	        WR4       \	        Wc4       \	        Wt4       VP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^,          8X  g   Q hR# )rP   r7   r8   r   Nr  )r   rP   r  	r6   r  r  r  r  r7   r8   r   r   s	   &&       r*    test_zero_dimension_is_not_none24Test_abcd_normalize.test_zero_dimension_is_not_none2  r  r,   c                   \        VP                  V P                  V P                  V P                  34      w  r#p\        W#VR 7      w  rVrxVP                  ^ ,          VP                  ^,          8X  g   Q hVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  VP                  ^ ,          VP                  ^ ,          38X  g   Q hR# ))r8   r   r   N)r  r  r8   r   r   r   r   )	r6   r  r  r  r  r7   r8   r   r   s	   &&       r*   test_missing_A"Test_abcd_normalize.test_missing_A      dffdffdff%=>
#b"5
awwqzQWWQZ'''wwqzQWWQZ'''ww288A;4444r,   c                   \        VP                  V P                  V P                  V P                  34      w  r#p\        W#VR 7      w  rVrxVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^,          VP                  ^,          8X  g   Q hVP                  VP                  ^ ,          VP                  ^,          38X  g   Q hR# ))r7   r   r   N)r  r  r7   r   r   r   r   )	r6   r  r  r  r  r7   r8   r   r   s	   &&       r*   test_missing_B"Test_abcd_normalize.test_missing_B  r  r,   c                   \        VP                  V P                  V P                  V P                  34      w  r#p\        W#VR 7      w  rVrxVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^,          VP                  ^ ,          8X  g   Q hVP                  VP                  ^ ,          VP                  ^ ,          38X  g   Q hR# )r  N)r  r  r7   r8   r   r   r   r  s	   &&       r*   test_missing_C"Test_abcd_normalize.test_missing_C  r  r,   c                   \        VP                  V P                  V P                  V P                  34      w  r#p\        W#VR 7      w  rVrxVP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^,          VP                  ^,          8X  g   Q hVP                  VP                  ^ ,          VP                  ^,          38X  g   Q hR# )r  N)r  r  r7   r8   r   r   r   r  s	   &&       r*   test_missing_D"Test_abcd_normalize.test_missing_D  r  r,   c                ^   \        VP                  V P                  V P                  34      w  r#\	        W#R 7      w  rErgVP
                  ^ ,          VP
                  ^,          8X  g   Q hVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^,          8X  g   Q hVP
                  VP
                  ^,          VP
                  ^,          38X  g   Q hVP
                  VP
                  ^,          VP
                  ^,          38X  g   Q hR# ))r   r   N)r  r  r   r   r   r   )r6   r  r  r  r7   r8   r   r   s   &&      r*   test_missing_AB#Test_abcd_normalize.test_missing_AB  s    RZZ$&&$&&!12#b/
awwqzQWWQZ'''wwqzQWWQZ'''wwqzQWWQZ'''ww288A;4444ww288A;4444r,   c                   \        VP                  V P                  V P                  34      w  r#\	        W#R 7      w  rErgVP
                  ^ ,          VP
                  ^,          8X  g   Q hVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^ ,          8X  g   Q hVP
                  VP
                  ^ ,          VP
                  ^ ,          38X  g   Q hVP
                  VP
                  ^ ,          VP
                  ^ ,          38X  g   Q hR# ))r8   r   N)r  r  r8   r   r   r   )r6   r  r  r  r7   r8   r   r   s   &&      r*   test_missing_AC#Test_abcd_normalize.test_missing_AC       RZZ$&&$&&!12#b/
awwqzQWWQZ'''wwqzQWWQZ'''wwqzQWWQZ'''wwqzQWWQZ'''ww288A;4444ww288A;4444r,   c                   \        VP                  V P                  V P                  34      w  r#\	        W#R 7      w  rErgVP
                  ^ ,          VP
                  ^,          8X  g   Q hVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^,          8X  g   Q hVP
                  VP
                  ^ ,          VP
                  ^ ,          38X  g   Q hVP
                  VP
                  ^ ,          VP
                  ^,          38X  g   Q hR# ))r8   r   N)r  r  r8   r   r   r   )r6   r  r  r  r7   r8   r   r   s   &&      r*   test_missing_AD#Test_abcd_normalize.test_missing_AD
  r  r,   c                   \        VP                  V P                  V P                  34      w  r#\	        W#R 7      w  rErgVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^,          8X  g   Q hVP
                  ^ ,          VP
                  ^ ,          8X  g   Q hVP
                  ^,          VP
                  ^ ,          8X  g   Q hVP
                  VP
                  ^ ,          VP
                  ^,          38X  g   Q hVP
                  VP
                  ^ ,          VP
                  ^ ,          38X  g   Q hR# ))r7   r   N)r  r  r7   r   r   r   )r6   r  r  r  r7   r8   r   r   s   &&      r*   test_missing_BC#Test_abcd_normalize.test_missing_BC  r  r,   c                d    \        \        \        VP                  V P                  4      R 7       R# ))r   N)r   r!   r   r  r   r  s   &&r*   test_missing_ABC_fails*Test_abcd_normalize.test_missing_ABC_fails  s    j.BJJtvv4FGr,   c                    \        \        \        VP                  V P                  4      VP                  V P
                  4      R 7       R# ))r7   r   N)r   r!   r   r  r7   r   r  s   &&r*   test_missing_BD_fails)Test_abcd_normalize.test_missing_BD_fails!  -    j.BJJtvv4F

466*	,r,   c                    \        \        \        VP                  V P                  4      VP                  V P
                  4      R 7       R# ))r7   r8   N)r   r!   r   r  r7   r8   r  s   &&r*   test_missing_CD_fails)Test_abcd_normalize.test_missing_CD_fails%  r  r,   r   Nr   )r   r   r   r   r7   r8   r   r   r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @r*   r  r    s     
sc3Z A
#A
sA
A2RS*
TS(	)	)55555555H,, ,r,   r  c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )	Test_bodei*  c                l    \        ^.^^.4      p. ROp\        WR7      w  r#p. ROp\        W5^R7       R# )re   r   r  Nr  re   rb   d   )r   r^   ri   ro   r   r   r   )r6   r   r   magphaseexpected_mags   &     r*   test_01Test_bode.test_01,  s8     aS1a&!V)(Cq9r,   c                l    \        ^.^^.4      p. ROp\        WR7      w  r#p. ROp\        WE^R7       R# )re   r  r  Nr  re   rb   )gig33333Ur  )r6   r   r   r  r  expected_phases   &     r*   test_02Test_bode.test_02:  s8     aS1a&!V)+E1=r,   c                L   \        ^.^^.4      p. ROp\        WR7      w  r#pVR,          p\        P                  ! VP                  V4      \        P                  ! VP
                  V4      ,          pR\        P                  ! \        V4      4      ,          p\        W74       R# )re   r                ?g      4@Nr  )	r   r   r   polyvalr   r   log10absr   )r6   r   r   r  r  jwr   r  s   &       r*   test_03Test_bode.test_03F  sy     aS1a&!V)VJJvzz2&FJJ)CCbhhs1v..C.r,   c                   \        ^.^^.4      p. ROp\        WR7      w  r#pVR,          p\        P                  ! VP                  V4      \        P                  ! VP
                  V4      ,          p\        P                  ! VP                  VP                  4      R,          \        P                  ,          p\        WG4       R# )re   r  r  g     f@Nr  )r   r   r   r	  r   r   arctan2r   r   pir   )r6   r   r   r  r  r  r   r  s   &       r*   test_04Test_bode.test_04Q  s     aS1a&!V)VJJvzz2&FJJ)CCAFFAFF3e;beeCE2r,   c                    \        ^.^^.4      p^
p\        P                  ! R^V4      p\        WR7      w  rEp\	        WC4       R# re   r4  Nrs   )r   r   logspacer   r   )r6   r   r4  
expected_wr   r  r  s   &      r*   test_05Test_bode.test_05\  sC     aS1a&![[Q*
V)A*r,   c                d    \        ^.^^ .4      p\        V^R7      w  r#pV^ ,          R8X  g   Q hR# re   r  g{Gz?Nr   r   r6   r   r   r  r  s   &    r*   test_06Test_bode.test_06f  s6     aS1a&!Vq)tt||r,   c                D    \        ^.. RO4      p\        V^R7      w  r#pR# )re   r  N)re   r   r  r  r  s   &    r*   test_07Test_bode.test_07m  s"     aS+&Vq)r,   c                    \        . . RO^4      pVP                  \        P                  ! R^(^d4      R7      w  r#p\	        \        V4      R^R7       R# )rb   r  r  N)ra   rj   ro   rp   rq   r^   i>)r   r   r   r  r   minr  s   &    r*   test_08Test_bode.test_08s  sB    R2A6bkk"b#&>?CJb9r,   c           	        \         P                  ! . RO4      p\        P                  ! V4      P                  p\         P                  ! R.R.R ..4      p\         P                  ! . RO.4      p\         P                  ! R..4      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       \        W#WE4      p\        V^dR7      w  rxp	RRR4       ^\         P                  ! \         P                  ! R R X^,          ,           ,          4      4      ,          p
\        XV
4       R#   + '       g   i     Ld; i)r   r   rF   r  Nr   r   r   r   r   r   r   )r   rR   r0   	companionr  r   r   r   r   r   r   r
  sqrtr   )r6   r   r7   r8   r   r   r   r   r  r  expected_magnitudes   &          r*   test_from_state_spaceTest_bode.test_from_state_spacey  s     HH)*Q!!HHsecUSE*+HHo&'HHseW$$&&!!(O<q_F 3/MAE '
  "((2773#1*3E+F"GGC!34 '&s   #8D77E	r   N)r   r   r   r   r   r  r  r  r  r  r"  r&  r.  r   r   r   s   @r*   r  r  *  s7     :
>	/	3+*:5 5r,   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
Test_freqrespi  c                    \        ^.^^.4      p. ROp\        WR7      w  r#. ROp. ROp\        VP                  V^R7       \        VP                  V^R7       R# )re   r  r  Nr  )gGz?r  gׁsF?)MbXrO   r3  r   r   r   r   r   )r6   r   r   Hexpected_reexpected_ims   &     r*   test_output_manual Test_freqresp.test_output_manual  sQ     aS1a&!$),AFFK;AFFK;r,   c                h   \        ^.^^.4      p. ROp\        WR7      w  r#VR,          p\        P                  ! VP                  V4      \        P                  ! VP
                  V4      ,          p\        VP                  VP                  4       \        VP                  VP                  4       R# )re   r  r  Nr  )	r   r   r   r	  r   r   r   r   r   r6   r   r   r5  rk  r<   s   &     r*   test_outputTest_freqresp.test_output  s|     aS1a&!$F::fjj!,rzz&**a/HHAFFHMM2AFFHMM2r,   c                    \        ^.^^.4      p^
p\        P                  ! R^V4      p\        WR7      w  rE\	        WC4       R# r  )r   r   r  r   r   )r6   r   r4  r  r   r5  s   &     r*   test_freq_rangeTest_freqresp.test_freq_range  sA     aS1a&![[Q*
$A*r,   c                b    \        ^.^^ .4      p\        V^R7      w  r#V^ ,          R8X  g   Q hR# r  )r   r   )r6   r   r   r5  s   &   r*   test_pole_zeroTest_freqresp.test_pole_zero  s4     aS1a&!!$tt||r,   c                   \         P                  ! . RO4      p\        P                  ! V4      P                  p\         P                  ! R.R.R ..4      p\         P                  ! . RO.4      p\         P                  ! R..4      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       \        W#WE4      p\        V^dR7      w  rxRRR4       XR,          p	R R ^V	,          ,           ^V	^,          ,          ,           V	^,          ,           ,          p
\        XP                  V
P                  4       \        VP                  V
P                  4       R#   + '       g   i     L; i)r   r   rF   r  Nr  r)  r*  )r   rR   r0   r+  r  r   r   r   r   r   r   r   r   r   )r6   r   r7   r8   r   r   r   r   r5  rk  r<   s   &          r*   r.  #Test_freqresp.test_from_state_space  s    HH)*Q!!HHseSE3%()HHo&'HHseW$$&&!!(O<q_FFc*DA ' F319qAv-145AFFHMM2AFFHMM2 '&s   #7E''E7	c                   \        . R.^,          ^.4      p. ROp\        WR7      w  r#VR,          p^V^,           ^,          ,          p\        VP                  VP                  4       \        VP                  VP                  4       R# )re   r  r  Nr]   r  r4  r;  s   &     r*   test_from_zpkTest_freqresp.test_from_zpk  sg    RQs#$FAz>AFFHMM2AFFHMM2r,   r   N)r   r   r   r   r8  r<  r?  rB  r.  rG  r   r   r   s   @r*   r1  r1    s(     <	3+3*3 3r,   r1  clsc                 `    \        V \        P                  ,          \        4      '       g   Q hR # r  )rh  r   float64r   )rI  s   &r*    test_subscriptable_generic_typesrL    s     c"**o|4444r,   ):0yE>rM  )0r   typesr   numpyr   pytestr   r   scipy._lib._array_apir   r   r   r   scipy.signalr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   scipy.signal._filter_designr   scipy.linalgr0   r+   r.   r   r   r*  rN  re  ro  r  r  r  r  r1  markparametrizerL  r   r,   r*   <module>rW     s$       * H H H H 8 N*V@ V@r[P [P|{6 {6|D- D-NF FR 8[ [z' '8# #& >"Q, Q, #Q,ha5 a5HI3 I3V 	J(.#tD55r,   