Ë
    ÏÍ:jYº  ã                   ó  — d dl Z d dlmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlm Z  d"d„Z! G d„ d	«      Z" G d
„ d«      Z# G d„ d«      Z$ G d„ d«      Z% G d„ d«      Z& G d„ d«      Z' G d„ d«      Z( G d„ d«      Z) G d„ d«      Z* ee«       G d„ d«      «       Z+ G d„ d«      Z, G d„ d«      Z-ej\                  j_                  d eeeeeg«      d!„ «       Z0y)#é    N)ÚGenericAlias)Úraises)Úassert_almost_equalÚxp_assert_equalÚxp_assert_closeÚmake_xp_test_caseÚxp_result_type)Úss2tfÚtf2ssÚltiÚdltiÚbodeÚfreqrespÚlsimÚimpulseÚstepÚabcd_normalizeÚplace_polesÚTransferFunctionÚ
StateSpaceÚZerosPolesGain)ÚBadCoefficientsc           
      óÐ  — |j                  «       }| D ]Ñ  }d}t        |j                  d   «      D ]Š  }t        j                  t        j
                  |«      t        j                  |«      gt        j
                  ||   «      t        j                  ||   «      g||«      sŒrd}t        j                  ||«        n |rŒ­t        dt        |«      z   dz   t        |«      z   «      ‚ y)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.
    Fr   Tz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          ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/signal/tests/test_ltisys.pyÚ_assert_poles_closer,      sË   € ð 
�‰‹€BØò 
NˆØˆÜ˜BŸH™H Q™KÓ(ò 	ˆFÜ�{‰{œBŸG™G B›K¬¯©°«Ð5ÜŸG™G B v¡JÓ/´·±¸¸F¹Ó1DÐEØ õ'ð �Ü—	‘	˜"˜fÔ%Ùð	ò ÜÐ/´#°b³'Ñ9¸FÑBÄSÈÃWÑLÓMÐMñ
Nó    c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestPlacePolesc                 ó,  — t        |||fi |¤Ž}t        j                  j                  |t        j                  ||j
                  «      z
  «      \  }}t        ||j                  «       t        ||j                  «       t        ||j                  «       |S )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+   Ú_checkzTestPlacePoles._check,   sv   € ô
 ˜!˜Q Ñ, VÑ,ˆÜ—i‘i—m‘m A¬¯©¨q°#·/±/Ó(BÑ$BÓC‰ˆ�!Ü˜H c×&9Ñ&9Ô:Ü˜H c×&8Ñ&8Ô9Ü˜A˜c×1Ñ1Ô2Øˆ
r-   c                 óž  — t        j                  g d¢«      j                  dd«      }t        j                  g d¢«      j                  dd«      }t        j                  g d¢«      }| j                  |||d¬«       | j                  |||d¬«       t        j                  d	¬
«      5  | j                  ||d«       d d d «       y # 1 sw Y   y xY w)N©g®Gázö?g ‰°áé•Ê¿g\�Âõ(Ü@gNbX9´Àgíž<,Ôšâ¿g)\�Âõ(Àr   gš™™™™™å?gßO�—nñ?çd;ßO�@gV-²�ÀgßO�—n’@gú~j¼t“¨?rB   g°rh‘í|õ?g¢E¶óýÔ Àé   )r   çžï§ÆK·@ç“V-ò?rE   r   r   ç^ºI+	Àr   é   ©çš™™™™™É¿ç      à¿g}Ð³Yõ9ÀgÐDØðT!ÀÚKNV0©ÚmethodÚYTÚignore)Úinvalid)rG   rG   é   rQ   )r   ÚarrayÚreshaper?   Úerrstate)r7   r8   r9   r:   s       r+   Ú	test_realzTestPlacePoles.test_real8   s¯   € ô �H‰Hò %ó &ç&-¡g¨a°£mð 	
ô �H‰HÒ=Ó>×FÑFÀqÈ!ÓLˆÜ�H‰HÒ3Ó4ˆð 	�‰�A�q˜! FˆÔ+Ø�‰�A�q˜! DˆÔ)ô �[‰[ Ô*ñ 	)Ø�K‰K˜˜1˜iÔ(÷	)÷ 	)ñ 	)ús   Â&CÃCc                 ó”  — t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  ddgddgddgddgg«      }t        j                  g d¢«      }t        j                  dd¬«      5  | j                  |||«       d d d «       g d	¢}t        j                  dd¬«      5  | j                  |||d
¬«       d d d «       t        j                  g d¢«      j	                  dd«      }t        j                  g d¢«      j	                  dd«      }g d¢}| j                  |||«       t        j
                  d«      t        j                  d«      z
  }t        j
                  d«      t        j                  dgdz  d«      d d …dd …f   z
  }||d d…d d…f<   ||d d…d d…f<   g d¢}t        j                  dd¬«      5  | j                  |||«       d d d «       g d¢}| j                  |d d…d d…f   |d d…d d…f   |«       g d¢}| j                  |d d…d d…f   |d d…d d…f   |«       t        j                  g d¢«      j	                  dd«      }t        j                  g d¢«      j	                  dd«      }t        j                  g d¢«      }t        j                  dd¬«      5  t        |||«       d d d «       t        j                  g d¢«      }t        j                  dd¬«      5  | j                  |||«       d d d «       y # 1 sw Y   �ŒˆxY w# 1 sw Y   �Œ\xY w# 1 sw Y   �ŒSxY w# 1 sw Y   Œ{xY w# 1 sw Y   y xY w)N)r   é   r   r   )r   r   r   ç«ªªªªª@)r   r   r   r   r   é   )éýÿÿÿéÿÿÿÿù       À      ð¿ù       À      ð?rO   )ÚdividerP   )y        �íµ ÷Æ°¾y        �íµ ÷Æ°>éöÿÿÿé
   iè  ©Úmaxiter)$iœ÷ÿÿiªôÿÿi%÷ÿÿiªýÿÿiFùÿÿiÛøÿÿi[ÿÿÿiåþÿÿiöÿÿiYÿÿÿiýÿÿi÷ÿÿiáýÿÿi\ùÿÿi¸ýÿÿi^ôÿÿicüÿÿiìúÿÿiÑùÿÿi(üÿÿi~þÿÿi¦õÿÿiýÿÿiüÿÿiûýÿÿiÂùÿÿrG   iSùÿÿiÝþÿÿi®þÿÿigÿÿÿiôøÿÿi®ûÿÿipûÿÿi�üÿÿi÷ÿÿé   )i”ÿÿÿiŠþÿÿiôýÿÿiûúÿÿi0ûÿÿi_ÿÿÿiLûÿÿi`ýÿÿiƒýÿÿiñÿÿÿiþÿÿiéÿÿÿi]üÿÿiôüÿÿi#ûÿÿi—ûÿÿiöúÿÿi"úÿÿiHüÿÿi¢úÿÿiÂÿÿÿi<üÿÿi^üÿÿiUüÿÿièüÿÿiýÿÿicúÿÿiþÿÿiùùÿÿiRýÿÿé   )y      9À      =Ày      9À      =@y      ?@      EÀy      ?@      E@y     €@@     €DÀy     €@@     €D@)é   re   re   )re   r`   r`   )r_   éìÿÿÿéâÿÿÿé(   é2   é<   éF   y      4À      Ày      4À      @y      @      @y      @      À)
r_   rf   rg   éØÿÿÿiÎÿÿÿéÄÿÿÿéºÿÿÿi°ÿÿÿi¦ÿÿÿiœÿÿÿr[   )
y      $À      $@y      4À      4@y      >À      >@y      DÀ      D@y      IÀ      I@y      $À      $Ày      4À      4Ày      >À      >Ày      DÀ      DÀy      IÀ      IÀ)r   rW   r   r   r   r   r   rX   r   r   r   r   r   r   r   r   r   r   r   rd   r   r   r   r   é	   )
r   r   r   r   rY   r   r   rY   rG   rQ   rG   )éþÿÿÿy      À      ð?y      À      ð¿ù      ð¿      ð?ù      ð¿      ð¿)rp   rZ   éüÿÿÿrq   rr   )	r   rR   rT   r?   rS   ÚonesÚeyeÚdiagr   )r7   r8   r9   r:   Úbig_AÚbig_Bs         r+   Útest_complexzTestPlacePoles.test_complexN   s  € ô �H‰H’lÚ%Ú"Ú"ð$ó %ˆô �H‰H�q˜!�fØ˜!�fØ˜!�fØ˜!�fðó ˆô
 �H‰HÒ+Ó,ˆô �[‰[ °(Ô;ñ 	!Ø�K‰K˜˜1˜aÔ ÷	!ò %ˆÜ�[‰[ °(Ô;ñ 	/Ø�K‰K˜˜1˜a¨ˆKÔ.÷	/ô �H‰HòGó÷
 ‘W˜Q˜q“\ð 	
ô �H‰Hò(ó÷
 ‘w˜q “|ð 	
ò KˆØ�‰�A�q˜!Ôô
 —‘˜Ó ¤§¡¨£Ñ+ˆÜ—‘˜Ó ¤§¡¨!¨¨R©°Ó!2²1°Q±R°4Ñ!8Ñ8ˆØˆˆbˆqˆb��!�ˆe‰Øˆˆbˆqˆb��!�ˆe‰â=ˆÜ�[‰[ °(Ô;ñ 	)Ø�K‰K˜˜u aÔ(÷	)ò 7ˆØ�‰�E˜#˜2˜#˜c˜r˜c˜'‘N E¨#¨2¨#¨c¨r¨c¨'¡N°AÔ6ò6ˆà�‰�E˜#˜2˜#˜c˜r˜c˜'‘N E¨#¨2¨#¨c¨r¨c¨'¡N°AÔ6ô �H‰Hò )ó *ß*1©'°!°A«,ð 	
ä�H‰HÒ*Ó+×3Ñ3°A°aÓ8ˆÜ�H‰HÒ5Ó6ˆÜ�[‰[ °(Ô;ñ 	!Ü˜˜1˜aÔ ÷	!ô
 �H‰HÒ/Ó0ˆÜ�[‰[ °(Ô;ñ 	!Ø�K‰K˜˜1˜aÔ ÷	!ð 	!÷{	!ñ 	!ú÷	/ñ 	/ú÷>	)ñ 	)ú÷ 	!ð 	!ú÷	!ð 	!ús<   Á1LÂ(LÇ L%Ê*L2Ë.L>ÌLÌL"Ì%L/Ì2L;Ì>Mc                 ó  — t        j                  g d¢«      j                  dd«      }t        j                  g d¢«      j                  dd«      }t        j                  g d¢«      }| j                  |||«      }t        j                  |j
                  «      sJ ‚t        j                  |j                  «      sJ ‚t        j                  d«      }| j                  |||«      }t        j                  |j
                  «      sJ ‚t        j                  |j                  «      sJ ‚|d d …df   j                  dd«      }t        j                  d«      }| j                  |||«      }|j
                  dk(  sJ ‚|j                  dk(  sJ ‚y )NrA   rC   )r   rD   rE   rE   r   r   rF   r   rY   rG   rQ   rC   rd   rc   rW   é   rH   )r]   r\   rZ   rp   r   rY   )r   rR   rS   r?   Úisnanr&   Únb_iter)r7   r8   r9   r:   r<   s        r+   Útest_tricky_BzTestPlacePoles.test_tricky_Bž   sG  € ô �H‰Hò %ó &ç&-¡g¨a°£mð 	
ô �H‰Hò "ó #ß#*¡7¨1¨a£=ð 	
ô
 �H‰HÒ3Ó4ˆØ�k‰k˜!˜Q Ó"ˆô �x‰x˜Ÿ™Ô!Ð!Ð!Ü�x‰x˜Ÿ™Ô$Ð$Ð$ô �H‰HÐ(Ó)ˆØ�k‰k˜!˜Q Ó"ˆÜ�x‰x˜Ÿ™Ô!Ð!Ð!Ü�x‰x˜Ÿ™Ô$Ð$Ð$ð Ša�ˆc‰F�N‰N˜1˜QÓˆÜ�H‰HÐ(Ó)ˆØ�k‰k˜!˜Q Ó"ˆð �x‰x˜1Š}Ðˆ}Ø�{‰{˜aÒÐÑr-   c           
      ó¤  — t        j                  g d¢«      j                  dd«      }t        j                  g d¢«      j                  dd«      }t        t        t
        ||dd¬«       t        t        t
        ||t        j                  d«      j                  dd«      «       t        t        t
        |d d …d d …t         j                  f   |d«       t        t        t
        ||d d …d d …t         j                  f   d«       t        t        t
        ||d	«       t        t        t
        ||d
«       t        t        t
        ||dd¬«       t        t        t
        ||dd¬«       t        t        t
        ||d«       t        t        t
        t        j                  d«      t        j                  d«      d«       t        j                  d¬«      5 }t        j                  d«       t        ||ddd¬«      }t        |«      dk(  sJ ‚t        |d   j                  t        «      sJ ‚dt        |d   j                   «      v sJ ‚|j"                  dk(  sJ ‚	 d d d «       t        t        t
        ||d«       t        t        t
        |d d …d d…f   |d«       t        t        t
        ||d d…d d …f   d«       t        t        t
        ||dd¬«       y # 1 sw Y   ŒzxY w) N)r   rW   r   r   r   r   r   rX   r   r   r   r   r   r   r   r   rC   )r   r   r   r   rY   r   r   rY   rG   )çÍÌÌÌÌÌ Àçš™™™™™ÀçffffffÀç333333ÀÚfoorL   rY   )r€   r�   r‚   rƒ   rZ   )r€   r�   r‚   é*   ©r&   iÖÿÿÿra   )rp   rp   rp   rp   )rC   rC   )rC   rG   ©rY   rG   rQ   rC   T)ÚrecordÚalways)r[   rp   rZ   rs   g¼‰Ø—²Òœ<)r&   rb   r[   z4Convergence was not reached after maxiter iterations)r]   r\   ù       À      @rp   rQ   )rp   rZ   rs   éûÿÿÿ)r]   r\   rŠ   y       À      ÀrK   )r   rR   rS   Úassert_raisesr"   r   Únewaxisrt   ÚwarningsÚcatch_warningsÚsimplefilterÚlenÚ
issubclassÚcategoryÚUserWarningr#   Úmessager}   )r7   r8   r9   Úwr<   s        r+   Útest_errorszTestPlacePoles.test_errorsÀ   s^  € ä�H‰HÒ9Ó:×BÑBÀ1ÀQÓGˆÜ�H‰HÒ&Ó'×/Ñ/°°!Ó4ˆô 	”j¤+¨q°!Ð5JØ"õ	$ô 	”j¤+¨q°!Ü—h‘hÐ4Ó5×=Ñ=¸aÀÓBô	Dô 	”j¤+¨q²²1´R·Z±Z°Ñ/@À!Ø+ô	-ô 	”j¤+¨q°!²A²a¼¿
¹
°NÑ2CØ+ô	-ô 	”j¤+¨q°!Ð5MÔNô 	”j¤+¨q°!Ð5EÔFô 	”j¤+¨q°!Ð5JØõ	ô 	”j¤+¨q°!Ð5JØ!õ	#ô 	”j¤+¨q°!°]ÔCô 	”j¤+¬r¯w©w°u«~Ü—g‘g˜e“n iô	1ô
 ×$Ñ$¨DÔ1ð 	%°QÜ×!Ñ! (Ô+Ü˜a  M¸ÀrÔJˆCÜ�q“6˜Q’;Ð�;Ü˜a ™eŸn™n¬kÔ:Ð:Ð:ØJÜ˜1˜R™5Ÿ=™=Ó)ñ*ð +ð *à—;‘; "Ò$Ð$Ñ$÷	%ô 	”j¤+¨q°!Ð5KÔLô 	”j¤+¨q²°2°A°2°©w¸¸=ÔIô 	”j¤+¨q°!°B°Q°B²q°D±'¸=ÔIô 	”j¤+¨q°!Ø/¸ö	@÷'	%ð 	%ús   Ç
BKËKN)Ú__name__Ú
__module__Ú__qualname__r?   rU   ry   r~   r—   © r-   r+   r/   r/   *   s    „ ò
ò)ò,N!ò`  óD@@r-   r/   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú	TestSS2TFc           	      óÊ   — t        t        j                  ||f«      t        j                  ||f«      t        j                  ||f«      t        j                  ||f«      d«       y )Nr   )r
   r   Úzeros©r7   ÚpÚqÚrs       r+   Úcheck_matrix_shapeszTestSS2TF.check_matrix_shapes  sK   € ÜŒb�h‰h˜˜1�vÓÜ�h‰h˜˜1�vÓÜ�h‰h˜˜1�vÓÜ�h‰h˜˜1�vÓ õ	#r-   c                 ó@   — dD ]  \  }}}| j                  |||«       Œ y )N))rQ   rQ   rQ   )rY   rQ   rQ   ©rY   rY   rY   )r¤   r    s       r+   Útest_shapeszTestSS2TF.test_shapes  s+   € ð 9ò 	.‰GˆAˆq�!Ø×$Ñ$ Q¨¨1Õ-ñ	.r-   c                 óp  — t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      \  }}}}t        |ddgddggd¬«       t        |d	gdggd¬«       t        |d	d
