Ë
    çÿæi´  ã                   ó   — 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 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jZ                  j]                  d eeeeeg«      d!„ «       Z/y)#é    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           
      óÐ  — |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/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/signal/tests/test_ltisys.pyÚ_assert_poles_closer+      s¿   € ð 
�‰‹€BÛˆØˆÜ˜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ñ ó    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“¨?rA   g°rh‘í|õ?g¢E¶óýÔ Àé   )r   çžï§ÆK·@ç“V-ò?rD   r   r   ç^ºI+	Àr   é   ©çš™™™™™É¿ç      à¿g}Ð³Yõ9ÀgÐDØðT!ÀÚKNV0©ÚmethodÚYTÚignore)Úinvalid)rF   rF   é   rP   )r   ÚarrayÚreshaper>   Úerrstate)r6   r7   r8   r9   s       r*   Ú	test_realzTestPlacePoles.test_real6   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   é   )éýÿÿÿéÿÿÿÿù       À      ð¿ù       À      ð?rN   )ÚdividerO   )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ÂùÿÿrF   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@)é   rd   rd   )rd   r_   r_   )r^   éìÿÿÿéâÿÿÿé(   é2   é<   éF   y      4À      Ày      4À      @y      @      @y      @      À)
r^   re   rf   éØÿÿÿiÎÿÿÿéÄÿÿÿéºÿÿÿi°ÿÿÿi¦ÿÿÿiœÿÿÿrZ   )
y      $À      $@y      4À      4@y      >À      >@y      DÀ      D@y      IÀ      I@y      $À      $Ày      4À      4Ày      >À      >Ày      DÀ      DÀy      IÀ      IÀ)r   rV   r   r   r   r   r   rW   r   r   r   r   r   r   r   r   r   r   r   rc   r   r   r   r   é	   )
r   r   r   r   rX   r   r   rX   rF   rP   rF   )éþÿÿÿy      À      ð?y      À      ð¿ù      ð¿      ð?ù      ð¿      ð¿)ro   rY   éüÿÿÿrp   rq   )	r   rQ   rS   r>   rR   ÚonesÚeyeÚdiagr   )r6   r7   r8   r9   Úbig_AÚbig_Bs         r*   Útest_complexzTestPlacePoles.test_complexL   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 )Nr@   rB   )r   rC   rD   rD   r   r   rE   r   rX   rF   rP   rB   rc   rb   rV   é   rG   )r\   r[   rY   ro   r   rX   )r   rQ   rR   r>   Úisnanr%   Únb_iter)r6   r7   r8   r9   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   rV   r   r   r   r   r   rW   r   r   r   r   r   r   r   r   rB   )r   r   r   r   rX   r   r   rX   rF   )çÍÌÌÌÌÌ Àçš™™™™™ÀçffffffÀç333333ÀÚfoorK   rX   )r   r€   r�   r‚   rY   )r   r€   r�   é*   ©r%   iÖÿÿÿr`   )ro   ro   ro   ro   )rB   rB   )rB   rF   ©rX   rF   rP   rB   T)ÚrecordÚalways)rZ   ro   rY   rr   g¼‰Ø—²Òœ<)r%   ra   rZ   z4Convergence was not reached after maxiter iterations)r\   r[   ù       À      @ro   rP   )ro   rY   rr   éûÿÿÿ)r\   r[   r‰   y       À      ÀrJ   )r   rQ   rR   Úassert_raisesr!   r   Únewaxisrs   ÚwarningsÚcatch_warningsÚsimplefilterÚlenÚ
issubclassÚcategoryÚUserWarningr"   Úmessager|   )r6   r7   r8   Úwr;   s        r*   Útest_errorszTestPlacePoles.test_errors¾   sW  € ä�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Ÿ=™=Ó)ñ*ð +ð *à—;‘; "Ò$Ð$Ñ$÷ 2ô 	”j¤+¨q°!Ð5KÔLô 	”j¤+¨q²°2°A°2°©w¸¸=ÔIô 	”j¤+¨q°!°B°Q°B²q°D±'¸=ÔIô 	”j¤+¨q°!Ø/¸ö	@÷' 2Ð1ús   Ç
BKËKN)Ú__name__Ú
__module__Ú__qualname__r>   rT   rx   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©r6   Ú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))rP   rP   rP   )rX   rP   rP   ©rX   rX   rX   )r£   rŸ   s       r*   Útest_shapeszTestSS2TF.test_shapes	  s&   € ó 9‰GˆAˆq�!Ø×$Ñ$ Q¨¨1Õ-ñ 9r,   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©   ç       ÀrY   rX   r   ç‚vIhÂ%<=r…   r¨   rF   ç›+¡†›„=)r   rQ   r
   r   r	   )	r6   ÚbÚar7   r8   Ú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)rF   rX   ç        r­   r…   r«   r   r¨   rc   rF   rX   rª   )r
   r   r	   ©r6   Útfr7   r8   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 )%NrX   rF   r¬   r­   r…   r¨   r·   ç      ð¿r«   )rX   r   rX   r¥   )r¨   r·   r¨   )r¨   r¨   r¨   )rX   rF   rP   r†   )r¬   rY   rr   )rX   r   r   ©r   rX   r   r   )r¨   rF   rP   )r·   rX   rF   rP   )r   rX   rF   rP   )r¨   rF   rP   rB   rP   )Údtyperb   g      Àg€h‰eÖ9€9i÷ÿÿÿrY   )rX   rb   rc   rŠ   rr   ro   )r·   rX   rY   )r¨   rb   rc   )r
   r   r	   r   rQ   Úobjectr¸   s           r*   Útest_simo_round_tripzTestSS2TF.test_simo_round_trip6  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   rX   )rY   rr   ro   r   rX   )rc   rX   r   )r·   r·   r¨   rª   r­   r®   ©r%   r&   )r¨   r«   ç      @r©   r…   )r	   r   )r6   r7   r8   r±   r²   rº   r»   s          r*   Útest_all_int_arrayszTestSS2TF.test_all_int_arrayso  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   rX   rF   r­   r…   r®   rÄ   )r   rQ   r	   r   Úvstack)r6   r7   r8   r±   r²   Úb_allr°   Úb0Úa0Úb1Úa1Úb2Úa2s                r*   Útest_multioutputzTestSS2TF.test_multioutputx  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)ÚTestLsimrV   c                 óž   — t        j                  «       5  t        j                  dt        «       t	        |Ž }d d d «       |S # 1 sw Y   S xY w)NrN   )r�   rŽ   r�   r   r   )r6   ÚargsÚsystems      r*   Ú
lti_nowarnzTestLsim.lti_nowarn¢  s@   € Ü×$Ñ$Õ&Ü×!Ñ! (¬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   rc   ©ÚX0©rØ   r   ÚlinspaceÚ
zeros_liker   Úexpr   ©r6   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   )r6   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   rc   ç      à?rF   ©Ú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¨   ©rX   rF   r   g      $@é   rF   )ÚUÚTrÜ   rX   ©	r   rQ   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_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   rc   rí   rF   rî   )	r   rQ   rØ   rÞ   Ú	ones_liker   Ú	transposer   rð   )r6   r7   r8   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   rQ   rØ   rÞ   rß   r   rà   r   )r6   r7   r8   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   rF   rÛ   rX   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·   rX   rF   rÛ   rÝ   )r6   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   rQ   r‹   r!   r   )r6   râ   rã   r×   rä   rå   ræ   s          r*   Útest_nonequal_timestepsz TestLsim.test_nonequal_timesteps  si   € Ü�H‰HÒ)Ó*ˆÜ�H‰HÒ)Ó*ˆà�%˜#˜s˜Ð$ˆÜœ:Ø!EöGä˜f a¨°¨uÔ5‰JˆD�!�Q÷G÷ Gñ Gú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   ©r6   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à   ©r6   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_initial4  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_integratorH  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_orderO  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ê   rP   rc   rb   ©rÜ   rö   ©r   ©r6   r×   rä   rå   s       r*   Útest_array_likezTestImpulse.test_array_likeX  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ê   rP   rc   r  r   r!  s       r*   Útest_array_like2zTestImpulse.test_array_like2_  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_ordere  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  rX   )r   rÞ   r   r   r   rà   r  s          r*   r  z$TestStep.test_first_order_fixed_timem  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Û   rX   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ê   rX   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ê   rc   rb   r  ©r   r!  s       r*   r"  zTestStep.test_array_like   s"   € à�%šÐ)ˆä�v ! Q Ô(‰ˆ‰ar,   c                 ó"   — t        g dgdf«       y )NrZ   y      ð?        r0  ©r6   s    r*   Útest_complex_inputzTestStep.test_complex_input¦  s   € ô 	ˆb�2�$˜ÐÕr,   N)r—   r˜   r™   rè   r  r  r  rñ   rë   r"  r3  rš   r,   r*   r&  r&  d  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 )NrX   rZ   rP   )	r   Ú
isinstancer   r   Údtr   rQ   r   r   ©r6   Ú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*   r5  r5  ­  s   „ ór,   r5  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«      «       y )NrX   rF   rP   rB   r   )r   r   rQ   r2  s    r*   Útest_initializationz"TestStateSpace.test_initializationÊ  sy   € ä�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°!°°£õ	8r,   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 )NrX   rF   rP   rB   )r   r7  Úto_ssÚto_tfr   Úto_zpkr   r9  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 )NrX   r¨   r·   )r   r   Úpolesrž   r8  r9  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*   ÚBadTyperJ  é  s   „ Ør,   rK  rI   gffffffæ?rÉ   gš™™™™™é¿rX   r   rH   gš™™™™™¹¿gš™™™™™Ù?çš™™™™™¹?gš™™™™™É?éd   rF   )rõ   rö   gñhãˆµøä>)r&   rP   rB   ro   )r   r   rQ   Úto_discreterÞ   rß   ÚintÚfloatÚcomplexÚfloat32Ú
complex128r   r   r‹   Ú	TypeErrorr!   r8  )r6   rK  Ús1Ús2Ú
s_discreteÚs2_discreteÚs3_discreterâ   rã   Útypr:  s              r*   Útest_operatorszTestStateSpace.test_operatorsæ  sR  € ÷	ñ 	ô œŸ™ 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“˜’÷ *Ð)ð Nô 	œ˜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™   r?  rD  rG  r[  rš   r,   r*   r=  r=  É  s   „ ò8ò	"òó~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 ©NrX   rF   )r   r   rQ   r2  s    r*   r?  z(TestTransferFunction.test_initializationg  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 )NrX   r   rZ   )r   r7  rA  r   rB  rC  r   r9  s     r*   rD  z$TestTransferFunction.test_conversionm  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 )NrX   r   rZ   r¨   r·   )r   r   rF  rž   r9  s     r*   rG  z$TestTransferFunction.test_propertiesx  s8   € ô
 ˜a ˜V a¨ WÓ-ˆÜ˜Ÿ™ " Ô&Ü˜Ÿ™ " Õ&r,   N)r—   r˜   r™   r?  rD  rG  rš   r,   r*   r]  r]  f  s   „ ò7ò	"ó'r,   r]  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 r_  )r   r   rQ   r2  s    r*   r?  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 )NrX   rF   rP   )r   r7  rA  r   rB  r   rC  r9  s     r*   rD  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™   r?  rD  rš   r,   r*   rc  rc  ‚  s   „ ò8ó	#r,   rc  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y)ÚTest_abcd_normalizer¨   r«   r©   rÅ   r¾   rª   ç      @c                 ó,   — t        t        t        «       y ©N)r‹   r!   r   r2  s    r*   Útest_no_matrix_failsz(Test_abcd_normalize.test_no_matrix_failsœ  s   € Ü”j¤.Õ1r,   c           
      óì   — t        t        t        |j                  ddg«      |j                  | j                  «      |j                  | j
                  «      |j                  | j                  «      «       y )NrX   rZ   )r‹   r!   r   Úasarrayr8   r±   r²   ©r6   Úxps     r*   Útest_A_nosquare_failsz)Test_abcd_normalize.test_A_nosquare_failsŸ  sL   € Ü”j¤.°"·*±*¸aÀ¸WÓ2EØ—j‘j §¡Ó(¨"¯*©*°T·V±VÓ*<¸b¿j¹jÈÏÉÓ>Põ	Rr,   c           
      óì   — t        t        t        |j                  | j                  «      |j                  ddg«      |j                  | j
                  «      |j                  | j                  «      «       y ©NrZ   rc   ©r‹   r!   r   rm  r7   r±   r²   rn  s     r*   Útest_AB_mismatch_failsz*Test_abcd_normalize.test_AB_mismatch_fails£  óL   € Ü”j¤.°"·*±*¸T¿V¹VÓ2DØ—j‘j " a Ó)¨2¯:©:°d·f±fÓ+=¸r¿z¹zÈ$Ï&É&Ó?Qõ	Sr,   c           
      óð   — t        t        t        |j                  | j                  «      |j                  | j
                  «      |j                  dgdgg«      |j                  | j                  «      «       y )NrÅ   rª   )r‹   r!   r   rm  r7   r8   r²   rn  s     r*   Útest_AC_mismatch_failsz*Test_abcd_normalize.test_AC_mismatch_fails§  sP   € Ü”j¤.°"·*±*¸T¿V¹VÓ2DØ—j‘j §¡Ó(¨"¯*©*°s°e¸c¸U°^Ó*DØ—j‘j §¡Ó(õ	*r,   c                 óì   — t        t        t        |j                  | j                  «      |j                  | j
                  «      |j                  | j                  «      |j                  ddg«      «       y )Nrh  r   )r‹   r!   r   rm  r7   r8   r±   rn  s     r*   Útest_CD_mismatch_failsz*Test_abcd_normalize.test_CD_mismatch_fails¬  sL   € Ü”j¤.°"·*±*¸T¿V¹VÓ2DØ—j‘j §¡Ó(¨"¯*©*°T·V±VÓ*<¸b¿j¹jÈ#ÈqÈÓ>Rõ	Tr,   c           
      óì   — t        t        t        |j                  | j                  «      |j                  ddg«      |j                  | j
                  «      |j                  | j                  «      «       y rr  rs  rn  s     r*   Útest_BD_mismatch_failsz*Test_abcd_normalize.test_BD_mismatch_fails°  ru  r,   c                 ó  — t        |j                  | j                  | j                  | j                  | j
                  f«      \  }}}}t        ||||¬«      \  }}}}	t        ||«       t        ||«       t        ||«       t        |	|«       y )N)r7   r8   r±   r²   )Úmaprm  r7   r8   r±   r²   r   r   )
r6   ro  ÚA_ÚB_ÚC_ÚD_r7   r8   r±   r²   s
             r*   Ú"test_normalized_matrices_unchangedz6Test_abcd_normalize.test_normalized_matrices_unchanged´  ss   € Ü˜RŸZ™Z¨$¯&©&°$·&±&¸$¿&¹&À$Ç&Á&Ð)IÓJ‰ˆˆB��BÜ# b¨B°"¸Ô;‰
ˆˆ1ˆa�Ü˜˜2ÔÜ˜˜2ÔÜ˜˜2ÔÜ˜˜2Õr,   c                 ó  — t        |j                  | j                  «      |j                  | j                  «      |j                  ddg«      |j                  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 )NrX   r   )r   rm  r7   r8   r   )r6   ro  r7   r8   r±   r²   s         r*   r¦   zTest_abcd_normalize.test_shapes¼  sã   € Ü# B§J¡J¨t¯v©vÓ$6¸¿
¹
À4Ç6Á6Ó8JØ$&§J¡J°°1¨vÓ$6¸¿
¹
À1»óG‰
ˆˆ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                 óp  — |j                  | j                  «      }|j                  d«      }|j                  d«      }t        |||¬«      \  }}}}t	        ||«       t	        ||«       t	        ||«       |j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚y )N©rF   r   )r   r   ©r7   r8   r²   r   rX   ©rm  r7   rž   r   r   r   ©	r6   ro  r~  r  r�  r7   r8   r±   r²   s	            r*   Ú test_zero_dimension_is_not_none1z4Test_abcd_normalize.test_zero_dimension_is_not_none1Å  ó    € Ø�Z‰Z˜Ÿ™ÓˆØ�X‰X�fÓˆØ�X‰X�fÓˆÜ# 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                 óp  — |j                  | j                  «      }|j                  d«      }|j                  d«      }t        |||¬«      \  }}}}t	        ||«       t	        ||«       t	        ||«       |j
                  d   |j
                  d   k(  sJ ‚|j
                  d   |j
                  d   k(  sJ ‚y )Nr…  )r   rF   ©r7   r8   r±   r   rX   r‡  ©	r6   ro  r~  r  r€  r7   r8   r±   r²   s	            r*   Ú test_zero_dimension_is_not_none2z4Test_abcd_normalize.test_zero_dimension_is_not_none2Ð  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 )N)r8   r±   r²   r   rX   )r}  rm  r8   r±   r²   r   r   )	r6   ro  r  r€  r�  r7   r8   r±   r²   s	            r*   Útest_missing_Az"Test_abcd_normalize.test_missing_AÛ  ó¤   € Ü˜Ÿ™ 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                 ó~  — 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)r7   r±   r²   r   rX   )r}  rm  r7   r±   r²   r   r   )	r6   ro  r~  r€  r�  r7   r8   r±   r²   s	            r*   Útest_missing_Bz"Test_abcd_normalize.test_missing_Bâ  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   rX   )r}  rm  r7   r8   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   rX   )r}  rm  r7   r8   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   rX   )r}  rm  r±   r²   r   r   )r6   ro  r€  r�  r7   r8   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)r8   r²   r   rX   )r}  rm  r8   r²   r   r   )r6   ro  r  r�  r7   r8   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)r8   r±   r   rX   )r}  rm  r8   r±   r   r   )r6   ro  r  r€  r7   r8   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)r7   r²   r   rX   )r}  rm  r7   r²   r   r   )r6   ro  r~  r�  r7   r8   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   rm  r²   rn  s     r*   Útest_missing_ABC_failsz*Test_abcd_normalize.test_missing_ABC_fails  s   € Ü”j¤.°B·J±J¸t¿v¹vÓ4FÖGr,   c                 ó–   — t        t        t        |j                  | j                  «      |j                  | j
                  «      ¬«       y )N)r7   r±   )r‹   r!   r   rm  r7   r±   rn  s     r*   Útest_missing_BD_failsz)Test_abcd_normalize.test_missing_BD_fails!  ó-   € Ü”j¤.°B·J±J¸t¿v¹vÓ4FØŸ
™
 4§6¡6Ó*ö	,r,   c                 ó–   — t        t        t        |j                  | j                  «      |j                  | j
                  «      ¬«       y )N)r7   r8   )r‹   r!   r   rm  r7   r8   rn  s     r*   Útest_missing_CD_failsz)Test_abcd_normalize.test_missing_CD_fails%  r¥  r,   N)r—   r˜   r™   r7   r8   r±   r²   rk  rp  rt  rw  ry  r{  r‚  r¦   r‰  rŽ  r�  r“  r•  r—  r™  r›  rž  r   r¢  r¤  r§  rš   r,   r*   rg  rg  •  s£   „ à
ˆsˆ�c˜3�ZÐ €AØ
ˆ�#�ˆ€AØ
ˆsˆˆ€AØ
ˆˆ€Aò2òRòSò*ò
TòSòò(ò	)ò	)ò5ò5ò5ò5ò5ò5ò5ò5òHò,ó,r,   rg  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 )NrX   ©rL  rX   r_   rM  ©r•   )r   rY   re   rk   rî   ©r   r   r   )r6   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 )NrX   ©rL  rX   r_   r¬  )gÍÌÌÌÌÌÀiÓÿÿÿg33333UÀrî   r­  )r6   r×   r•   r®  r¯  Úexpected_phases         r*   Útest_02zTest_bode.test_02:  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 )NrX   r«  r¬  ù              ð?g      4@)	r   r   r   Úpolyvalrº   r»   Úlog10Úabsr   )r6   r×   r•   r®  r¯  Újwrå   r°  s           r*   Útest_03zTest_bode.test_03F  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 )NrX   r«  r¬  r·  g     €f@)r   r   r   r¸  rº   r»   Úarctan2r   r   Úpir   )r6   r×   r•   r®  r¯  r»  rå   r´  s           r*   Útest_04zTest_bode.test_04Q  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 ©NrX   r_   ro   ©r  )r   r   Úlogspacer   r   )r6   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 ©NrX   r   rF   rÃ  g{®Gáz„?©r   r   ©r6   r×   r•   r®  r¯  s        r*   Útest_06zTest_bode.test_06f  s8   € ô �a�S˜1˜a˜&Ó!ˆÜ˜V qÔ)‰ˆˆ3�Ø�‰t�tŠ|Ð‰|r,   c                 óD   — t        dgg d¢«      }t        |d¬«      \  }}}y )NrX   )rX   r   rM  rF   rÃ  rÉ  rÊ  s        r*   Útest_07zTest_bode.test_07m  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^   rf   rk   rl   rm   rX   rY   rg   rM  r¬  i>þÿÿé   rî   )r   r   r   rÄ  r   ÚminrÊ  s        r*   Útest_08zTest_bode.test_08s  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·   rN   rM  rÃ  é   rb   )r   rQ   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_spacezTest_bode.test_from_state_spacey  sé   € ô �H‰HÒ)Ó*ˆÜ×Ñ˜QÓ×!Ñ!ˆÜ�H‰H�s�e˜c˜U S EÐ*Ó+ˆÜ�H‰H’oÐ&Ó'ˆÜ�H‰H�s�e�WÓˆÜ×$Ñ$Õ&Ü×!Ñ! (¬OÔ<Ü˜˜A˜q !“_ˆFÜ  ¨3Ô/‰MˆAˆs�E÷ 'ð
  ¤"§(¡(¬2¯7©7°3¸#ÀÀ1Á¹*Ñ3EÓ+FÓ"GÑGÐÜ˜CÐ!3Õ4÷ 'Ð&ú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 )NrX   r³  r¬  )g®Gáz®ï?rí   gõÛ×�sF„?)çòÒMbX¹¿rI   rÝ  rî   ©r   r   r   r   r   )r6   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 )NrX   r«  r¬  r·  )	r   r   r   r¸  rº   r»   r   r   r   ©r6   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   )r6   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   )r6   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Ô  rN   rM  rÃ  r·  rF   rP   )r   rQ   r0   rÖ  rö   r�   rŽ   r�   r   r   r   r   r   r   )r6   r°   r7   r8   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 )NrZ   rB   rX   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 rj  )r7  r   Úfloat64r   )rí  s    r*   Ú test_subscriptable_generic_typesrð  Ù  s   € ô �cœ"Ÿ*™*‘o¤|Ô4Ð4Ñ4r,   )ç:Œ0âŽyE>rñ  )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  r&  r5  r=  r]  rc  rg  r©  rÛ  ÚmarkÚparametrizerð  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ñ ÷8[ñ [÷z'ñ '÷8#ñ #ñ& �>Ó"÷Q,ð Q,ó #ðQ,÷ha5ñ a5÷HI3ñ I3ðV ‡�×ÑØ	ˆJÐ(¨.¸#¸tÐDóñ5óñ5r,   