ggd¬«       t        |d	ggd¬«       t	        ||||«      \  }}t        |d   |d¬«       t        ||d¬«       y )N)ç      ð?ç      @ç      @)r©   ç       @rª   ç       ÀrZ   rY   r   ç‚vIhÂ%<=r†   r©   rG   ç›+¡†›„=)r   rR   r   r   r
   )	r7   ÚbÚar8   r9   ÚCÚDÚbbÚaas	            r+   Ú
test_basiczTestSS2TF.test_basic  s°   € ä�H‰H’_Ó%ˆÜ�H‰H’_Ó%ˆä˜1˜a“[‰
ˆˆ1ˆa�Ü˜˜S "˜I¨¨1 vÐ.°UÕ;Ü˜˜R˜D 1 #˜;¨UÕ3Ü˜˜R ˜G˜9¨5Õ1Ü˜˜R˜D˜6¨Õ.ä�q˜!˜Q Ó"‰ˆˆBÜ˜˜1™˜q uÕ-Ü˜˜A EÖ*r-   c                 ó"  — d}t        |Ž \  }}}}t        |dggd¬«       t        |dggd¬«       t        |dggd¬«       t        |dggd¬«       t        ||||«      \  }}t        |ddggd¬«       t        |ddgd¬«       dgd	ggd
f}t        |Ž \  }}}}t        |dggd¬«       t        |dggd¬«       t        |dgdggd¬«       t        |dgd	ggd¬«       t        ||||«      \  }}t        |ddgd	dggd¬«       t        |ddgd¬«       y )N)rG   rY   ç        r®   r†   r¬   r   r©   rd   rG   rY   r«   )r   r   r
   ©r7   Útfr8   r9   r²   r³   ÚnumÚdens           r+   Útest_zero_order_round_tripz$TestSS2TF.test_zero_order_round_trip   s5  € àˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D˜6¨Õ.ä˜˜A˜q !Ó$‰ˆˆSÜ˜˜r 1˜g˜Y¨UÕ3Ü˜˜b !˜W¨5Õ1àˆs�Q�Cˆj˜!ˆ_ˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D 1 #˜;¨UÕ3Ü˜˜R˜D 1 #˜;¨UÕ3ä˜˜A˜q !Ó$‰ˆˆSÜ˜˜r 1˜g¨¨1 vÐ.°UÕ;Ü˜˜b !˜W¨5Ö1r-   c                 óR  — ddgddggddgf}t        |Ž \  }}}}t        |dggd¬«       t        |dggd¬«       t        |dgdggd¬«       t        |dgdggd¬«       t        ||||«      \  }}t        |dd	gddggd¬«       t        |dd	gd¬«       g d
¢g d¢gg d¢f}t        |Ž \  }}}}t        |ddgddggd¬«       t        |dgdggd¬«       t        |ddgddggd¬«       t        |dgdggd¬«       t        ||||«      \  }}t        |g d¢g d¢gd¬«       t        |g d¢d¬«       g d¢g d¢gg d¢f}t        |Ž \  }}}}t        |g d¢g d¢g d¢gd¬«       t        |dgdgdggd¬«       t        |g d¢g d¢gd¬«       t        |dgdggd¬«       t        ||||«      \  }}t        |g d¢g d¢gd¬«       t        |g d¢d¬«       t        j                  dddggt
        ¬«      ddgf}t        |Ž \  }}}}t        |dggd¬«       t        |dggd¬«       t        |dgdggd¬«       t        |dgdggd¬«       t        ||||«      \  }}t        |ddgddggd¬«       t        |ddgd¬«       t        j                  ddgg d¢gt
        ¬«      g d¢f}t        |Ž \  }}}}t        |dd gddggd¬«       t        |dgdggd¬«       t        |ddgd!d"ggd¬«       t        |dgdggd¬«       t        ||||«      \  }}t        |g d#¢g d¢gd¬«       t        |g d$¢d¬«       y )%NrY   rG   r­   r®   r†   r©   r¸   ç      ð¿r¬   )rY   r   rY   r¦   )r©   r¸   r©   )r©   r©   r©   )rY   rG   rQ   r‡   )r­   rZ   rs   )rY   r   r   ©r   rY   r   r   )r©   rG   rQ   )r¸   rY   rG   rQ   )r   rY   rG   rQ   )r©   rG   rQ   rC   rQ   ©Údtyperc   g      Àg€h‰eÖ9€9i÷ÿÿÿrZ   )rY   rc   rd   r‹   rs   rp   )r¸   rY   rZ   )r©   rc   rd   )r   r   r
   r   rR   Úobjectr¹   s           r+   Útest_simo_round_tripzTestSS2TF.test_simo_round_trip8  sq  € à�1ˆv˜˜1�vÐ  A Ð'ˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜˜S˜E˜7¨Õ/Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D 3 %˜=¨uÕ5Ü˜˜R˜D 2 $˜<¨eÕ4ä˜˜A˜q !Ó$‰ˆˆSÜ˜˜r 2˜h¨¨R¨Ð1¸Õ>Ü˜˜b "˜X¨EÕ2âš)Ð$¢iÐ0ˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜˜S #˜J¨¨R¨Ð1¸Õ>Ü˜˜R˜D 2 $˜<¨eÕ4Ü˜˜S "˜I¨¨B xÐ0°uÕ=Ü˜˜R˜D 2 $˜<¨eÕ4ä˜˜A˜q !Ó$‰ˆˆSÜ˜šlªLÐ9ÀÕFÜ˜š\°Õ6âš)Ð$¢lÐ3ˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜šMª9²iÐ@ÀuÕMÜ˜˜R˜D 1 #¨ sÐ+°%Õ8Ü˜šJª	Ð2¸Õ?Ü˜˜R˜D 1 #˜;¨UÕ3ä˜˜A˜q !Ó$‰ˆˆSÜ˜šmª\Ð:ÀÕGÜ˜š]°Õ7ä�h‰h˜˜A˜q˜6�{¬&Ô1°A°q°6Ð:ˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜˜S˜E˜7¨Õ/Ü˜˜R˜D˜6¨Õ.Ü˜˜R˜D 2 $˜<¨eÕ4Ü˜˜R˜D 1 #˜;¨UÕ3ä˜˜A˜q !Ó$‰ˆˆSÜ˜˜r 1˜g¨¨1 vÐ.°UÕ;Ü˜˜b !˜W¨5Õ1ä�h‰h˜˜B˜¢Ð+´6Ô:ºIÐFˆÜ˜B�Z‰
ˆˆ1ˆa�Ü˜˜S "˜I¨¨1 vÐ.°UÕ;Ü˜˜R˜D 1 #˜;¨UÕ3Ü˜˜R ˜H r¨2 hÐ/°eÕ<Ü˜˜R˜D 1 #˜;¨UÕ3ä˜˜A˜q !Ó$‰ˆˆSÜ˜škª9Ð5¸EÕBÜ˜šZ¨eÖ4r-   c                 ó¢   — g d¢g d¢g d¢g}dgdgdgg}g d¢g}dgg}t        ||||«      \  }}t        |g d¢gdd	¬
«       t        |g d¢d¬«       y )NrÀ   )r   r   rY   )rZ   rs   rp   r   rY   )rd   rY   r   )r¸   r¸   r©   r«   r®   r¯   ©r&   r'   )r©   r¬   ç      @rª   r†   )r
   r   )r7   r8   r9   r²   r³   r»   r¼   s          r+   Útest_all_int_arrayszTestSS2TF.test_all_int_arraysq  sb   € Úš	¢<Ð0ˆØˆS�1�#˜�sˆOˆÚˆKˆØˆSˆEˆÜ˜˜A˜q !Ó$‰ˆˆSÜ˜Ò2Ð3¸%ÀeÕLÜ˜Ò1¸Ö>r-   c                 ó<  — t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  dgdgdgdgg«      }t        j                  g d¢g d	¢g d
¢g«      }t        j                  dgdgdgg«      }t        ||||«      \  }}t        |||d   |d   «      \  }}t        |||d   |d   «      \  }	}
t        |||d   |d   «      \  }}t        ||d¬«       t        |
|d¬«       t        ||d¬«       t        |t        j                  ||	|f«      dd¬«       y )N)r¿   r¸   r©   r¸   )r¿   r¸   r¬   r¸   )g      Àr¸   rª   r¸   )g       Àç       @r¸   rÇ   ç333333Ó?r¸   g      @)r¸   r©   r¸   r¸   )r¸   r¸   r¸   r©   )rÊ   rÊ   r¸   r¸   r©   r   rY   rG   r®   r†   r¯   rÆ   )r   rR   r
   r   Úvstack)r7   r8   r9   r²   r³   Úb_allr±   Úb0Úa0Úb1Úa1Úb2Úa2s                r+   Útest_multioutputzTestSS2TF.test_multioutputz  s;  € ô �H‰HÒ+Ú+Ú+Ú+ð-ó .ˆô �H‰H�s�eØ�eØ�eØ�eðó ˆô �H‰HÒ*Ú*Ú*ð,ó -ˆô �H‰H�s�eØ�eØ�eðó ˆô
 ˜˜A˜q !Ó$‰ˆˆqô �q˜!˜Q˜q™T 1 Q¡4Ó(‰ˆˆBÜ�q˜!˜Q˜q™T 1 Q¡4Ó(‰ˆˆBÜ�q˜!˜Q˜q™T 1 Q¡4Ó(‰ˆˆBô 	˜˜A EÕ*Ü˜˜A EÕ*Ü˜˜A EÕ*Ü˜œrŸy™y¨"¨b°"¨Ó6¸UÈÖOr-   N)
r˜   r™   rš   r¤   r§   r¶   r½   rÄ   rÈ   rÔ   r›   r-   r+   r�   r�     s'   „ ò#ò.ò+ò2ò075òr?ó$Pr-   r�   c                   óL   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestLsimrW   c                 óž   — t        j                  «       5  t        j                  dt        «       t	        |Ž }d d d «       |S # 1 sw Y   S xY w)NrO   )rŽ   r�   r�   r   r   )r7   ÚargsÚsystems      r+   Ú
lti_nowarnzTestLsim.lti_nowarn¤  sE   € Ü×$Ñ$Ó&ñ 	 Ü×!Ñ! (¬OÔ<Ü˜$�ZˆF÷	 ð ˆ÷	 ð ˆús   •#AÁAc                 ó  — | j                  dddd«      }t        j                  dd«      }t        j                  |«      }t	        |||dg¬«      \  }}}t        j
                  | «      }t        ||«       t        ||«       y ©Nr¿   r©   r¸   r   rd   ©ÚX0©rÚ   r   ÚlinspaceÚ
zeros_liker   Úexpr   ©r7   rÙ   ÚtÚuÚtoutÚyÚxÚ
expected_xs           r+   Útest_first_orderzTestLsim.test_first_orderª  sq   € ð —‘  R¨¨2Ó.ˆÜ�K‰K˜˜!ÓˆÜ�M‰M˜!ÓˆÜ˜& ! Q¨C¨5Ô1‰
ˆˆa�Ü—V‘V˜T˜E“]ˆ
Ü˜A˜zÔ*Ü˜A˜zÕ*r-   c                 ó  — t        j                  ddd«      }t        j                  |«      }| j                  dgg d¢«      }t	        |||ddg¬«      \  }}}d|z
  t        j
                  | «      z  }t        |d d …df   |«       y )Nr   r`   ié  r©   ©r©   r¬   r©   r¸   rÝ   )r   rà   rá   rÚ   r   râ   r   )r7   rä   rå   rÙ   ræ   rç   rè   ré   s           r+   Útest_second_orderzTestLsim.test_second_orderµ  sz   € Ü�K‰K˜˜2˜tÓ$ˆÜ�M‰M˜!Óˆð —‘ # ªÓ8ˆÜ˜& ! Q¨C°¨:Ô6‰
ˆˆa�Ø˜D‘j¤B§F¡F¨D¨5£MÑ1ˆ
Ü˜Aša ˜d™G ZÕ0r-   c                 óî   — | j                  dddd«      }t        j                  dd«      }|}t        |||«      \  }}}d|dz  z  }t	        ||| j
                  ¬«       t	        ||| j
                  ¬«       y )Nr¸   r©   r   rd   ç      à?rG   ©Údecimal)rÚ   r   rà   r   r   Údigits_accuracyrã   s           r+   Útest_integratorzTestLsim.test_integratorÀ  sp   € à—‘  R¨¨RÓ0ˆÜ�K‰K˜˜!ÓˆØˆÜ˜& ! QÓ'‰
ˆˆa�Ø˜4 ™7‘]ˆ
Ü˜A˜z°4×3GÑ3GÕHÜ˜A˜z°4×3GÑ3GÖHr-   c                 ót  — t        j                  ddgddgg«      }t        j                  ddgddgg«      }t        j                  ddg«      }t        j                  d«      }| j                  ||||«      }t        j                  ddd«      }t        j                  t        |«      d	f«      }t        |||ddg¬
«      \  }}	}
t        j                  | «      }t        j                  | «      }t        j                  d|z  «      }t        |	|«       t        |
d d …df   |«       t        |
d d …df   |«       y )Nr¿   r¸   r­   r©   ©rY   rG   r   g      $@é   rG   )ÚUÚTrÞ   rY   ©	r   rR   rŸ   rÚ   rà   r‘   r   râ   r   ©r7   r8   r9   r²   r³   rÙ   rä   rå   ræ   rç   rè   Ú
expected_yÚexpected_x0Úexpected_x1s                 r+   Útest_two_stateszTestLsim.test_two_statesÊ  s  € ä�H‰H�t˜S�k C¨ ;Ð/Ó0ˆÜ�H‰H�s˜C�j 3¨ *Ð-Ó.ˆÜ�H‰H�c˜3�ZÓ ˆÜ�H‰H�VÓˆà—‘  A q¨!Ó,ˆä�K‰K˜˜4 Ó$ˆÜ�H‰H”c˜!“f˜a�[Ó!ˆÜ˜& A¨°°S¨zÔ:‰
ˆˆa�Ü—V‘V˜T˜E“]ˆ
Ü—f‘f˜d˜U“mˆÜ—f‘f˜T D™[Ó)ˆÜ˜A˜zÔ*Ü˜Aša ˜d™G [Ô1Ü˜Aša ˜d™G [Õ1r-   c                 ó  — t        j                  ddgddgg«      }t        j                  dgdgg«      }t        j                  ddgg«      }| j                  |||d«      }t        j                  dd«      }t        j                  |«      }t        |||«      \  }}}	t        j                  t        j                  d|dz  z  |g«      «      }
|dz  }t        |	|
| j                  ¬«       t        ||| j                  ¬«       y )	Nr¸   r©   r¬   r   rd   rï   rG   rð   )	r   rR   rÚ   rà   Ú	ones_liker   Ú	transposer   rò   )r7   r8   r9   r²   rÙ   rä   rå   ræ   rç   rè   ré   rû   s               r+   Útest_double_integratorzTestLsim.test_double_integratorÝ  sÝ   € ä�H‰H�r˜2�h  R Ð)Ó*ˆÜ�H‰H�r�d˜R˜D�\Ó"ˆÜ�H‰H�r˜2�h�ZÓ ˆØ—‘  A q¨"Ó-ˆÜ�K‰K˜˜!ÓˆÜ�L‰L˜‹OˆÜ˜& ! QÓ'‰
ˆˆa�Ü—\‘\¤"§(¡(¨C°$¸±'©M¸4Ð+@Ó"AÓBˆ
Ø˜1‘Wˆ
Ü˜A˜z°4×3GÑ3GÕHÜ˜A˜z°4×3GÑ3GÖHr-   c                 óŽ  — t        j                  ddgddgg«      }t        j                  dgdgg«      }t        j                  ddgg«      }| j                  |||d«      }t        j                  dd«      }t        j                  |«      }t        |||ddg¬«      \  }}}	|t        j                  | «      z  }
t        ||
«       y rÜ   )r   rR   rÚ   rà   rá   r   râ   r   )r7   r8   r9   r²   rÙ   rä   rå   ræ   rç   rè   rû   s              r+   Útest_jordan_blockzTestLsim.test_jordan_blockë  s³   € ô �H‰H�s˜B�i " c Ð+Ó,ˆÜ�H‰H�r�d˜R˜D�\Ó"ˆÜ�H‰H�r˜2�h�ZÓ ˆØ—‘  A q¨"Ó-ˆÜ�K‰K˜˜!ÓˆÜ�M‰M˜!ÓˆÜ˜& ! Q¨C°¨:Ô6‰
ˆˆa�ØœBŸF™F D 5›MÑ)ˆ
Ü˜A˜zÕ*r-   c                 ót  — t        j                  ddgddgg«      }t        j                  ddgddgg«      }t        j                  ddg«      }t        j                  d«      }| j                  ||||«      }t        j                  ddd«      }t        j                  t        |«      d	f«      }t        |||ddg¬
«      \  }}	}
t        j                  | «      }t        j                  | «      }t        j                  d|z  «      }t        |	|«       t        |
d d …df   |«       t        |
d d …df   |«       y )Nr¿   r¸   r­   r©   rõ   r   r«   ée   rG   rÝ   rY   rù   rú   s                 r+   Ú	test_misozTestLsim.test_misoû  s  € ä�H‰H�t˜S�k C¨ ;Ð/Ó0ˆÜ�H‰H�s˜C�j 3¨ *Ð-Ó.ˆÜ�H‰H�c˜3�ZÓ ˆÜ�H‰H�U‹OˆØ—‘  A q¨!Ó,ˆä�K‰K˜˜3 Ó$ˆÜ�H‰H”c˜!“f˜a�[Ó!ˆÜ˜& ! Q¨C°¨:Ô6‰
ˆˆa�Ü—V‘V˜T˜E“]ˆ
Ü—f‘f˜d˜U“mˆÜ—f‘f˜T $™YÓ'ˆÜ˜A˜zÔ*Ü˜Aša ˜c™F KÔ0Ü˜Aša ˜c™F KÕ0r-   c                 óî   — | j                  dddd«      }t        j                  dd«      }t        j                  |«      }t	        |||dg¬«      \  }}}t        j
                  | «      }t        ||«       y )Nr¿   r©   r¸   rY   rG   rÝ   rß   )r7   rÙ   rä   rå   ræ   rç   rè   rû   s           r+   Útest_nonzero_initial_timez"TestLsim.test_nonzero_initial_time  se   € Ø—‘  R¨¨2Ó.ˆÜ�K‰K˜˜!ÓˆÜ�M‰M˜!ÓˆÜ˜& ! Q¨C¨5Ô1‰
ˆˆa�Ü—V‘V˜T˜E“]ˆ
Ü˜A˜zÕ*r-   c                 óâ   — t        j                  g d¢«      }t        j                  g d¢«      }dgddgf}t        t        d¬«      5  t	        |||dg¬«      \  }}}d d d «       y # 1 sw Y   y xY w)N)r¸   r©   r©   rª   )r¸   r¸   r©   r©   r©   r¸   z"Time steps are not equally spaced.)ÚmatchrÝ   )r   rR   rŒ   r"   r   )r7   rä   rå   rÙ   ræ   rç   rè   s          r+   Útest_nonequal_timestepsz TestLsim.test_nonequal_timesteps  sk   € Ü�H‰HÒ)Ó*ˆÜ�H‰HÒ)Ó*ˆà�%˜#˜s˜Ð$ˆÜœ:Ø!EôGñ 	6ä˜f a¨°¨uÔ5‰JˆD�!�Q÷	6÷ 	6ñ 	6ús   ÁA%Á%A.N)r˜   r™   rš   rò   rÚ   rê   rí   ró   rþ   r  r  r  r	  r  r›   r-   r+   rÖ   rÖ   ¡  s;   „ Ø€Oòò	+ò	1òIò2ò&Iò+ò 1ò$+ó6r-   rÖ   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestImpulsec                 ór   — dgddgf}t        |«      \  }}t        j                  | «      }t        ||«       y ©Nr©   ©r   r   râ   r   ©r7   rÙ   ræ   rç   rû   s        r+   rê   zTestImpulse.test_first_order   s:   € ð �%˜#˜c˜Ð#ˆÜ˜&“/‰ˆˆaÜ—V‘V˜T˜E“]ˆ
Ü˜A˜zÕ*r-   c                 óä   — dgddgf}d}t        j                  dd|«      }t        ||¬«      \  }}|j                  |fk(  sJ ‚t	        ||«       t        j
                  | «      }t	        ||«       y )Nr©   rö   r   r¬   ©rø   )r   rà   r   r   r   râ   ©r7   rÙ   Únrä   ræ   rç   rû   s          r+   Útest_first_order_fixed_timez'TestImpulse.test_first_order_fixed_time(  sr   € ð
 �%˜#˜c˜Ð#ˆØˆÜ�K‰K˜˜3 Ó"ˆÜ˜& AÔ&‰ˆˆaØ�z‰z˜a˜TÒ!Ð!Ð!Ü˜D !Ô$Ü—V‘V˜Q˜B“Zˆ
Ü˜A˜zÕ*r-   c                 ó|   — dgddgf}t        |d¬«      \  }}dt        j                  | «      z  }t        ||«       y ©Nr©   rª   rÝ   rÇ   r  r  s        r+   Útest_first_order_initialz$TestImpulse.test_first_order_initial6  sB   € ð
 �%˜#˜c˜Ð#ˆÜ˜& SÔ)‰ˆˆaØœ2Ÿ6™6 4 %›=Ñ(ˆ
Ü˜A˜zÕ*r-   c                 ó~   — dgddgf}t        |dg¬«      \  }}dt        j                  | «      z  }t        ||«       y r  r  r  s        r+   Útest_first_order_initial_listz)TestImpulse.test_first_order_initial_list@  sD   € ð
 �%˜#˜c˜Ð#ˆÜ˜& c UÔ+‰ˆˆaØœ2Ÿ6™6 4 %›=Ñ(ˆ
Ü˜A˜zÕ*r-   c                 óp   — dgddgf}t        |«      \  }}t        j                  |«      }t        ||«       y ©Nr©   r¸   )r   r   r   r   r  s        r+   ró   zTestImpulse.test_integratorJ  s7   € à�%˜#˜c˜Ð#ˆÜ˜&“/‰ˆˆaÜ—\‘\ $Ó'ˆ
Ü˜A˜zÕ*r-   c                 óx   — dgg d¢f}t        |«      \  }}|t        j                  | «      z  }t        ||«       y )Nr©   rì   r  r  s        r+   rí   zTestImpulse.test_second_orderQ  s;   € ð �%šÐ)ˆÜ˜&“/‰ˆˆaØœBŸF™F D 5›MÑ)ˆ
Ü˜A˜zÕ*r-   c                 ó`   — dgg d¢f}t        |dgddg¬«      \  }}t        |dgdg¬«      \  }}y )Nr©   rì   rQ   rd   rc   ©rÞ   rø   ©r   ©r7   rÙ   ræ   rç   s       r+   Útest_array_likezTestImpulse.test_array_likeZ  s<   € à�%šÐ)ˆä˜& a S¨Q°¨FÔ3‰ˆˆaÜ˜& a S¨Q¨CÔ0‰ˆ‰ar-   c                 ó4   — dgg d¢f}t        |dd¬«      \  }}y )Nr©   rì   rQ   rd   r!  r"  r#  s       r+   Útest_array_like2zTestImpulse.test_array_like2a  s    € Ø�%šÐ)ˆÜ˜& Q¨!Ô,‰ˆ‰ar-   N)r˜   r™   rš   rê   r  r  r  ró   rí   r$  r&  r›   r-   r+   r  r    s*   „ ò+ò+ò+ò+ò+ò+ò1ó-r-   r  c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestStepc                 óx   — dgddgf}t        |«      \  }}dt        j                  | «      z
  }t        ||«       y r  ©r   r   râ   r   r  s        r+   rê   zTestStep.test_first_orderg  s?   € ð �%˜#˜c˜Ð#ˆÜ�v“,‰ˆˆaØœ2Ÿ6™6 4 %›=Ñ(ˆ
Ü˜A˜zÕ*r-   c                 óê   — dgddgf}d}t        j                  dd|«      }t        ||¬«      \  }}|j                  |fk(  sJ ‚t	        ||«       dt        j
                  | «      z
  }t	        ||«       y )Nr©   rö   r   r¬   r  rY   )r   rà   r   r   r   râ   r  s          r+   r  z$TestStep.test_first_order_fixed_timeo  sv   € ð
 �%˜#˜c˜Ð#ˆØˆÜ�K‰K˜˜3 Ó"ˆÜ�v Ô#‰ˆˆaØ�z‰z˜a˜TÒ!Ð!Ð!Ü˜D !Ô$ØœŸ™  ›‘^ˆ
Ü˜A˜zÕ*r-   c                 ó‚   — dgddgf}t        |d¬«      \  }}ddt        j                  | «      z  z   }t        ||«       y ©Nr©   rª   rÝ   rY   r¬   r*  r  s        r+   r  z!TestStep.test_first_order_initial}  sG   € ð
 �%˜#˜c˜Ð#ˆÜ�v #Ô&‰ˆˆaØ˜œRŸV™V T E›]Ñ*Ñ*ˆ
Ü˜A˜zÕ*r-   c                 ó„   — dgddgf}t        |dg¬«      \  }}ddt        j                  | «      z  z   }t        ||«       y r-  r*  r  s        r+   r  z&TestStep.test_first_order_initial_list‡  sI   € ð
 �%˜#˜c˜Ð#ˆÜ�v 3 %Ô(‰ˆˆaØ˜œRŸV™V T E›]Ñ*Ñ*ˆ
Ü˜A˜zÕ*r-   c                 óJ   — dgddgf}t        |«      \  }}|}t        ||«       y r  )r   r   r  s        r+   ró   zTestStep.test_integrator‘  s0   € ð �%˜˜S˜	Ð"ˆÜ�v“,‰ˆˆaØˆ
Ü˜A˜zÕ*r-   c                 ó„   — dgg d¢f}t        |«      \  }}dd|z   t        j                  | «      z  z
  }t        ||«       y )Nr©   rì   rY   r*  r  s        r+   rí   zTestStep.test_second_order™  sD   € ð �%šÐ)ˆÜ�v“,‰ˆˆaØ˜!˜d™(¤b§f¡f¨d¨U£mÑ3Ñ3ˆ
Ü˜A˜zÕ*r-   c                 ó6   — dgg d¢f}t        |ddg¬«      \  }}y )Nr©   rì   rd   rc   r  ©r   r#  s       r+   r$  zTestStep.test_array_like¢  s"   € à�%šÐ)ˆä�v ! Q Ô(‰ˆ‰ar-   c                 ó"   — t        g dgdf«       y )Nr[   y      ð?        r2  ©r7   s    r+   Útest_complex_inputzTestStep.test_complex_input¨  s   € ô 	ˆb�2�$˜ÐÕr-   N)r˜   r™   rš   rê   r  r  r  ró   rí   r$  r5  r›   r-   r+   r(  r(  f  s*   „ ò+ò+ò+ò+ò+ò+ò)ór-   r(  c                   ó   — e Zd Zd„ Zy)ÚTestLtic                 ó\  — t        dgdg«      }t        |t        «      sJ ‚t        |t         «      sJ ‚t        |t        «      rJ ‚|j                  �J ‚t        t        j                  g «      t        j                  dg«      d«      }t        |t        «      sJ ‚t        |t         «      sJ ‚t        |t        «      rJ ‚|j                  �J ‚t        g dgd«      }t        dgdgdd«      }t        |t        «      sJ ‚t        |t         «      sJ ‚t        |t        «      rJ ‚|j                  �J ‚y )NrY   r[   rQ   )	r   Ú
isinstancer   r   Údtr   rR   r   r   ©r7   Úss     r+   Útest_lti_instantiationzTestLti.test_lti_instantiation°  s  € ô
 ���b�T‹NˆÜ˜!Ô-Ô.Ð.Ð.Ü˜!œSÔ!Ð!Ð!Ü˜a¤Ô&Ð&Ð&Ø�t‰tˆ|Ðˆ|ô ”—‘˜“œbŸh™h¨ t›n¨aÓ0ˆÜ˜!œ^Ô,Ð,Ð,Ü˜!œSÔ!Ð!Ð!Ü˜a¤Ô&Ð&Ð&Ø�t‰tˆ|Ðˆ|ô ��R�D˜!ÓˆÜ���b�T˜1˜aÓ ˆÜ˜!œZÔ(Ð(Ð(Ü˜!œSÔ!Ð!Ð!Ü˜a¤Ô&Ð&Ð&Ø�t‰tˆ|Ð‰|r-   N)r˜   r™   rš   r=  r›   r-   r+   r7  r7  ¯  s   „ ór-   r7  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestStateSpacec                 ó‚  — t        dddd«       t        dgdgdgdg«       t        t        j                  ddgddgg«      t        j                  dgdgg«      t        j                  ddgg«      t        j                  dgg«      «       t        j                  dgt        j                  ¬«      }t        |ddd«      }|j                  j
                  |j                  j
                  cxk(  rH|j                  j
                  cxk(  r.|j                  j
                  cxk(  rt        j                  k(  sJ ‚ J ‚t        |ddd«      }|j                  j
                  |j                  j
                  cxk(  rH|j                  j
                  cxk(  r.|j                  j
                  cxk(  rt        j                  k(  sJ ‚ J ‚y )NrY   rG   rQ   rC   r   rÁ   y      ð?      ð?)r   r   rR   Úint64r8   rÂ   r9   r²   r³   Úfloat64Ú
complex128)r7   ÚAAÚss0Úss1s       r+   Útest_initializationz"TestStateSpace.test_initializationÌ  s?  € ä�1�a˜˜AÔÜ�A�3˜˜˜a˜S 1 #Ô&Ü”2—8‘8˜a ˜V a¨ VÐ,Ó-¬r¯x©x¸!¸¸q¸c¸
Ó/CÜ—8‘8˜a ˜V˜HÓ%¤r§x¡x°!°°£ô	8ô �X‰X�q�c¤§¡Ô*ˆÜ˜˜Q  1Ó%ˆØ�u‰u�{‰{˜cŸe™eŸk™kÔU¨S¯U©U¯[©[ÔU¸C¿E¹E¿K¹KÔUÌ2Ï:É:ÒUÐUÑUÐUÐUÜ˜˜Q  4Ó(ˆØ�u‰u�{‰{˜cŸe™eŸk™kÔX¨S¯U©U¯[©[ÔX¸C¿E¹E¿K¹KÔXÌ2Ï=É=ÒXÐXÑXÐXÑXr-   c                 ó&  — t        dddd«      }t        |j                  «       t         «      sJ ‚t        |j                  «       t        «      sJ ‚t        |j                  «       t        «      sJ ‚t        |«      |usJ ‚|j                  «       |usJ ‚y )NrY   rG   rQ   rC   )r   r9  Úto_ssÚto_tfr   Úto_zpkr   r;  s     r+   Útest_conversionzTestStateSpace.test_conversionÚ  s}   € ä�q˜!˜Q Ó"ˆÜ˜!Ÿ'™'›)¤ZÔ0Ð0Ð0Ü˜!Ÿ'™'›)Ô%5Ô6Ð6Ð6Ü˜!Ÿ(™(›*¤nÔ5Ð5Ð5ô ˜!‹} AÑ%Ð%Ð%Ø�w‰w‹y Ñ!Ð!Ñ!r-   c                 ó˜   — t        dddd«      }t        |j                  dg«       t        |j                  dg«       |j                  �J ‚y )NrY   r©   r¸   )r   r   ÚpolesrŸ   r:  r;  s     r+   Útest_propertieszTestStateSpace.test_propertieså  sB   € ô
 �q˜!˜Q Ó"ˆÜ˜Ÿ™ " Ô&Ü˜Ÿ™ " Ô&Ø�t‰tˆ|Ð‰|r-   c                 ó   —  G d„ d«      }t        t        j                  ddgddgg«      t        j                  dgdgg«      t        j                  ddgg«      t        j                  dgg«      «      }t        t        j                  d	d
gdd
gg«      t        j                  dgdgg«      t        j                  ddgg«      t        j                  dgg«      «      }|j                  d«      }|j                  d«      }|j                  d«      }t        j                  ddd«      }t        j
                  |«      }d|d<   t        t        t        t        j                  t        j                  t        j                  fD ]Ù  }	t        t         |	d«      |z  ||¬«      d    |	d«      t        |||¬«      d   z  «       t        t        | |	d«      z  ||¬«      d   t        |||¬«      d    |	d«      z  «       t        t        | |	d«      z  ||¬«      d   t        |||¬«      d    |	d«      z  «       t        t        «      5   |	d«      |z   d d d «       ŒÛ t        t        |dz  ||¬«      d   t        |d|z  |¬«      d   «       t        t        ||z  ||¬«      d   t        |t        |||¬«      d   |¬«      d   d¬«       t        t        «      5  ||z   d d d «       t        t        «      5  ||z   d d d «       t        t        «      5  ||z   d d d «       t        t        «      5  | |«       z   d d d «       t        t        «      5   |«       |z   d d d «       t        t        «      5  | |«       z   d d d «       t        t        «      5   |«       |z   d d d «       t        t        |dz   ||¬«      d   d|z  t        |||¬«      d   z   «       t        t        «      5  |t        j                  ddg«      z    d d d «       t        t        «      5  t        j                  ddg«      |z    d d d «       t        t        «      5  ||z    d d d «       t        t        «      5  |t        j                  ddgddgg«      z   d d d «       t        t        «      5  ||z    d d d «       t        t        «      5  | |«       z    d d d «       t        t        «      5   |«       |z    d d d «       t        t        ||z   ||¬«      d   t        |||¬«      d   t        |||¬«      d   z   «       t        t        |dz
  ||¬«      d   d|z  t        |||¬«      d   z   «       t        t        d|z
  ||¬«      d   d|z  t        | ||¬«      d   z   «       t        t        ||z
  ||¬«      d   t        |||¬«      d   t        |||¬«      d   z
  «       t        t        «      5  | |«       z
   d d d «       t        t        «      5   |«       |z
   d d d «       ||z   }
|
j                   dk(  sJ ‚||z  }
|
j                   dk(  sJ ‚d|z  }
|
j                   dk(  sJ ‚| }
|
j                   dk(  sJ ‚y # 1 sw Y   �ŒþxY w# 1 sw Y   �Œ¤xY w# 1 sw Y   �Œ”xY w# 1 sw Y   �Œ„xY w# 1 sw Y   �ŒoxY w# 1 sw Y   �ŒZxY w# 1 sw Y   �ŒExY w# 1 sw Y   �Œ0xY w# 1 sw Y   �ŒØxY w# 1 sw Y   �Œ³xY w# 1 sw Y   �Œ£xY w# 1 sw Y   �ŒzxY w# 1 sw Y   �ŒjxY w# 1 sw Y   �ŒUxY w# 1 sw Y   �Œ@xY w# 1 sw Y   �ŒFxY w# 1 sw Y   �Œ1xY w)Nc                   ó   — e Zd Zy)ú.TestStateSpace.test_operators.<locals>.BadTypeN)r˜   r™   rš   r›   r-   r+   ÚBadTyperR  ò  s   „ Ør-   rS  rJ   gffffffæ?rË   gš™™™™™é¿rY   r   rI   gš™™™™™¹¿gš™™™™™Ù?çš™™™™™¹?gš™™™™™É?éd   rG   )r÷   rø   gñhãˆµøä>)r'   rQ   rC   rp   )r   r   rR   Úto_discreterà   rá   ÚintÚfloatÚcomplexÚfloat32rC  r   r   rŒ   Ú	TypeErrorr"   r:  )r7   rS  Ús1Ús2Ú
s_discreteÚs2_discreteÚs3_discreterä   rå   Útypr<  s              r+   Útest_operatorszTestStateSpace.test_operatorsï  sÏ  € ÷	ñ 	ô œŸ™ 4¨ +°°T¨{Ð!;Ó<ÜŸ™ 1 #¨ s Ó,ÜŸ™ 1 a & Ó*ÜŸ™ 1 # ›óˆô œŸ™ 4¨ ,°°d°Ð!<Ó=ÜŸ™ 1 #¨ s Ó,ÜŸ™ 1 a & Ó*ÜŸ™ 1 # ›óˆð —^‘^ CÓ(ˆ
Ø—n‘n SÓ)ˆØ—n‘n SÓ)ˆô �K‰K˜˜1˜cÓ"ˆÜ�M‰M˜!ÓˆØˆˆ!‰ô œ¤¬¯©´R·]±]ÄBÇHÁHÐMò 	ˆCÜœD¡ Q£¨"¡°°QÔ7¸Ñ:Ù ›F¤T¨"°°QÔ%7¸Ñ%:Ñ:ô<ô œD ¡c¨!£f¡°°QÔ7¸Ñ:Ü   q¨AÔ.¨qÑ1±C¸³FÑ:ô<ô œD ¡c¨!£f¡°°QÔ7¸Ñ:Ü   q¨AÔ.¨qÑ1±C¸³FÑ:ô<ô œyÓ)ñ Ù�A“˜’÷ð ð	ô 	œ˜R !™V q¨AÔ.¨qÑ1Ü˜R 1 q¡5¨AÔ.¨qÑ1ô	3ô 	œ˜R "™W¨¨QÔ/°Ñ2Ü˜R¤4¨¨a°1Ô#5°aÑ#8¸AÔ>¸qÑAØ!õ	#ô œ9Ó%ñ 	Ø�ŠG÷	ô œ9Ó%ñ 	Ø�ŠO÷	ô œ9Ó%ñ 	%à˜Ò$÷	%ô œ9Ó%ñ 	Ø‘“ŠN÷	ô œ9Ó%ñ 	Ù‹I˜ŠN÷	ô œ9Ó%ñ 	Ø‘“ŠN÷	ô œ9Ó%ñ 	Ù‹I˜ŠN÷	ô 	œ˜R !™V q¨AÔ.¨qÑ1Ø˜A™¤ R¨1°Ô 2°1Ñ 5Ñ5ô	7ô œ:Ó&ñ 	"Ø”—‘˜1˜a˜&Ó!Ò!÷	"ô œ:Ó&ñ 	"Ü�H‰H�a˜�VÓ˜rÒ!÷	"ô œ9Ó%ñ 	Ø�ŠO÷	ô œ:Ó&ñ 	,Ø”—‘˜A˜q˜6 A q 6Ð*Ó+Ò+÷	,ô œ9Ó%ñ 	%à˜Ò$÷	%ô œ9Ó%ñ 	Ø‘“ŠN÷	ô œ9Ó%ñ 	Ù‹I˜ŠN÷	ô 	œ˜R "™W¨¨QÔ/°Ñ2Ü˜R 1¨Ô*¨1Ñ-´°R¸1ÀÔ0BÀ1Ñ0EÑEô	Gô 	œ˜R !™V q¨AÔ.¨qÑ1Ø˜Q™¤ b¨A°Ô!3°AÑ!6Ñ6ô	8ô 	œ˜Q ™V q¨AÔ.¨qÑ1Ø˜A™¤ b S¨A°Ô 3°AÑ 6Ñ6ô	8ô 	œ˜R "™W¨¨QÔ/°Ñ2Ü˜R 1¨Ô*¨1Ñ-´°R¸1ÀÔ0BÀ1Ñ0EÑEô	Gô œ9Ó%ñ 	Ø‘“ŠN÷	ô œ9Ó%ñ 	Ù‹I˜ŠN÷	ð ˜Ñ$ˆØ�t‰t�sŠ{Ðˆ{à˜Ñ$ˆØ�t‰t�sŠ{Ðˆ{à�
‰NˆØ�t‰t�sŠ{Ðˆ{àˆKˆØ�t‰t�sŠ{Ð‰{÷qñ ú÷	ñ 	ú÷	ñ 	ú÷	%ñ 	%ú÷	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷	"ñ 	"ú÷	"ñ 	"ú÷	ñ 	ú÷	,ñ 	,ú÷	%ñ 	%ú÷	ñ 	ú÷	ñ 	ú÷ 	ñ 	ú÷	ñ 	úsÌ   ÉY3ËZ Ë5ZÌZÌ/Z'ÍZ4Í3[Î[Ï*[Ð[(Ñ[5Ñ+\Ò!\Ò>\Ó \)×'\6Ø	]Ù3Y=	Ú Z
ÚZÚZ$Ú'Z1Ú4Z>Û[Û[Û[%Û([2Û5[?Ü\Ü\Ü\&Ü)\3Ü6] Ý]N)r˜   r™   rš   rG  rL  rO  rb  r›   r-   r+   r?  r?  Ë  s   „ òYò	"òó~r-   r?  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestTransferFunctionc                 ó    — t        dd«       t        dgdg«       t        t        j                  dg«      t        j                  dg«      «       y ©NrY   rG   )r   r   rR   r4  s    r+   rG  z(TestTransferFunction.test_initializationp  s8   € ä˜˜AÔÜ˜!˜˜q˜cÔ"ÜœŸ™ 1 #›¬¯©°!°«Õ6r-   c                 ó*  — t        ddgddg«      }t        |j                  «       t        «      sJ ‚t        |j	                  «       t         «      sJ ‚t        |j                  «       t        «      sJ ‚t        |«      |usJ ‚|j	                  «       |usJ ‚y )NrY   r   r[   )r   r9  rI  r   rJ  rK  r   r;  s     r+   rL  z$TestTransferFunction.test_conversionv  s‚   € ä˜a ˜V a¨ WÓ-ˆÜ˜!Ÿ'™'›)¤ZÔ0Ð0Ð0Ü˜!Ÿ'™'›)Ô%5Ô6Ð6Ð6Ü˜!Ÿ(™(›*¤nÔ5Ð5Ð5ô   Ó"¨!Ñ+Ð+Ð+Ø�w‰w‹y Ñ!Ð!Ñ!r-   c                 ó€   — t        ddgddg«      }t        |j                  dg«       t        |j                  dg«       y )NrY   r   r[   r©   r¸   )r   r   rN  rŸ   r;  s     r+   rO  z$TestTransferFunction.test_properties�  s8   € ô
 ˜a ˜V a¨ WÓ-ˆÜ˜Ÿ™ " Ô&Ü˜Ÿ™ " Õ&r-   N)r˜   r™   rš   rG  rL  rO  r›   r-   r+   rd  rd  o  s   „ ò7ò	"ó'r-   rd  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestZerosPolesGainc                 ó¦   — t        ddd«       t        dgdgd«       t        t        j                  dg«      t        j                  dg«      d«       y rf  )r   r   rR   r4  s    r+   rG  z&TestZerosPolesGain.test_initializationŒ  s>   € ä�q˜!˜QÔÜ˜�s˜Q˜C Ô#Ü”r—x‘x  “}¤b§h¡h°¨s£m°QÕ7r-   c                 ó$  — t        ddd«      }t        |j                  «       t        «      sJ ‚t        |j	                  «       t
        «      sJ ‚t        |j                  «       t         «      sJ ‚t        |«      |usJ ‚|j                  «       |usJ ‚y )NrY   rG   rQ   )r   r9  rI  r   rJ  r   rK  r;  s     r+   rL  z"TestZerosPolesGain.test_conversion’  s|   € ä˜1˜a Ó#ˆÜ˜!Ÿ'™'›)¤ZÔ0Ð0Ð0Ü˜!Ÿ'™'›)Ô%5Ô6Ð6Ð6Ü˜!Ÿ(™(›*¤nÔ5Ð5Ð5ô ˜aÓ ¨Ñ)Ð)Ð)Ø�x‰x‹z Ñ"Ð"Ñ"r-   N)r˜   r™   rš   rG  rL  r›   r-   r+   rj  rj  ‹  s   „ ò8ó	#r-   rj  c            	       ó  — e Zd ZddgddggZdgdggZddggZdggZd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej:                  j=                  dg d¢«      ej:                  j=                  dg d¢«      ej:                  j=                  d g d!¢«      ej:                  j=                  d"g d!¢«      ej:                  j=                  d#dggg gg«      d$„ «       «       «       «       «       Zy%)&ÚTest_abcd_normalizer©   r¬   rª   rÇ   r¿   r«   ç      @c                 ó,   — t        t        t        «       y ©N)rŒ   r"   r   r4  s    r+   Útest_no_matrix_failsz(Test_abcd_normalize.test_no_matrix_fails¥  s   € Ü”j¤.Õ1r-   c                 ót   — t        t        t        ddg| j                  | j                  | j
                  «       y )NrY   r[   )rŒ   r"   r   r9   r²   r³   r4  s    r+   Útest_A_nosquare_failsz)Test_abcd_normalize.test_A_nosquare_fails¨  s'   € Ü”j¤.Ø˜"�g˜tŸv™v t§v¡v¨t¯v©võ	7r-   c                 ót   — t        t        t        | j                  ddg| j                  | j
                  «       y ©Nr[   rd   ©rŒ   r"   r   r8   r²   r³   r4  s    r+   Útest_AB_mismatch_failsz*Test_abcd_normalize.test_AB_mismatch_fails¬  ó'   € Ü”j¤.Ø—f‘f˜r 1˜g t§v¡v¨t¯v©võ	7r-   c                 óx   — t        t        t        | j                  | j                  dgdgg| j
                  «       y )NrÇ   r«   )rŒ   r"   r   r8   r9   r³   r4  s    r+   Útest_AC_mismatch_failsz*Test_abcd_normalize.test_AC_mismatch_fails°  s+   € Ü”j¤.Ø—f‘f˜dŸf™f¨ u¨s¨e n°d·f±fõ	>r-   c           	      ót   — t        t        t        | j                  | j                  | j
                  ddg«       y )Nro  r   )rŒ   r"   r   r8   r9   r²   r4  s    r+   Útest_CD_mismatch_failsz*Test_abcd_normalize.test_CD_mismatch_fails´  s'   € Ü”j¤.Ø—f‘f˜dŸf™f d§f¡f¨s°A¨hõ	8r-   c                 ót   — t        t        t        | j                  ddg| j                  | j
                  «       y rv  rw  ©r7   Úxps     r+   Útest_BD_mismatch_failsz*Test_abcd_normalize.test_BD_mismatch_fails¸  ry  r-   c                 ó  ‡— t        ˆfd„| j                  | j                  | j                  | j                  f«      \  }}}}t        ||||¬«      \  }}}}	t        ||«       t        ||«       t        ||«       t        |	|«       y )Nc                 ó>   •— ‰j                  | ‰j                  ¬«      S ©NrÁ   ©ÚasarrayrB  ©rä   r€  s    €r+   ú<lambda>zHTest_abcd_normalize.test_normalized_matrices_unchanged.<locals>.<lambda>¾  ó   ø€ �b—j‘j ¨"¯*©*�jÓ5€ r-   ©r8   r9   r²   r³   )Úmapr8   r9   r²   r³   r   r   )
r7   r€  ÚA_ÚB_ÚC_ÚD_r8   r9   r²   r³   s
    `        r+   Ú"test_normalized_matrices_unchangedz6Test_abcd_normalize.test_normalized_matrices_unchanged¼  sv   ø€ ÜÛ5Ø�V‰V�T—V‘V˜TŸV™V T§V¡VÐ,ó
‰ˆˆB��Bô $ b¨B°"¸Ô;‰
ˆˆ1ˆa�Ü˜˜2ÔÜ˜˜2ÔÜ˜˜2ÔÜ˜˜2Õr-   c                 ó   — t        | j                  | j                  ddgd«      \  }}}}|j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚y )NrY   r   )r   r8   r9   r   )r7   r8   r9   r²   r³   s        r+   r§   zTest_abcd_normalize.test_shapesÇ  s¼   € Ü# D§F¡F¨D¯F©F°Q¸°F¸AÓ>‰
ˆˆ1ˆa�Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ñ'r-   c                 ó¸  — |j                  | j                  |j                  ¬«      }|j                  d|j                  ¬«      }|j                  d|j                  ¬«      }t	        |||¬«      \  }}}}t        ||«       t        ||«       t        ||«       |j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚y )NrÁ   ©rG   r   )r   r   ©r8   r9   r³   r   rY   ©r†  r8   rB  rŸ   r   r   r   ©	r7   r€  rŒ  r�  r�  r8   r9   r²   r³   s	            r+   Ú test_zero_dimension_is_not_none1z4Test_abcd_normalize.test_zero_dimension_is_not_none1Ï  ó¸   € Ø�Z‰Z˜Ÿ™ b§j¡jˆZÓ1ˆØ�X‰X�f B§J¡JˆXÓ/ˆØ�X‰X�f B§J¡JˆXÓ/ˆÜ# b¨B°"Ô5‰
ˆˆ1ˆa�Ü˜˜2ÔÜ˜˜2ÔÜ˜˜2ÔØ�w‰w�q‰z˜RŸX™X a™[Ò(Ð(Ð(Ø�w‰w�q‰z˜RŸX™X a™[Ò(Ð(Ñ(r-   c                 ó¸  — |j                  | j                  |j                  ¬«      }|j                  d|j                  ¬«      }|j                  d|j                  ¬«      }t	        |||¬«      \  }}}}t        ||«       t        ||«       t        ||«       |j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚y )NrÁ   r“  )r   rG   ©r8   r9   r²   r   rY   r•  ©	r7   r€  rŒ  r�  rŽ  r8   r9   r²   r³   s	            r+   Ú test_zero_dimension_is_not_none2z4Test_abcd_normalize.test_zero_dimension_is_not_none2Ú  r˜  r-   c                 ór  ‡— t        ˆfd„| j                  | j                  | j                  f«      \  }}}t	        |||¬«      \  }}}}|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚y )Nc                 ó>   •— ‰j                  | ‰j                  ¬«      S r„  r…  r‡  s    €r+   rˆ  z4Test_abcd_normalize.test_missing_A.<locals>.<lambda>ç  r‰  r-   )r9   r²   r³   r   rY   )r‹  r9   r²   r³   r   r   )	r7   r€  r�  rŽ  r�  r8   r9   r²   r³   s	    `       r+   Útest_missing_Az"Test_abcd_normalize.test_missing_Aå  ó§   ø€ ÜÛ5Ø�V‰V�T—V‘V˜TŸV™VÐ$ó
‰
ˆˆB�ô $ b¨B°"Ô5‰
ˆˆ1ˆa�Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w˜2Ÿ8™8 A™;¨¯©°©Ð4Ò4Ð4Ñ4r-   c                 ó~  — t        |j                  | j                  | j                  | j                  f«      \  }}}t        |||¬«      \  }}}}|j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚|j                  |j                  d   |j                  d   fk(  sJ ‚y )N)r8   r²   r³   r   rY   )r‹  r†  r8   r²   r³   r   r   )	r7   r€  rŒ  rŽ  r�  r8   r9   r²   r³   s	            r+   Útest_missing_Bz"Test_abcd_normalize.test_missing_Bï  ó¤   € Ü˜Ÿ™ d§f¡f¨d¯f©f°d·f±fÐ%=Ó>‰
ˆˆB�Ü# b¨B°"Ô5‰
ˆˆ1ˆa�Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w˜2Ÿ8™8 A™;¨¯©°©Ð4Ò4Ð4Ñ4r-   c                 ór  ‡— t        ˆfd„| j                  | j                  | j                  f«      \  }}}t	        |||¬«      \  }}}}|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚y )Nc                 ó>   •— ‰j                  | ‰j                  ¬«      S r„  r…  r‡  s    €r+   rˆ  z4Test_abcd_normalize.test_missing_C.<locals>.<lambda>ø  r‰  r-   r”  r   rY   )r‹  r8   r9   r³   r   r   r–  s	    `       r+   Útest_missing_Cz"Test_abcd_normalize.test_missing_Cö  r   r-   c                 ó~  — t        |j                  | j                  | j                  | j                  f«      \  }}}t        |||¬«      \  }}}}|j                  d   |j                  d   k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚|j                  |j                  d   |j                  d   fk(  sJ ‚y )Nrš  r   rY   )r‹  r†  r8   r9   r²   r   r   r›  s	            r+   Útest_missing_Dz"Test_abcd_normalize.test_missing_D   r£  r-   c                 ó   — t        |j                  | j                  | j                  f«      \  }}t	        ||¬«      \  }}}}|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚y )N)r²   r³   r   rY   )r‹  r†  r²   r³   r   r   )r7   r€  rŽ  r�  r8   r9   r²   r³   s           r+   Útest_missing_ABz#Test_abcd_normalize.test_missing_AB  sß   € Ü�R—Z‘Z $§&¡&¨$¯&©&Ð!1Ó2‰ˆˆBÜ# b¨BÔ/‰
ˆˆ1ˆa�Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w˜2Ÿ8™8 A™;¨¯©°©Ð4Ò4Ð4Ð4Ø�w‰w˜2Ÿ8™8 A™;¨¯©°©Ð4Ò4Ð4Ñ4r-   c                 óB  — t        |j                  | j                  | j                  f«      \  }}t	        ||¬«      \  }}}}|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚y )N)r9   r³   r   rY   )r‹  r†  r9   r³   r   r   )r7   r€  r�  r�  r8   r9   r²   r³   s           r+   Útest_missing_ACz#Test_abcd_normalize.test_missing_AC  óý   € Ü�R—Z‘Z $§&¡&¨$¯&©&Ð!1Ó2‰ˆˆBÜ# b¨BÔ/‰
ˆˆ1ˆa�Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w�q‰z˜QŸW™W Q™ZÒ'Ð'Ð'Ø�w‰w˜2Ÿ8™8 A™;¨¯©°©Ð4Ò4Ð4Ð4Ø�w‰w˜2Ÿ8™8 A™;¨¯©°©Ð4Ò4Ð4Ñ4r-   c                 óB  — t        |j                  | j                  | j                  f«      \  }}t	        ||¬«      \  }}}}|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚y )N)r9   r²   r   rY   )r‹  r†  r9   r²   r   r   )r7   r€  r�  rŽ  r8   r9   r²   r³   s           r+   Útest_missing_ADz#Test_abcd_normalize.test_missing_AD  r­  r-   c                 óB  — t        |j                  | j                  | j                  f«      \  }}t	        ||¬«      \  }}}}|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚|j
                  |j
                  d   |j
                  d   fk(  sJ ‚y )N)r8   r³   r   rY   )r‹  r†  r8   r³   r   r   )r7   r€  rŒ  r�  r8   r9   r²   r³   s           r+   Útest_missing_BCz#Test_abcd_normalize.test_missing_BC$  r­  r-   c                 ób   — t        t        t        |j                  | j                  «      ¬«       y )N)r³   )rŒ   r"   r   r†  r³   r  s     r+   Útest_missing_ABC_failsz*Test_abcd_normalize.test_missing_ABC_fails.  s   € Ü”j¤.°B·J±J¸t¿v¹vÓ4FÖGr-   c                 óž   — |j                  | j                  «      |j                  | j                  «      }}t        t        t
        ||¬«       y )N)r8   r²   )r†  r8   r²   rŒ   r"   r   )r7   r€  r8   r²   s       r+   Útest_missing_BD_failsz)Test_abcd_normalize.test_missing_BD_fails1  s3   € Ø�z‰z˜$Ÿ&™&Ó! "§*¡*¨T¯V©VÓ"4ˆ1ˆÜ”j¤.°A¸Ö;r-   c                 óž   — |j                  | j                  «      |j                  | j                  «      }}t        t        t
        ||¬«       y )N)r8   r9   )r†  r8   r9   rŒ   r"   r   )r7   r€  r8   r9   s       r+   Útest_missing_CD_failsz)Test_abcd_normalize.test_missing_CD_fails5  s3   € Ø�z‰z˜$Ÿ&™&Ó! 2§:¡:¨d¯f©fÓ#5ˆ1ˆÜ”j¤.°A¸Ö;r-   ÚA_dtype)NrA  rZ  rB  Ú	complex64rC  ÚB_dtypeÚC_dtype)rA  rZ  rB  r¹  rC  ÚD_dtyper³   c           
      ó¼  — g }t        | j                  | j                  | j                  |g||||g«      D ]5  \  }}	|j	                  |	�|j                  |t        ||	«      ¬«      nd «       Œ7 |\  }
}}}t        |
||||d¬«      }t        |
|||¬«      \  }
}}}|
j                  |j                  cxk(  r&|j                  cxk(  r|j                  cxk(  r|k(  sJ ‚ J ‚y )NrÁ   T)r€  Úforce_floatingrŠ  )
Úzipr8   r9   r²   Úappendr†  Úgetattrr	   r   rÂ   )r7   r³   r¸  rº  r»  r¼  r€  rØ   ÚXÚX_dtyper8   r9   r²   Úexpected_dtypes                 r+   Útest_dtypeszTest_abcd_normalize.test_dtypes:  sã   € ð* ˆÜØ—‘˜Ÿ™ §¡¨Ð+Ø˜' 7¨GÐ4ó
ò 	‰JˆAˆwð �K‰KàÐ&ð —
‘
˜1¤G¨B°Ó$8�
Ô9Ø,0õð		ð ‰
ˆˆ1ˆa�Ü'¨¨1¨a°°rÈ$ÔOˆÜ# a¨1°°QÔ7‰
ˆˆ1ˆa�Ø�w‰w˜!Ÿ'™'ÔI Q§W¡WÔI°·±ÔI¸>ÒIÐIÑIÐIÑIr-   N) r˜   r™   rš   r8   r9   r²   r³   rr  rt  rx  r{  r}  r�  r�  r§   r—  rœ  rŸ  r¢  r¦  r¨  rª  r¬  r¯  r±  r³  rµ  r·  ÚpytestÚmarkÚparametrizerÅ  r›   r-   r+   rn  rn  ž  sL  „ à
ˆsˆ�c˜3�ZÐ €AØ
ˆ�#�ˆ€AØ
ˆsˆˆ€AØ
ˆˆ€Aò2ò7ò7ò>ò8ò7ò	ò(ò	)ò	)ò5ò5ò5ò5ò5ò5ò5ò5òHò<ò<ð
 ‡[�[×ÑØâHóð
 ‡[�[×ÑØÚHóð ‡[�[×ÑØÚBóð ‡[�[×ÑØÚBóð
 ‡[�[×Ñ˜S S E 7¨R¨D /Ó2ñJó 3óó	ó	óñ&Jr-   rn  c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)Ú	Test_bodec                 óp   — t        dgddg«      }g d¢}t        ||¬«      \  }}}g d¢}t        ||d¬«       y )NrY   ©rT  rY   r`   rU  ©r–   )r   rZ   rf   rl   rð   ©r   r   r   )r7   rÙ   r–   ÚmagÚphaseÚexpected_mags         r+   Útest_01zTest_bode.test_01`  s>   € ô �a�S˜1˜a˜&Ó!ˆÚˆÜ˜V qÔ)‰ˆˆ3�Ú(ˆÜ˜C °qÖ9r-   c                 óp   — t        dgddg«      }g d¢}t        ||¬«      \  }}}g d¢}t        ||d¬«       y )NrY   ©rT  rY   r`   rÍ  )gÍÌÌÌÌÌÀiÓÿÿÿg33333UÀrð   rÎ  )r7   rÙ   r–   rÏ  rÐ  Úexpected_phases         r+   Útest_02zTest_bode.test_02n  s>   € ô �a�S˜1˜a˜&Ó!ˆÚˆÜ˜V qÔ)‰ˆˆ3�Ú+ˆÜ˜E >¸1Ö=r-   c                 ó2  — t        dgddg«      }g d¢}t        ||¬«      \  }}}|dz  }t        j                  |j                  |«      t        j                  |j
                  |«      z  }dt        j                  t        |«      «      z  }t        ||«       y )NrY   rÌ  rÍ  ù              ð?g      4@)	r   r   r   Úpolyvalr»   r¼   Úlog10Úabsr   )r7   rÙ   r–   rÏ  rÐ  Újwrç   rÑ  s           r+   Útest_03zTest_bode.test_03z  s   € ô �a�S˜1˜a˜&Ó!ˆÚˆÜ˜V qÔ)‰ˆˆ3�Ø�‰VˆÜ�J‰J�v—z‘z 2Ó&¬¯©°F·J±JÀÓ)CÑCˆØœbŸh™h¤s¨1£vÓ.Ñ.ˆÜ˜C Õ.r-   c                 ól  — t        dgddg«      }g d¢}t        ||¬«      \  }}}|dz  }t        j                  |j                  |«      t        j                  |j
                  |«      z  }t        j                  |j                  |j                  «      dz  t        j                  z  }t        ||«       y )NrY   rÌ  rÍ  rØ  g     €f@)r   r   r   rÙ  r»   r¼   Úarctan2r    r   Úpir   )r7   rÙ   r–   rÏ  rÐ  rÜ  rç   rÕ  s           r+   Útest_04zTest_bode.test_04…  sŽ   € ô �a�S˜1˜a˜&Ó!ˆÚˆÜ˜V qÔ)‰ˆˆ3�Ø�‰VˆÜ�J‰J�v—z‘z 2Ó&¬¯©°F·J±JÀÓ)CÑCˆÜŸ™ A§F¡F¨A¯F©FÓ3°eÑ;¼b¿e¹eÑCˆÜ˜E >Õ2r-   c                 óŽ   — t        dgddg«      }d}t        j                  dd|«      }t        ||¬«      \  }}}t	        ||«       y ©NrY   r`   rp   ©r  )r   r   Úlogspacer   r   )r7   rÙ   r  Ú
expected_wr–   rÏ  rÐ  s          r+   Útest_05zTest_bode.test_05�  sI   € ô �a�S˜1˜a˜&Ó!ˆØˆä—[‘[  Q¨Ó*ˆ
Ü˜V qÔ)‰ˆˆ3�Ü˜A˜zÕ*r-   c                 óX   — t        dgddg«      }t        |d¬«      \  }}}|d   dk(  sJ ‚y ©NrY   r   rG   rä  g{®Gáz„?©r   r   ©r7   rÙ   r–   rÏ  rÐ  s        r+   Útest_06zTest_bode.test_06š  s8   € ô �a�S˜1˜a˜&Ó!ˆÜ˜V qÔ)‰ˆˆ3�Ø�‰t�tŠ|Ð‰|r-   c                 óD   — t        dgg d¢«      }t        |d¬«      \  }}}y )NrY   )rY   r   rU  rG   rä  rê  rë  s        r+   Útest_07zTest_bode.test_07¡  s$   € ô �a�Sš+Ó&ˆÜ˜V qÔ)‰ˆˆ3‘r-   c                 ó¦   — t        g g d¢d«      }|j                  t        j                  ddd«      ¬«      \  }}}t	        t        |«      dd¬	«       y )
N)r_   rg   rl   rm   rn   rY   rZ   rh   rU  rÍ  i>þÿÿé   rð   )r   r   r   rå  r   Úminrë  s        r+   Útest_08zTest_bode.test_08§  sD   € ä�RÒ2°AÓ6ˆØŸ™¤b§k¡k°"°b¸#Ó&>˜Ó?‰ˆˆ3�ÜœC ›J¨°bÖ9r-   c           	      óH  — t        j                  g d¢«      }t        j                  |«      j                  }t        j                  dgdgdgg«      }t        j                  g d¢g«      }t        j                  dgg«      }t        j                  «       5  t        j                  dt        «       t        ||||«      }t        |d¬«      \  }}}	d d d «       dt        j                  t        j                  ddd	z  z   z  «      «      z  }
t        |
«       y # 1 sw Y   ŒJxY w)
N©r©   r¬   r¬   r©   r¸   r©   ©r©   r¸   r¸   rO   rU  rä  é   rc   )r   rR   r1   Ú	companionrø   rŽ   r�   r�   r   r   r   rÚ  Úsqrtr   )r7   r±   r8   r9   r²   r³   rÙ   r–   rÏ  rÐ  Úexpected_magnitudes              r+   Útest_from_state_spacezTest_bode.test_from_state_space­  sð   € ô �H‰HÒ)Ó*ˆÜ×Ñ˜QÓ×!Ñ!ˆÜ�H‰H�s�e˜c˜U S EÐ*Ó+ˆÜ�H‰H’oÐ&Ó'ˆÜ�H‰H�s�e�WÓˆÜ×$Ñ$Ó&ñ 	0Ü×!Ñ! (¬OÔ<Ü˜˜A˜q !“_ˆFÜ  ¨3Ô/‰MˆAˆs�E÷	0ð
  ¤"§(¡(¬2¯7©7°3¸#ÀÀ1Á¹*Ñ3EÓ+FÓ"GÑGÐÜ˜CÐ!3Õ4÷	0ð 	0ús   Â:DÄD!N)r˜   r™   rš   rÒ  rÖ  rÝ  rá  rç  rì  rî  rò  rú  r›   r-   r+   rÊ  rÊ  ^  s/   „ ò:ò
>ò	/ò	3ò+òò*ò:ó5r-   rÊ  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_freqrespc                 óº   — t        dgddg«      }g d¢}t        ||¬«      \  }}g d¢}g d¢}t        |j                  |d¬«       t        |j                  |d¬«       y )NrY   rÔ  rÍ  )g®Gáz®ï?rï   gõÛ×�sF„?)çòÒMbX¹¿rJ   rþ  rð   ©r   r   r   r   r    )r7   rÙ   r–   ÚHÚexpected_reÚexpected_ims         r+   Útest_output_manualz Test_freqresp.test_output_manualÄ  sU   € ô �a�S˜1˜a˜&Ó!ˆÚˆÜ˜ !Ô$‰ˆˆ1Ú)ˆÚ,ˆÜ˜AŸF™F K¸Õ;Ü˜AŸF™F K¸Ö;r-   c                 óV  — t        dgddg«      }g d¢}t        ||¬«      \  }}|dz  }t        j                  |j                  |«      t        j                  |j
                  |«      z  }t        |j                  |j                  «       t        |j                  |j                  «       y )NrY   rÌ  rÍ  rØ  )	r   r   r   rÙ  r»   r¼   r   r   r    ©r7   rÙ   r–   r   r<  r=   s         r+   Útest_outputzTest_freqresp.test_outputÒ  s€   € ô �a�S˜1˜a˜&Ó!ˆÚˆÜ˜ !Ô$‰ˆˆ1Ø�‰FˆÜ—:‘:˜fŸj™j¨!Ó,¬r¯z©z¸&¿*¹*ÀaÓ/HÑHˆÜ˜AŸF™F H§M¡MÔ2Ü˜AŸF™F H§M¡MÕ2r-   c                 óŒ   — t        dgddg«      }d}t        j                  dd|«      }t        ||¬«      \  }}t	        ||«       y rã  )r   r   rå  r   r   )r7   rÙ   r  ræ  r–   r   s         r+   Útest_freq_rangezTest_freqresp.test_freq_rangeÝ  sG   € ô �a�S˜1˜a˜&Ó!ˆØˆÜ—[‘[  Q¨Ó*ˆ
Ü˜ !Ô$‰ˆˆ1Ü˜A˜zÕ*r-   c                 óV   — t        dgddg«      }t        |d¬«      \  }}|d   dk(  sJ ‚y ré  )r   r   )r7   rÙ   r–   r   s       r+   Útest_pole_zerozTest_freqresp.test_pole_zeroç  s6   € ô �a�S˜1˜a˜&Ó!ˆÜ˜ !Ô$‰ˆˆ1Ø�‰t�tŠ|Ð‰|r-   c                 ó„  — t        j                  g d¢«      }t        j                  |«      j                  }t        j                  dgdgdgg«      }t        j                  g d¢g«      }t        j                  dgg«      }t        j                  «       5  t        j                  dt        «       t        ||||«      }t        |d¬«      \  }}d d d «       dz  }	ddd	|	z  z   d	|	d	z  z  z   |	d
z  z   z  }
t        j                  |
j                  «       t        |j                  |
j                  «       y # 1 sw Y   ŒixY w)Nrô  r¸   r©   rõ  rO   rU  rä  rØ  rG   rQ   )r   rR   r1   r÷  rø   rŽ   r�   r�   r   r   r   r   r   r    )r7   r±   r8   r9   r²   r³   rÙ   r–   r   r<  r=   s              r+   rú  z#Test_freqresp.test_from_state_spaceî  s  € ô �H‰HÒ)Ó*ˆÜ×Ñ˜QÓ×!Ñ!ˆÜ�H‰H�s�e˜S˜E 3 %Ð(Ó)ˆÜ�H‰H’oÐ&Ó'ˆÜ�H‰H�s�e�WÓˆÜ×$Ñ$Ó&ñ 	+Ü×!Ñ! (¬OÔ<Ü˜˜A˜q !“_ˆFÜ˜F cÔ*‰DˆAˆq÷	+ð �‰FˆØ˜3  1¡™9 q¨¨A©¡vÑ-°°1±Ñ4Ñ5ˆÜ˜AŸF™F H§M¡MÔ2Ü˜AŸF™F H§M¡MÕ2÷	+ð 	+ús   Â9D6Ä6D?c                 óð   — t        g dgdz  dg«      }g d¢}t        ||¬«      \  }}|dz  }d|dz   dz  z  }t        |j                  |j                  «       t        |j                  |j                  «       y )Nr[   rC   rY   rÌ  rÍ  rØ  rÿ  r  s         r+   Útest_from_zpkzTest_freqresp.test_from_zpk  sk   € ä�R˜˜˜Q™ ˜sÓ#ˆÚˆÜ˜ !Ô$‰ˆˆ1Ø�‰FˆØ˜˜A™ ‘z‘>ˆÜ˜AŸF™F H§M¡MÔ2Ü˜AŸF™F H§M¡MÕ2r-   N)	r˜   r™   rš   r  r  r  r
  rú  r  r›   r-   r+   rü  rü  Â  s    „ ò<ò	3ò+òò3ó*3r-   rü  Úclsc                 óJ   — t        | t        j                     t        «      sJ ‚y rq  )r9  r   rB  r   )r  s    r+   Ú test_subscriptable_generic_typesr    s   € ô �cœ"Ÿ*™*‘o¤|Ô4Ð4Ñ4r-   )ç:Œ0âŽyE>r  )1rŽ   Útypesr   Únumpyr   rÆ  r   rŒ   Úscipy._lib._array_apir   r   r   r   r	   Úscipy.signalr
   r   r   r   r   r   r   r   r   r   r   r   r   r   Úscipy.signal._filter_designr   Úscipy.linalgr1   r,   r/   r�   rÖ   r  r(  r7  r?  rd  rj  rn  rÊ  rü  rÇ  rÈ  r  r›   r-   r+   ú<module>r     s'  ðÛ Ý ã Û Ý *÷õ ÷
H÷ H÷ H÷ Hõ
 8Ý óN÷*V@ñ V@÷r[Pñ [P÷|{6ñ {6÷|D-ñ D-÷NFñ F÷Rñ ÷8bñ b÷H'ñ '÷8#ñ #ñ& �>Ó"÷|Jð |Jó #ð|J÷~a5ñ a5÷HI3ñ I3ðV ‡�×ÑØ	ˆJÐ(¨.¸#¸tÐDóñ5óñ5r-   