§
    ¢éUg˜°  ã                   óÖ  — d dl Z d dlZd dlmZmZmZmZmZ d dl	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( G d„ d¦  «        Z) G d„ d¦  «        Z* G d„ d¦  «        Z+dS )!é    N)Úassert_almost_equalÚassert_equalÚassert_allcloseÚassert_Úsuppress_warnings)Úraises)Úss2tfÚtf2ssÚltiÚdltiÚbodeÚfreqrespÚlsimÚimpulseÚstepÚabcd_normalizeÚplace_polesÚTransferFunctionÚ
StateSpaceÚZerosPolesGain)ÚBadCoefficientsç:Œ0âŽyE>c           
      óî  — |                      ¦   «         }| D ]Ý}d}t          |j        d         ¦  «        D ]Š}t          j        t          j        |¦  «        t          j        |¦  «        gt          j        ||         ¦  «        t          j        ||         ¦  «        g||¦  «        rd}t          j        ||¦  «          nŒ‹|s2t          dt          |¦  «        z   dz   t          |¦  «        z   ¦  «        ‚ŒÞdS )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          ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/signal/tests/test_ltisys.pyÚ_assert_poles_closer,      s  € ð 
�Š‰Œ€BØð 
Nð 
NˆØˆÝ˜BœH QœKÑ(Ô(ð 	ð 	ˆFÝŒ{�BœG B™KœK­¬°©¬Ð5ÝœG B v¤JÑ/Ô/µ´¸¸F¼Ñ1DÔ1DÐEØ ñ'ô 'ð ð �Ý”	˜"˜fÑ%Ô%Ð%Ø�ðð ð 	NÝÐ/µ#°b±'´'Ñ9¸FÑBÅSÈÁWÄWÑLÑMÔMÐMð	Nð
Nð 
Nó    c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestPlacePolesc                 ó  — t          |||fi |¤Ž}t          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'   s…   € õ
 ˜!˜Q Ð,Ð, VÐ,Ð,ˆÝ”i—m’m A­¬¨q°#´/Ñ(BÔ(BÑ$BÑCÔC‰ˆ�!Ý˜H cÔ&9Ñ:Ô:Ð:Ý˜H cÔ&8Ñ9Ô9Ð9Ý˜A˜cÔ1Ñ2Ô2Ð2Øˆ
r-   c                 óÈ  — t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «        }|                      |||d¬¦  «         |                      |||d¬¦  «         t          j        d	¬
¦  «        5  |                      ||d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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_real3   s7  € õ ŒHð %ð %ð %ñ &ô &ç&-¢g¨a°¡m¤mð 	
õ ŒHÐ=Ð=Ð=Ñ>Ô>×FÒFÀqÈ!ÑLÔLˆÝŒHÐ3Ð3Ð3Ñ4Ô4ˆð 	�Š�A�q˜! FˆÑ+Ô+Ð+Ø�Š�A�q˜! DˆÑ)Ô)Ð)õ Œ[ Ð*Ñ*Ô*ð 	)ð 	)Ø�KŠK˜˜1˜iÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   Â2CÃ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  |                      |||¦  «         d d d ¦  «         n# 1 swxY w Y   g d	¢}t          j        dd¬¦  «        5  |                      |||d
¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «                             dd¦  «        }g d¢}|                      |||¦  «         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  |                      |||¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢}|                      |d d…d d…f         |d d…d d…f         |¦  «         g d¢}|                      |d d…d d…f         |d d…d d…f         |¦  «         t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «        }t          j        dd¬¦  «        5  t          |||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }t          j        dd¬¦  «        5  |                      |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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_complexI   sG  € õ ŒH�l�l�lØ%�o�oØ"�l�lØ"�l�lð$ñ %ô %ˆõ ŒH�q˜!�fØ˜!�fØ˜!�fØ˜!�fðñ ô ˆõ
 ŒHÐ+Ð+Ð+Ñ,Ô,ˆõ Œ[ °(Ð;Ñ;Ô;ð 	!ð 	!Ø�KŠK˜˜1˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð %Ð$Ð$ˆÝŒ[ °(Ð;Ñ;Ô;ð 	/ð 	/Ø�KŠK˜˜1˜a¨ˆKÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/õ ŒHðGð Gð Gñô ÷
 ’W˜Q˜q‘\”\ð 	
õ ŒHð(ð (ð (ñô ÷
 ’w˜q ‘|”|ð 	
ð KÐJÐJˆØ�Š�A�q˜!ÑÔÐõ
 ”˜Ñ Ô ¥¤¨¡¤Ñ+ˆÝ”˜Ñ Ô ¥¤¨!¨¨R©°Ñ!2Ô!2°1°1°1°Q°R°R°4Ô!8Ñ8ˆØˆˆbˆqˆb��!�ˆe‰Øˆˆbˆqˆb��!�ˆe‰à=Ð=Ð=ˆÝŒ[ °(Ð;Ñ;Ô;ð 	)ð 	)Ø�KŠK˜˜u aÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 7Ð6Ð6ˆØ�Š�E˜#˜2˜#˜c˜r˜c˜'”N E¨#¨2¨#¨c¨r¨c¨'¤N°AÑ6Ô6Ð6ð6ð 6ð 6ˆà�Š�E˜#˜2˜#˜c˜r˜c˜'”N E¨#¨2¨#¨c¨r¨c¨'¤N°AÑ6Ô6Ð6õ ŒHð )ð )ð )ñ *ô *ß*1ª'°!°A©,¬,ð 	
åŒHÐ*Ð*Ð*Ñ+Ô+×3Ò3°A°aÑ8Ô8ˆÝŒHÐ5Ð5Ð5Ñ6Ô6ˆÝŒ[ °(Ð;Ñ;Ô;ð 	!ð 	!Ý˜˜1˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!õ
 ŒHÐ/Ð/Ð/Ñ0Ô0ˆÝŒ[ °(Ð;Ñ;Ô;ð 	!ð 	!Ø�KŠK˜˜1˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!sZ   Á-BÂBÂBÂ6CÃC Ã#C Ç)HÈHÈHË>LÌL Ì#L ÍM8Í8M<Í?M<c                 ó@  — t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «        }|                      |||¦  «        }t	          |j        t           j        ¦  «         t	          |j        t           j        ¦  «         t          j        d¦  «        }|                      |||¦  «        }t	          |j        t           j        ¦  «         t	          |j        t           j        ¦  «         |d d …df                              dd¦  «        }t          j        d¦  «        }|                      |||¦  «        }t	          |j        d¦  «         t	          |j        d¦  «         d S )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?   r   r&   ÚnanÚnb_iter)r7   r8   r9   r:   r<   s        r+   Útest_tricky_BzTestPlacePoles.test_tricky_B™   s~  € õ ŒHð %ð %ð %ñ &ô &ç&-¢g¨a°¡m¤mð 	
õ ŒHð "ð "ð "ñ #ô #ß#*¢7¨1¨a¡=¤=ð 	
õ
 ŒHÐ3Ð3Ð3Ñ4Ô4ˆØ�kŠk˜!˜Q Ñ"Ô"ˆõ 	�S”X�rœvÑ&Ô&Ð&Ý�S”[¥"¤&Ñ)Ô)Ð)õ ŒHÐ(Ñ)Ô)ˆØ�kŠk˜!˜Q Ñ"Ô"ˆÝ�S”X�rœvÑ&Ô&Ð&Ý�S”[¥"¤&Ñ)Ô)Ð)ð ˆaˆaˆa�ˆcŒF�NŠN˜1˜QÑÔˆÝŒHÐ(Ñ)Ô)ˆØ�kŠk˜!˜Q Ñ"Ô"ˆõ 	�S”X˜qÑ!Ô!Ð!Ý�S”[ !Ñ$Ô$Ð$Ð$Ð$r-   c           
      óÊ  — t          j        g d¢¦  «                             dd¦  «        }t          j        g d¢¦  «                             dd¦  «        }t          t          t
          ||dd¬¦  «         t          t          t
          ||t          j        d¦  «                             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          t          |¦  «        dk    ¦  «         t          t          |d         j        t          ¦  «        ¦  «         t          dt!          |d         j        ¦  «        v ¦  «         t%          |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   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¬¦  «         d S ) 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Úsimplefilterr   ÚlenÚ
issubclassÚcategoryÚUserWarningr#   Úmessager   r}   )r7   r8   r9   Úwr<   s        r+   Útest_errorszTestPlacePoles.test_errors»   s„  € åŒHÐ9Ð9Ð9Ñ:Ô:×BÒBÀ1ÀQÑGÔGˆÝŒHÐ&Ð&Ð&Ñ'Ô'×/Ò/°°!Ñ4Ô4ˆõ 	•j¥+¨q°!Ð5JØ"ð	$ñ 	$ô 	$ð 	$õ 	•j¥+¨q°!Ý”hÐ4Ñ5Ô5×=Ò=¸aÀÑBÔBñ	Dô 	Dð 	Dõ 	•j¥+¨q°°°°1°1°1µR´Z°Ô/@À!Ø+ñ	-ô 	-ð 	-õ 	•j¥+¨q°!°A°A°A°a°a°a½¼
°NÔ2CØ+ñ	-ô 	-ð 	-õ 	•j¥+¨q°!Ð5MÑNÔNÐNõ 	•j¥+¨q°!Ð5EÑFÔFÐFõ 	•j¥+¨q°!Ð5JØð	ñ 	ô 	ð 	õ 	•j¥+¨q°!Ð5JØ!ð	#ñ 	#ô 	#ð 	#õ 	•j¥+¨q°!°]ÑCÔCÐCõ 	•j¥+­r¬w°u©~¬~Ý”g˜e‘n”n iñ	1ô 	1ð 	1õ
 Ô$¨DÐ1Ñ1Ô1ð 	*°QÝÔ! (Ñ+Ô+Ð+Ý˜a  M¸ÀrÐJÑJÔJˆCÝ•C˜‘F”F˜a’KÑ Ô Ð Ý•J˜q œuœ~­{Ñ;Ô;Ñ<Ô<Ð<ÝÐJÝ˜1˜Rœ5œ=Ñ)Ô)ð*ñ +ô +ð +å˜œ bÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ 	•j¥+¨q°!Ð5KÑLÔLÐLõ 	•j¥+¨q°°°°2°A°2°¬w¸¸=ÑIÔIÐIõ 	•j¥+¨q°!°B°Q°B°q°q°q°D´'¸=ÑIÔIÐIõ 	•j¥+¨q°!Ø/¸ð	@ñ 	@ô 	@ð 	@ð 	@ð 	@s   È
B4K
Ë
KËKN)Ú__name__Ú
__module__Ú__qualname__r?   rU   ry   r~   r—   © r-   r+   r/   r/   %   sn   € € € € € ð
ð 
ð 
ð)ð )ð )ð,N!ð N!ð N!ð` %ð  %ð  %ðD@@ð @@ð @@ð @@ð @@r-   r/   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú	TestSS2TFc           	      óÌ   — t          t          j        ||f¦  «        t          j        ||f¦  «        t          j        ||f¦  «        t          j        ||f¦  «        d¦  «         d S )Nr   )r	   r   Úzeros©r7   ÚpÚqÚrs       r+   Úcheck_matrix_shapeszTestSS2TF.check_matrix_shapes   sc   € Ý�bŒh˜˜1�vÑÔÝŒh˜˜1�vÑÔÝŒh˜˜1�vÑÔÝŒh˜˜1�vÑÔ ñ	#ô 	#ð 	#ð 	#ð 	#r-   c                 óF   — dD ]\  }}}|                       |||¦  «         Œd S )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                 ó´  — 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¬¦  «         d S )N)ç      ð?ç      @ç      @)r©   ç       @rª   rp   rZ   rY   r   ç‚vIhÂ%<=r†   rG   ç›+¡†›„=)r   rR   r
   r   r	   )	r7   ÚbÚar8   r9   ÚCÚDÚbbÚaas	            r+   Ú
test_basiczTestSS2TF.test_basic  sû   € åŒH�_�_�_Ñ%Ô%ˆÝŒH�_�_�_Ñ%Ô%ˆå˜1˜a‘[”[‰
ˆˆ1ˆa�Ý˜˜R ˜H q¨! fÐ-°EÐ:Ñ:Ô:Ð:Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2Ý˜˜Q ˜F˜8¨%Ð0Ñ0Ô0Ð0Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-å�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¬¦  «         d S )N)rG   rY   r   r­   r†   rG   rY   rd   )r
   r   r	   ©r7   Útfr8   r9   r±   r²   ÚnumÚdens           r+   Útest_zero_order_round_tripz$TestSS2TF.test_zero_order_round_trip  s­  € àˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜q !˜f˜X¨EÐ2Ñ2Ô2Ð2Ý˜˜a ˜V¨%Ð0Ñ0Ô0Ð0àˆs�Q�Cˆj˜!ˆ_ˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜q !˜f q¨! fÐ-°EÐ:Ñ:Ô:Ð:Ý˜˜a ˜V¨%Ð0Ñ0Ô0Ð0Ð0Ð0r-   c                 óv  — 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¬¦  «         d S )NrY   rG   rp   r­   r†   r   r[   )rY   r   rY   r¦   )rY   rG   rQ   r‡   )rp   rZ   rs   )rY   r   r   ©r   rY   r   )r   rY   rG   rQ   rQ   )Údtyperc   iúÿÿÿg€h‰eÖ9€9i÷ÿÿÿrZ   )rY   rc   rd   r‹   rs   )r   rY   rZ   )r
   r   r	   r   rR   Úobjectr·   s           r+   Útest_simo_round_tripzTestSS2TF.test_simo_round_trip3  só  € à�1ˆv˜˜1�vÐ  A Ð'ˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜R˜D˜6¨Ð.Ñ.Ô.Ð.Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C " ˜;¨UÐ3Ñ3Ô3Ð3Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜q !˜f q¨! fÐ-°EÐ:Ñ:Ô:Ð:Ý˜˜a ˜V¨%Ð0Ñ0Ô0Ð0àˆyˆy˜)˜)˜)Ð$ i i iÐ0ˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜R ˜H q¨! fÐ-°EÐ:Ñ:Ô:Ð:Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2Ý˜˜R ˜G a¨ VÐ,°5Ð9Ñ9Ô9Ð9Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜i˜i˜i¨¨¨Ð3¸%Ð@Ñ@Ô@Ð@Ý˜˜Y˜Y˜Y¨UÐ3Ñ3Ô3Ð3àˆyˆy˜)˜)˜)Ð$ l l lÐ3ˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜L˜L˜L¨)¨)¨)°Y°Y°YÐ?ÀeÐLÑLÔLÐLÝ˜˜Q˜C !  q c˜?°Ð7Ñ7Ô7Ð7Ý˜˜I˜I˜I y y yÐ1¸Ð>Ñ>Ô>Ð>Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜l˜l˜l¨L¨L¨LÐ9ÀÐFÑFÔFÐFÝ˜˜\˜\˜\°Ð6Ñ6Ô6Ð6åŒh˜˜A˜q˜6�{­&Ð1Ñ1Ô1°A°q°6Ð:ˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜R˜D˜6¨Ð.Ñ.Ô.Ð.Ý˜˜Q˜C˜5 uÐ-Ñ-Ô-Ð-Ý˜˜Q˜C " ˜;¨UÐ3Ñ3Ô3Ð3Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜q !˜f q¨! fÐ-°EÐ:Ñ:Ô:Ð:Ý˜˜a ˜V¨%Ð0Ñ0Ô0Ð0åŒh˜˜B˜   Ð+µ6Ð:Ñ:Ô:¸I¸I¸IÐFˆÝ˜B�Z‰
ˆˆ1ˆa�Ý˜˜R ˜H q¨! fÐ-°EÐ:Ñ:Ô:Ð:Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2Ý˜˜Q ˜G b¨" XÐ.°UÐ;Ñ;Ô;Ð;Ý˜˜Q˜C ! ˜:¨EÐ2Ñ2Ô2Ð2å˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜˜j˜j˜j¨)¨)¨)Ð4¸5ÐAÑAÔAÐAÝ˜˜Y˜Y˜Y¨UÐ3Ñ3Ô3Ð3Ð3Ð3r-   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¬¦  «         d S )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   )r7   r8   r9   r±   r²   r¹   rº   s          r+   Útest_all_int_arrayszTestSS2TF.test_all_int_arraysl  s™   € ØˆYˆY˜	˜	˜	 < < <Ð0ˆØˆS�1�#˜�sˆOˆØˆYˆYˆKˆØˆSˆEˆÝ˜˜A˜q !Ñ$Ô$‰ˆˆSÝ˜Ð2Ð2Ð2Ð3¸%ÀeÐLÑLÔLÐLÝ˜Ð1Ð1Ð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¬¦  «         d S )N)ç      ð¿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_multioutputu  s¨  € õ ŒHÐ+Ð+Ð+Ø+Ð+Ð+Ø+Ð+Ð+Ø+Ð+Ð+ð-ñ .ô .ˆõ ŒH�s�eØ�eØ�eØ�eðñ ô ˆõ Œ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¨"¨b°"¨Ñ6Ô6¸UÈÐOÑOÔOÐOÐOÐOr-   N)
r˜   r™   rš   r¤   r§   rµ   r»   rÀ   rÅ   rÒ   r›   r-   r+   r�   r�   þ   sƒ   € € € € € ð#ð #ð #ð.ð .ð .ð+ð +ð +ð1ð 1ð 1ð074ð 74ð 74ðr?ð ?ð ?ð$Pð $Pð $Pð $Pð $Pr-   r�   c                   óN   — 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dS )ÚTestLsimrW   c                 ó˜   — t          ¦   «         5 }|                     t          ¦  «         t          |Ž }d d d ¦  «         n# 1 swxY w Y   |S ©N)r   Úfilterr   r   )r7   ÚargsÚsupÚsystems       r+   Ú
lti_nowarnzTestLsim.lti_nowarnŸ  s‚   € ÝÑ Ô ð 	  CØ�JŠJ•Ñ'Ô'Ð'Ý˜$�ZˆFð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ˆs   �$?¿AÁAc                 ó"  — |                       dddd¦  «        }t          j        dd¦  «        }t          j        |¦  «        }t	          |||dg¬¦  «        \  }}}t          j        | ¦  «        }t          ||¦  «         t          ||¦  «         d S ©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¥  sŽ   € ð —’  R¨¨2Ñ.Ô.ˆÝŒK˜˜!ÑÔˆÝŒM˜!ÑÔˆÝ˜& ! Q¨C¨5Ð1Ñ1Ô1‰
ˆˆa�Ý”V˜T˜E‘]”]ˆ
Ý˜A˜zÑ*Ô*Ð*Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó(  — t          j        ddd¦  «        }t          j        |¦  «        }|                      dgg d¢¦  «        }t	          |||ddg¬¦  «        \  }}}d|z
  t          j        | ¦  «        z  }t          |d d …df         |¦  «         d S )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°  s™   € ÝŒK˜˜2˜tÑ$Ô$ˆÝŒM˜!ÑÔˆð —’ # ¨¨¨Ñ8Ô8ˆÝ˜& ! Q¨C°¨:Ð6Ñ6Ô6‰
ˆˆa�Ø˜D‘j¥B¤F¨D¨5¡M¤MÑ1ˆ
Ý˜A˜a˜a˜a ˜dœG ZÑ0Ô0Ð0Ð0Ð0r-   c                 óú   — |                       dddd¦  «        }t          j        dd¦  «        }|}t          |||¦  «        \  }}}d|dz  z  }t	          ||| j        ¬¦  «         t	          ||| j        ¬¦  «         d S )NrÂ   r©   r   rd   ç      à?rG   ©Údecimal)rÛ   r   rá   r   r   Údigits_accuracyrä   s           r+   Útest_integratorzTestLsim.test_integrator»  s‰   € à—’  R¨¨RÑ0Ô0ˆÝŒK˜˜!ÑÔˆØˆÝ˜& ! QÑ'Ô'‰
ˆˆa�Ø˜4 ™7‘]ˆ
Ý˜A˜z°4Ô3GÐHÑHÔHÐHÝ˜A˜z°4Ô3GÐHÑHÔHÐHÐHÐHr-   c                 ó   — 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¦  «        }|                      ||||¦  «        }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         |¦  «         d S )NrÇ   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�t˜S�k C¨ ;Ð/Ñ0Ô0ˆÝŒH�s˜C�j 3¨ *Ð-Ñ.Ô.ˆÝŒH�c˜3�ZÑ Ô ˆÝŒH�VÑÔˆà—’  A q¨!Ñ,Ô,ˆåŒK˜˜4 Ñ$Ô$ˆÝŒH•c˜!‘f”f˜a�[Ñ!Ô!ˆÝ˜& A¨°°S¨zÐ:Ñ:Ô:‰
ˆˆa�Ý”V˜T˜E‘]”]ˆ
Ý”f˜d˜U‘m”mˆÝ”f˜T D™[Ñ)Ô)ˆÝ˜A˜zÑ*Ô*Ð*Ý˜A˜a˜a˜a ˜dœG [Ñ1Ô1Ð1Ý˜A˜a˜a˜a ˜dœG [Ñ1Ô1Ð1Ð1Ð1r-   c                 ó  — t          j        ddgddgg¦  «        }t          j        dgdgg¦  «        }t          j        ddgg¦  «        }|                      |||d¦  «        }t          j        dd¦  «        }t          j        |¦  «        }t          |||¦  «        \  }}}	t          j        t          j        d|dz  z  |g¦  «        ¦  «        }
|dz  }t          |	|
| j        ¬¦  «         t          ||| j        ¬¦  «         d S )	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�r˜2�h  R Ð)Ñ*Ô*ˆÝŒH�r�d˜R˜D�\Ñ"Ô"ˆÝŒH�r˜2�h�ZÑ Ô ˆØ—’  A q¨"Ñ-Ô-ˆÝŒK˜˜!ÑÔˆÝŒL˜‰OŒOˆÝ˜& ! QÑ'Ô'‰
ˆˆa�Ý”\¥"¤(¨C°$¸±'©M¸4Ð+@Ñ"AÔ"AÑBÔBˆ
Ø˜1‘Wˆ
Ý˜A˜z°4Ô3GÐHÑHÔHÐHÝ˜A˜z°4Ô3GÐHÑHÔHÐHÐHÐHr-   c                 óœ  — t          j        ddgddgg¦  «        }t          j        dgdgg¦  «        }t          j        ddgg¦  «        }|                      |||d¦  «        }t          j        dd¦  «        }t          j        |¦  «        }t          |||ddg¬¦  «        \  }}}	|t          j        | ¦  «        z  }
t          ||
¦  «         d S 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�s˜B�i " c Ð+Ñ,Ô,ˆÝŒH�r�d˜R˜D�\Ñ"Ô"ˆÝŒH�r˜2�h�ZÑ Ô ˆØ—’  A q¨"Ñ-Ô-ˆÝŒK˜˜!ÑÔˆÝŒM˜!ÑÔˆÝ˜& ! Q¨C°¨:Ð6Ñ6Ô6‰
ˆˆa�Ø�BœF D 5™MœMÑ)ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó   — 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¦  «        }|                      ||||¦  «        }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         |¦  «         d S )NrÇ   rÂ   rö   r©   r÷   r   r«   ée   rG   rÞ   rY   rû   rü   s                 r+   Ú	test_misozTestLsim.test_misoö  s<  € åŒH�t˜S�k C¨ ;Ð/Ñ0Ô0ˆÝŒH�s˜C�j 3¨ *Ð-Ñ.Ô.ˆÝŒH�c˜3�ZÑ Ô ˆÝŒH�U‰OŒOˆØ—’  A q¨!Ñ,Ô,ˆåŒK˜˜3 Ñ$Ô$ˆÝŒH•c˜!‘f”f˜a�[Ñ!Ô!ˆÝ˜& ! Q¨C°¨:Ð6Ñ6Ô6‰
ˆˆa�Ý”V˜T˜E‘]”]ˆ
Ý”f˜d˜U‘m”mˆÝ”f˜T $™YÑ'Ô'ˆÝ˜A˜zÑ*Ô*Ð*Ý˜A˜a˜a˜a ˜cœF KÑ0Ô0Ð0Ý˜A˜a˜a˜a ˜cœF KÑ0Ô0Ð0Ð0Ð0r-   c                 ó  — |                       dddd¦  «        }t          j        dd¦  «        }t          j        |¦  «        }t	          |||dg¬¦  «        \  }}}t          j        | ¦  «        }t          ||¦  «         d S )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  s|   € Ø—’  R¨¨2Ñ.Ô.ˆÝŒK˜˜!ÑÔˆÝŒM˜!ÑÔˆÝ˜& ! Q¨C¨5Ð1Ñ1Ô1‰
ˆˆa�Ý”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 ¦  «         d S # 1 swxY w Y   d S )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  sÝ   € ÝŒHÐ)Ð)Ð)Ñ*Ô*ˆÝŒHÐ)Ð)Ð)Ñ*Ô*ˆà�%˜#˜s˜Ð$ˆÝ�:Ø!EðGñ Gô Gð 	6ð 	6å˜f a¨°¨uÐ5Ñ5Ô5‰JˆD�!�Qð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   Á
A0Á0A4Á7A4N)r˜   r™   rš   ró   rÛ   rë   rî   rô   r   r  r  r	  r  r  r›   r-   r+   rÔ   rÔ   œ  sµ   € € € € € Ø€Oðð ð ð	+ð 	+ð 	+ð	1ð 	1ð 	1ðIð Ið Ið2ð 2ð 2ð&Ið Ið Ið+ð +ð +ð 1ð 1ð 1ð$+ð +ð +ð6ð 6ð 6ð 6ð 6r-   rÔ   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestImpulsec                 ó‚   — dgddgf}t          |¦  «        \  }}t          j        | ¦  «        }t          ||¦  «         d S ©Nr©   ©r   r   rã   r   ©r7   rÚ   rç   rè   rý   s        r+   rë   zTestImpulse.test_first_order  sH   € ð �%˜#˜c˜Ð#ˆÝ˜&‘/”/‰ˆˆaÝ”V˜T˜E‘]”]ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó  — dgddgf}d}t          j        dd|¦  «        }t          ||¬¦  «        \  }}t          |j        |f¦  «         t          ||¦  «         t          j        | ¦  «        }t          ||¦  «         d S )Nr©   rø   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#  s‹   € ð
 �%˜#˜c˜Ð#ˆØˆÝŒK˜˜3 Ñ"Ô"ˆÝ˜& AÐ&Ñ&Ô&‰ˆˆaÝ�T”Z ! Ñ&Ô&Ð&Ý˜D !Ñ$Ô$Ð$Ý”V˜Q˜B‘Z”Zˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 óŒ   — dgddgf}t          |d¬¦  «        \  }}dt          j        | ¦  «        z  }t          ||¦  «         d S ©Nr©   rª   rÞ   rÄ   r  r  s        r+   Útest_first_order_initialz$TestImpulse.test_first_order_initial1  sT   € ð
 �%˜#˜c˜Ð#ˆÝ˜& SÐ)Ñ)Ô)‰ˆˆaØ�2œ6 4 %™=œ=Ñ(ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 óŽ   — dgddgf}t          |dg¬¦  «        \  }}dt          j        | ¦  «        z  }t          ||¦  «         d S r  r  r  s        r+   Útest_first_order_initial_listz)TestImpulse.test_first_order_initial_list;  sV   € ð
 �%˜#˜c˜Ð#ˆÝ˜& c UÐ+Ñ+Ô+‰ˆˆaØ�2œ6 4 %™=œ=Ñ(ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó€   — dgddgf}t          |¦  «        \  }}t          j        |¦  «        }t          ||¦  «         d S ©Nr©   rÂ   )r   r   r  r   r  s        r+   rô   zTestImpulse.test_integratorE  sF   € à�%˜#˜c˜Ð#ˆÝ˜&‘/”/‰ˆˆaÝ”\ $Ñ'Ô'ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 óˆ   — dgg d¢f}t          |¦  «        \  }}|t          j        | ¦  «        z  }t          ||¦  «         d S )Nr©   rí   r  r  s        r+   rî   zTestImpulse.test_second_orderL  sM   € ð �%˜˜˜Ð)ˆÝ˜&‘/”/‰ˆˆaØ�BœF D 5™MœMÑ)ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ór   — dgg d¢f}t          |dgddg¬¦  «        \  }}t          |dgdg¬¦  «        \  }}d S )Nr©   rí   rQ   rd   rc   ©rß   rú   ©r   ©r7   rÚ   rç   rè   s       r+   Útest_array_likezTestImpulse.test_array_likeU  sP   € à�%˜˜˜Ð)ˆå˜& a S¨Q°¨FÐ3Ñ3Ô3‰ˆˆaÝ˜& a S¨Q¨CÐ0Ñ0Ô0‰ˆˆaˆaˆar-   c                 ó>   — dgg d¢f}t          |dd¬¦  «        \  }}d S )Nr©   rí   rQ   rd   r#  r$  r%  s       r+   Útest_array_like2zTestImpulse.test_array_like2\  s.   € Ø�%˜˜˜Ð)ˆÝ˜& Q¨!Ð,Ñ,Ô,‰ˆˆaˆaˆar-   N)r˜   r™   rš   rë   r  r  r  rô   rî   r&  r(  r›   r-   r+   r  r    sŒ   € € € € € ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð1ð 1ð 1ð-ð -ð -ð -ð -r-   r  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestStepc                 óˆ   — dgddgf}t          |¦  «        \  }}dt          j        | ¦  «        z
  }t          ||¦  «         d S r  ©r   r   rã   r   r  s        r+   rë   zTestStep.test_first_orderb  sM   € ð �%˜#˜c˜Ð#ˆÝ�v‘,”,‰ˆˆaØ�2œ6 4 %™=œ=Ñ(ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó  — dgddgf}d}t          j        dd|¦  «        }t          ||¬¦  «        \  }}t          |j        |f¦  «         t          ||¦  «         dt          j        | ¦  «        z
  }t          ||¦  «         d S )Nr©   rø   r   r¬   r  rY   )r   rá   r   r   r   r   rã   r  s          r+   r  z$TestStep.test_first_order_fixed_timej  s�   € ð
 �%˜#˜c˜Ð#ˆØˆÝŒK˜˜3 Ñ"Ô"ˆÝ�v Ð#Ñ#Ô#‰ˆˆaÝ�T”Z ! Ñ&Ô&Ð&Ý˜D !Ñ$Ô$Ð$Ø�œ  ™œ‘^ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó’   — dgddgf}t          |d¬¦  «        \  }}ddt          j        | ¦  «        z  z   }t          ||¦  «         d S ©Nr©   rª   rÞ   rY   r¬   r,  r  s        r+   r  z!TestStep.test_first_order_initialx  sY   € ð
 �%˜#˜c˜Ð#ˆÝ�v #Ð&Ñ&Ô&‰ˆˆaØ˜�RœV T E™]œ]Ñ*Ñ*ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó”   — dgddgf}t          |dg¬¦  «        \  }}ddt          j        | ¦  «        z  z   }t          ||¦  «         d S r/  r,  r  s        r+   r  z&TestStep.test_first_order_initial_list‚  s[   € ð
 �%˜#˜c˜Ð#ˆÝ�v 3 %Ð(Ñ(Ô(‰ˆˆaØ˜�RœV T E™]œ]Ñ*Ñ*ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó\   — dgddgf}t          |¦  «        \  }}|}t          ||¦  «         d S r   )r   r   r  s        r+   rô   zTestStep.test_integratorŒ  s>   € ð �%˜˜S˜	Ð"ˆÝ�v‘,”,‰ˆˆaØˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó”   — dgg d¢f}t          |¦  «        \  }}dd|z   t          j        | ¦  «        z  z
  }t          ||¦  «         d S )Nr©   rí   rY   r,  r  s        r+   rî   zTestStep.test_second_order”  sV   € ð �%˜˜˜Ð)ˆÝ�v‘,”,‰ˆˆaØ˜!˜d™(¥b¤f¨d¨U¡m¤mÑ3Ñ3ˆ
Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó@   — dgg d¢f}t          |ddg¬¦  «        \  }}d S )Nr©   rí   rd   rc   r  ©r   r%  s       r+   r&  zTestStep.test_array_like�  s0   € à�%˜˜˜Ð)ˆå�v ! Q Ð(Ñ(Ô(‰ˆˆaˆaˆar-   c                 ó,   — t          g dgdf¦  «         d S )Nr[   y      ð?        r4  ©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&  r7  r›   r-   r+   r*  r*  a  sŒ   € € € € € ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð)ð )ð )ðð ð ð ð r-   r*  c                   ó   — e Zd Zd„ ZdS )ÚTestLtic                 óÐ  — t          dgdg¦  «        }t          t          |t          ¦  «        ¦  «         t          t          |t           ¦  «        ¦  «         t          t          |t          ¦  «         ¦  «         t          |j        d u ¦  «         t          t          j        g ¦  «        t          j        dg¦  «        d¦  «        }t          t          |t          ¦  «        ¦  «         t          t          |t           ¦  «        ¦  «         t          t          |t          ¦  «         ¦  «         t          |j        d u ¦  «         t          g dgd¦  «        }t          dgdgdd¦  «        }t          t          |t          ¦  «        ¦  «         t          t          |t           ¦  «        ¦  «         t          t          |t          ¦  «         ¦  «         t          |j        d u ¦  «         d S )NrY   r[   rQ   )
r   r   Ú
isinstancer   r   Údtr   rR   r   r   ©r7   Úss     r+   Útest_lti_instantiationzTestLti.test_lti_instantiation«  sŠ  € õ
 ���b�T‰NŒNˆÝ•
˜1Õ.Ñ/Ô/Ñ0Ô0Ð0Ý•
˜1�cÑ"Ô"Ñ#Ô#Ð#Ý•J˜q¥$Ñ'Ô'Ð'Ñ(Ô(Ð(Ý�”˜�ÑÔÐõ •”˜‘”�bœh¨ t™nœn¨aÑ0Ô0ˆÝ•
˜1�nÑ-Ô-Ñ.Ô.Ð.Ý•
˜1�cÑ"Ô"Ñ#Ô#Ð#Ý•J˜q¥$Ñ'Ô'Ð'Ñ(Ô(Ð(Ý�”˜�ÑÔÐõ ��R�D˜!ÑÔˆÝ���b�T˜1˜aÑ Ô ˆÝ•
˜1�jÑ)Ô)Ñ*Ô*Ð*Ý•
˜1�cÑ"Ô"Ñ#Ô#Ð#Ý•J˜q¥$Ñ'Ô'Ð'Ñ(Ô(Ð(Ý�”˜�ÑÔÐÐÐr-   N)r˜   r™   rš   r?  r›   r-   r+   r9  r9  ª  s#   € € € € € ðð ð ð ð r-   r9  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú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¦  «        ¦  «         d S )NrY   rG   rQ   rC   r   )r   r   rR   r6  s    r+   Útest_initializationz"TestStateSpace.test_initializationÇ  sœ   € å�1�a˜˜AÑÔÐÝ�A�3˜˜˜a˜S 1 #Ñ&Ô&Ð&Ý•2”8˜a ˜V a¨ VÐ,Ñ-Ô-­r¬x¸!¸¸q¸c¸
Ñ/CÔ/CÝ”8˜a ˜V˜HÑ%Ô%¥r¤x°!°°¡¤ñ	8ô 	8ð 	8ð 	8ð 	8r-   c                 óä  — t          dddd¦  «        }t          t          |                     ¦   «         t           ¦  «        ¦  «         t          t          |                     ¦   «         t
          ¦  «        ¦  «         t          t          |                     ¦   «         t          ¦  «        ¦  «         t          t          |¦  «        |u¦  «         t          |                     ¦   «         |u¦  «         d S )NrY   rG   rQ   rC   )r   r   r;  Úto_ssÚto_tfr   Úto_zpkr   r=  s     r+   Útest_conversionzTestStateSpace.test_conversionÎ  s²   € å�q˜!˜Q Ñ"Ô"ˆÝ•
˜1Ÿ7š7™9œ9¥jÑ1Ô1Ñ2Ô2Ð2Ý•
˜1Ÿ7š7™9œ9Õ&6Ñ7Ô7Ñ8Ô8Ð8Ý•
˜1Ÿ8š8™:œ:¥~Ñ6Ô6Ñ7Ô7Ð7õ 	•
˜1‘” QÐ&Ñ'Ô'Ð'Ý�—’‘	”	 Ð"Ñ#Ô#Ð#Ð#Ð#r-   c                 ó®   — t          dddd¦  «        }t          |j        dg¦  «         t          |j        dg¦  «         t	          |j        d u ¦  «         d S ©NrY   r   )r   r   ÚpolesrŸ   r   r<  r=  s     r+   Útest_propertieszTestStateSpace.test_propertiesÙ  sY   € õ
 �q˜!˜Q Ñ"Ô"ˆÝ�Q”W˜q˜cÑ"Ô"Ð"Ý�Q”W˜q˜cÑ"Ô"Ð"Ý�”˜�ÑÔÐÐÐ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¦  «        ¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        ddd¦  «        }t          j        |¦  «        }d|d<   t          t          t          t          j	        t          j
        t          j        fD �]9}	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 ¦  «         n# 1 swxY w Y   �Œ;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 ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  ||z   d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  ||z   d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  | |¦   «         z   d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5   |¦   «         |z   d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  | |¦   «         z   d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5   |¦   «         |z   d d d ¦  «         n# 1 swxY w Y   t          t          |dz   ||¬¦  «        d         d|z  t          |||¬¦  «        d         z   ¦  «         t          t          ¦  «        5  |t          j        ddg¦  «        z    d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  t          j        ddg¦  «        |z    d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  ||z    d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  |t          j        ddgddgg¦  «        z   d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  ||z    d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5  | |¦   «         z    d d d ¦  «         n# 1 swxY w Y   t          t          ¦  «        5   |¦   «         |z    d d d ¦  «         n# 1 swxY w Y   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 ¦  «         n# 1 swxY w Y   t          t          ¦  «        5   |¦   «         |z
   d d d ¦  «         n# 1 swxY w Y   ||z   }
t!          |
j        dk    ¦  «         ||z  }
t!          |
j        dk    ¦  «         d|z  }
t!          |
j        dk    ¦  «         | }
t!          |
j        dk    ¦  «         d S )Nc                   ó   — e Zd ZdS )ú.TestStateSpace.test_operators.<locals>.BadTypeN)r˜   r™   rš   r›   r-   r+   ÚBadTyperO  æ  s   € € € € € ØˆDr-   rP  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Úfloat32Ú
complex128r   r   rŒ   Ú	TypeErrorr"   r   r<  )r7   rP  Ú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˜˜1˜cÑ"Ô"ˆÝŒM˜!ÑÔˆØˆˆ!‰õ �¥­¬µR´]ÅBÄHÐMð 	ñ 	ˆCÝ�D   Q¡¤¨"¡°°QÐ7Ñ7Ô7¸Ô:Ø˜C ™FœF¥T¨"°°QÐ%7Ñ%7Ô%7¸Ô%:Ñ:ñ<ô <ð <õ �D  c c¨!¡f¤f¡°°QÐ7Ñ7Ô7¸Ô:Ý   q¨AÐ.Ñ.Ô.¨qÔ1°C°C¸±F´FÑ:ñ<ô <ð <õ �D  c c¨!¡f¤f¡°°QÐ7Ñ7Ô7¸Ô:Ý   q¨AÐ.Ñ.Ô.¨qÔ1°C°C¸±F´FÑ:ñ<ô <ð <õ �yÑ)Ô)ð ð Ø��A‘”˜‘�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ùõ 	�˜R !™V q¨AÐ.Ñ.Ô.¨qÔ1Ý˜R 1 q¡5¨AÐ.Ñ.Ô.¨qÔ1ñ	3ô 	3ð 	3õ 	�˜R "™W¨¨QÐ/Ñ/Ô/°Ô2Ý˜R¥4¨¨a°1Ð#5Ñ#5Ô#5°aÔ#8¸AÐ>Ñ>Ô>¸qÔAØ!ð	#ñ 	#ô 	#ð 	#õ �9Ñ%Ô%ð 	ð 	Ø�‰GˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	ð 	Ø�‰OˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	%ð 	%à˜Ñ$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ �9Ñ%Ô%ð 	ð 	Ø��‘”‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	ð 	ØˆG‰IŒI˜‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	ð 	Ø��‘”‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	ð 	ØˆG‰IŒI˜‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	�˜R !™V q¨AÐ.Ñ.Ô.¨qÔ1Ø˜A™¥ R¨1°Ð 2Ñ 2Ô 2°1Ô 5Ñ5ñ	7ô 	7ð 	7õ �:Ñ&Ô&ð 	"ð 	"Ø•”˜1˜a˜&Ñ!Ô!Ñ!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ �:Ñ&Ô&ð 	"ð 	"ÝŒH�a˜�VÑÔ˜rÑ!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ �9Ñ%Ô%ð 	ð 	Ø�‰OˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �:Ñ&Ô&ð 	,ð 	,Ø•”˜A˜q˜6 A q 6Ð*Ñ+Ô+Ñ+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ �9Ñ%Ô%ð 	%ð 	%à˜Ñ$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ �9Ñ%Ô%ð 	ð 	Ø��‘”‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	ð 	ØˆG‰IŒI˜‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	�˜R "™W¨¨QÐ/Ñ/Ô/°Ô2Ý˜R 1¨Ð*Ñ*Ô*¨1Ô-µ°R¸1ÀÐ0BÑ0BÔ0BÀ1Ô0EÑEñ	Gô 	Gð 	Gõ 	�˜R !™V q¨AÐ.Ñ.Ô.¨qÔ1Ø˜Q™¥ b¨A°Ð!3Ñ!3Ô!3°AÔ!6Ñ6ñ	8ô 	8ð 	8õ 	�˜Q ™V q¨AÐ.Ñ.Ô.¨qÔ1Ø˜A™¥ b S¨A°Ð 3Ñ 3Ô 3°AÔ 6Ñ6ñ	8ô 	8ð 	8õ 	�˜R "™W¨¨QÐ/Ñ/Ô/°Ô2Ý˜R 1¨Ð*Ñ*Ô*¨1Ô-µ°R¸1ÀÐ0BÑ0BÔ0BÀ1Ô0EÑEñ	Gô 	Gð 	Gõ �9Ñ%Ô%ð 	ð 	Ø��‘”‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �9Ñ%Ô%ð 	ð 	ØˆG‰IŒI˜‰NˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˜Ñ$ˆÝ�”˜’ÑÔÐà˜Ñ$ˆÝ�”˜’ÑÔÐà�
‰NˆÝ�”˜’ÑÔÐàˆKˆÝ�”˜’ÑÔÐÐÐs2  ÊJ1Ê1J5	Ê8J5	Í+M=Í=NÎNÎN.Î.N2Î5N2ÏOÏO#Ï&O#Ï>PÐPÐPÐ7QÑQÑQÑ0R
Ò
RÒRÒ)SÓSÓ
SÔ'UÕUÕUÕ,VÖVÖVÖ1W×W×
W×"XØXØXØ+X=Ø=YÙYÙY6Ù6Y:Ù=Y:ÚZ/Ú/Z3Ú6Z3à	`#à#`'à*`'áaáa á#a N)r˜   r™   rš   rC  rH  rL  r`  r›   r-   r+   rA  rA  Æ  sU   € € € € € ð8ð 8ð 8ð	$ð 	$ð 	$ðð ð ð~ð ~ð ~ð ~ð ~r-   rA  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestTransferFunctionc                 ó¶   — t          dd¦  «         t          dgdg¦  «         t          t          j        dg¦  «        t          j        dg¦  «        ¦  «         d S ©NrY   rG   )r   r   rR   r6  s    r+   rC  z(TestTransferFunction.test_initializationd  sP   € å˜˜AÑÔÐÝ˜!˜˜q˜cÑ"Ô"Ð"Ý�œ 1 #™œ­¬°!°©¬Ñ6Ô6Ð6Ð6Ð6r-   c                 óè  — t          ddgddg¦  «        }t          t          |                     ¦   «         t          ¦  «        ¦  «         t          t          |                     ¦   «         t           ¦  «        ¦  «         t          t          |                     ¦   «         t          ¦  «        ¦  «         t          t          |¦  «        |u¦  «         t          |                     ¦   «         |u¦  «         d S ©NrY   r   r[   )r   r   r;  rE  r   rF  rG  r   r=  s     r+   rH  z$TestTransferFunction.test_conversionj  s¹   € å˜a ˜V a¨ WÑ-Ô-ˆÝ•
˜1Ÿ7š7™9œ9¥jÑ1Ô1Ñ2Ô2Ð2Ý•
˜1Ÿ7š7™9œ9Õ&6Ñ7Ô7Ñ8Ô8Ð8Ý•
˜1Ÿ8š8™:œ:¥~Ñ6Ô6Ñ7Ô7Ð7õ 	Õ  Ñ#Ô#¨1Ð,Ñ-Ô-Ð-Ý�—’‘	”	 Ð"Ñ#Ô#Ð#Ð#Ð#r-   c                 ó†   — t          ddgddg¦  «        }t          |j        dg¦  «         t          |j        dg¦  «         d S rf  )r   r   rK  rŸ   r=  s     r+   rL  z$TestTransferFunction.test_propertiesu  sI   € õ
 ˜a ˜V a¨ WÑ-Ô-ˆÝ�Q”W˜q˜cÑ"Ô"Ð"Ý�Q”W˜q˜cÑ"Ô"Ð"Ð"Ð"r-   N)r˜   r™   rš   rC  rH  rL  r›   r-   r+   rb  rb  c  sA   € € € € € ð7ð 7ð 7ð	$ð 	$ð 	$ð#ð #ð #ð #ð #r-   rb  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestZerosPolesGainc                 ó¼   — t          ddd¦  «         t          dgdgd¦  «         t          t          j        dg¦  «        t          j        dg¦  «        d¦  «         d S rd  )r   r   rR   r6  s    r+   rC  z&TestZerosPolesGain.test_initialization€  sV   € å�q˜!˜QÑÔÐÝ˜�s˜Q˜C Ñ#Ô#Ð#Ý•r”x  ‘}”}¥b¤h°¨s¡m¤m°QÑ7Ô7Ð7Ð7Ð7r-   c                 óâ  — t          ddd¦  «        }t          t          |                     ¦   «         t          ¦  «        ¦  «         t          t          |                     ¦   «         t          ¦  «        ¦  «         t          t          |                     ¦   «         t           ¦  «        ¦  «         t          t          |¦  «        |u¦  «         t          |                     ¦   «         |u¦  «         d S )NrY   rG   rQ   )r   r   r;  rE  r   rF  r   rG  r=  s     r+   rH  z"TestZerosPolesGain.test_conversion†  s²   € å˜1˜a Ñ#Ô#ˆÝ•
˜1Ÿ7š7™9œ9¥jÑ1Ô1Ñ2Ô2Ð2Ý•
˜1Ÿ7š7™9œ9Õ&6Ñ7Ô7Ñ8Ô8Ð8Ý•
˜1Ÿ8š8™:œ:¥~Ñ6Ô6Ñ7Ô7Ð7õ 	•˜qÑ!Ô!¨Ð*Ñ+Ô+Ð+Ý�—’‘
”
 !Ð#Ñ$Ô$Ð$Ð$Ð$r-   N)r˜   r™   rš   rC  rH  r›   r-   r+   ri  ri    s2   € € € € € ð8ð 8ð 8ð	%ð 	%ð 	%ð 	%ð 	%r-   ri  c                   ó’   — 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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTest_abcd_normalizec                 óì   — 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¦  «        | _        d S )Nr©   r¬   rª   rÄ   rÇ   r«   ç      @)r   rR   r8   r9   r±   r²   r6  s    r+   Úsetup_methodz Test_abcd_normalize.setup_method“  si   € Ý”˜C ˜:¨¨S zÐ2Ñ3Ô3ˆŒÝ”˜D˜6 C 5˜/Ñ*Ô*ˆŒÝ”˜C ˜:˜,Ñ'Ô'ˆŒÝ”˜C˜5˜'Ñ"Ô"ˆŒˆˆr-   c                 ó:   — t          t          t          ¦  «         d S rÖ   )rŒ   r"   r   r6  s    r+   Útest_no_matrix_failsz(Test_abcd_normalize.test_no_matrix_fails™  s   € Ý•j¥.Ñ1Ô1Ð1Ð1Ð1r-   c                 ód   — t          t          t          ddg| j        | j        | j        ¦  «         d S )NrY   r[   )rŒ   r"   r   r9   r±   r²   r6  s    r+   Útest_A_nosquare_failsz)Test_abcd_normalize.test_A_nosquare_failsœ  s5   € Ý•j¥.°1°b°'Ø”f˜dœf d¤fñ	.ô 	.ð 	.ð 	.ð 	.r-   c                 ód   — t          t          t          | j        ddg| j        | j        ¦  «         d S ©Nr[   rd   ©rŒ   r"   r   r8   r±   r²   r6  s    r+   Útest_AB_mismatch_failsz*Test_abcd_normalize.test_AB_mismatch_fails   ó5   € Ý•j¥.°$´&¸2¸q¸'Ø”f˜dœfñ	&ô 	&ð 	&ð 	&ð 	&r-   c                 óh   — t          t          t          | j        | j        dgdgg| j        ¦  «         d S )NrÄ   r«   )rŒ   r"   r   r8   r9   r²   r6  s    r+   Útest_AC_mismatch_failsz*Test_abcd_normalize.test_AC_mismatch_fails¤  s9   € Ý•j¥.°$´&¸$¼&Ø�u˜s˜e�n d¤fñ	.ô 	.ð 	.ð 	.ð 	.r-   c           	      ód   — t          t          t          | j        | j        | j        ddg¦  «         d S )Nro  r   )rŒ   r"   r   r8   r9   r±   r6  s    r+   Útest_CD_mismatch_failsz*Test_abcd_normalize.test_CD_mismatch_fails¨  s5   € Ý•j¥.°$´&¸$¼&Ø”f˜s A˜hñ	(ô 	(ð 	(ð 	(ð 	(r-   c                 ód   — t          t          t          | j        ddg| j        | j        ¦  «         d S rv  rw  r6  s    r+   Útest_BD_mismatch_failsz*Test_abcd_normalize.test_BD_mismatch_fails¬  ry  r-   c                 ó  — t          | j        | j        | j        | j        ¦  «        \  }}}}t          || j        ¦  «         t          || j        ¦  «         t          || j        ¦  «         t          || j        ¦  «         d S rÖ   )r   r8   r9   r±   r²   r   ©r7   r8   r9   r±   r²   s        r+   Ú"test_normalized_matrices_unchangedz6Test_abcd_normalize.test_normalized_matrices_unchanged°  ss   € Ý# D¤F¨D¬F°D´F¸D¼FÑCÔC‰
ˆˆ1ˆa�Ý�Q˜œÑÔÐÝ�Q˜œÑÔÐÝ�Q˜œÑÔÐÝ�Q˜œÑÔÐÐÐr-   c                 óÈ  — t          | j        | j        ddgd¦  «        \  }}}}t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         d S rJ  )r   r8   r9   r   r   r�  s        r+   r§   zTest_abcd_normalize.test_shapes·  s·   € Ý# D¤F¨D¬F°Q¸°F¸AÑ>Ô>‰
ˆˆ1ˆa�Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ð,Ð,r-   c                 óš  — t          j        d¦  «        }t          j        d¦  «        }t          | j        ||¬¦  «        \  }}}}t	          || j        ¦  «         t	          ||¦  «         t	          ||¦  «         t	          |j        d         |j        d         ¦  «         t	          |j        d         | j        j        d         ¦  «         d S )N©rG   r   )r   r   ©r8   r9   r²   r   rY   ©r   rŸ   r   r8   r   r   )r7   ÚB_ÚD_r8   r9   r±   r²   s          r+   Ú test_zero_dimension_is_not_none1z4Test_abcd_normalize.test_zero_dimension_is_not_none1¿  s°   € ÝŒX�fÑÔˆÝŒX�fÑÔˆÝ# d¤f°°bÐ9Ñ9Ô9‰
ˆˆ1ˆa�Ý�Q˜œÑÔÐÝ�Q˜ÑÔÐÝ�Q˜ÑÔÐÝ�Q”W˜Q”Z ¤¨!¤Ñ-Ô-Ð-Ý�Q”W˜Q”Z ¤¤¨a¤Ñ1Ô1Ð1Ð1Ð1r-   c                 ó�  — t          j        d¦  «        }t          j        d¦  «        }t          | j        ||¬¦  «        \  }}}}t	          || j        ¦  «         t	          ||¦  «         t	          ||¦  «         t	          |j        d         |j        d         ¦  «         t	          |j        d         |j        d         ¦  «         d S )Nr…  )r   rG   ©r8   r9   r±   r   rY   r‡  )r7   rˆ  ÚC_r8   r9   r±   r²   s          r+   Ú test_zero_dimension_is_not_none2z4Test_abcd_normalize.test_zero_dimension_is_not_none2É  s®   € ÝŒX�fÑÔˆÝŒX�fÑÔˆÝ# d¤f°°bÐ9Ñ9Ô9‰
ˆˆ1ˆa�Ý�Q˜œÑÔÐÝ�Q˜ÑÔÐÝ�Q˜ÑÔÐÝ�Q”W˜Q”Z ¤¨!¤Ñ-Ô-Ð-Ý�Q”W˜Q”Z ¤¨!¤Ñ-Ô-Ð-Ð-Ð-r-   c                 óX  — t          | j        | j        | j        ¬¦  «        \  }}}}t	          |j        d         |j        d         ¦  «         t	          |j        d         |j        d         ¦  «         t	          |j        | j        j        d         | j        j        d         f¦  «         d S )N)r9   r±   r²   r   rY   )r   r9   r±   r²   r   r   r�  s        r+   Útest_missing_Az"Test_abcd_normalize.test_missing_AÓ  ó‰   € Ý# d¤f°´¸$¼&ÐAÑAÔA‰
ˆˆ1ˆa�Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜tœvœ|¨Aœ°´´¸Q´Ð@ÑAÔAÐAÐAÐAr-   c                 óX  — t          | j        | j        | j        ¬¦  «        \  }}}}t	          |j        d         |j        d         ¦  «         t	          |j        d         |j        d         ¦  «         t	          |j        | j        j        d         | j        j        d         f¦  «         d S )N)r8   r±   r²   r   rY   )r   r8   r±   r²   r   r   r�  s        r+   Útest_missing_Bz"Test_abcd_normalize.test_missing_BÙ  r‘  r-   c                 óX  — t          | j        | j        | j        ¬¦  «        \  }}}}t	          |j        d         |j        d         ¦  «         t	          |j        d         |j        d         ¦  «         t	          |j        | j        j        d         | j        j        d         f¦  «         d S )Nr†  r   rY   )r   r8   r9   r²   r   r   r�  s        r+   Útest_missing_Cz"Test_abcd_normalize.test_missing_Cß  r‘  r-   c                 óX  — t          | j        | j        | j        ¬¦  «        \  }}}}t	          |j        d         |j        d         ¦  «         t	          |j        d         |j        d         ¦  «         t	          |j        | j        j        d         | j        j        d         f¦  «         d S )NrŒ  r   rY   )r   r8   r9   r±   r   r   r�  s        r+   Útest_missing_Dz"Test_abcd_normalize.test_missing_Då  r‘  r-   c                 ó  — t          | j        | j        ¬¦  «        \  }}}}t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         d S )N)r±   r²   r   rY   )r   r±   r²   r   r   r�  s        r+   Útest_missing_ABz#Test_abcd_normalize.test_missing_ABë  sÈ   € Ý# d¤f°´Ð7Ñ7Ô7‰
ˆˆ1ˆa�Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜tœvœ|¨Aœ°´´¸Q´Ð@ÑAÔAÐAÝ�Q”W˜tœvœ|¨Aœ°´´¸Q´Ð@ÑAÔAÐAÐAÐAr-   c                 óR  — t          | j        | j        ¬¦  «        \  }}}}t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         d S )N)r9   r²   r   rY   )r   r9   r²   r   r   r�  s        r+   Útest_missing_ACz#Test_abcd_normalize.test_missing_ACó  óä   € Ý# d¤f°´Ð7Ñ7Ô7‰
ˆˆ1ˆa�Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜Q”Z ¤¨¤Ñ,Ô,Ð,Ý�Q”W˜tœvœ|¨Aœ°´´¸Q´Ð@ÑAÔAÐAÝ�Q”W˜tœvœ|¨Aœ°´´¸Q´Ð@ÑAÔAÐAÐAÐAr-   c                 óR  — t          | j        | j        ¬¦  «        \  }}}}t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         d S )N)r9   r±   r   rY   )r   r9   r±   r   r   r�  s        r+   Útest_missing_ADz#Test_abcd_normalize.test_missing_ADü  rœ  r-   c                 óR  — t          | j        | j        ¬¦  «        \  }}}}t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        d         |j        d         ¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         t          |j        | j        j        d         | j        j        d         f¦  «         d S )N)r8   r²   r   rY   )r   r8   r²   r   r   r�  s        r+   Útest_missing_BCz#Test_abcd_normalize.test_missing_BC  rœ  r-   c                 óH   — t          t          t          | j        ¬¦  «         d S )N)r²   )rŒ   r"   r   r²   r6  s    r+   Útest_missing_ABC_failsz*Test_abcd_normalize.test_missing_ABC_fails  s   € Ý•j¥.°D´FÐ;Ñ;Ô;Ð;Ð;Ð;r-   c                 óT   — t          t          t          | j        | j        ¬¦  «         d S )N)r8   r±   )rŒ   r"   r   r8   r±   r6  s    r+   Útest_missing_BD_failsz)Test_abcd_normalize.test_missing_BD_fails  ó#   € Ý•j¥.°D´F¸d¼fÐEÑEÔEÐEÐEÐEr-   c                 óT   — t          t          t          | j        | j        ¬¦  «         d S )N)r8   r9   )rŒ   r"   r   r8   r9   r6  s    r+   Útest_missing_CD_failsz)Test_abcd_normalize.test_missing_CD_fails  r¥  r-   N)r˜   r™   rš   rp  rr  rt  rx  r{  r}  r  r‚  r§   rŠ  rŽ  r�  r“  r•  r—  r™  r›  rž  r   r¢  r¤  r§  r›   r-   r+   rm  rm  ’  s~  € € € € € ð#ð #ð #ð2ð 2ð 2ð.ð .ð .ð&ð &ð &ð.ð .ð .ð(ð (ð (ð&ð &ð &ð ð  ð  ð-ð -ð -ð2ð 2ð 2ð.ð .ð .ðBð Bð BðBð Bð BðBð Bð BðBð Bð BðBð Bð BðBð Bð BðBð Bð BðBð Bð Bð<ð <ð <ðFð Fð FðFð Fð Fð Fð Fr-   rm  c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )Ú	Test_bodec                 óŠ   — t          dgddg¦  «        }g d¢}t          ||¬¦  «        \  }}}g d¢}t          ||d¬¦  «         d S )NrY   ©rQ  rY   r`   rR  ©r–   )r   rZ   rf   rl   rñ   ©r   r   r   )r7   rÚ   r–   ÚmagÚphaseÚexpected_mags         r+   Útest_01zTest_bode.test_01  sb   € õ �a�S˜1˜a˜&Ñ!Ô!ˆØÐÐˆÝ˜V qÐ)Ñ)Ô)‰ˆˆ3�Ø(Ð(Ð(ˆÝ˜C °qÐ9Ñ9Ô9Ð9Ð9Ð9r-   c                 óŠ   — t          dgddg¦  «        }g d¢}t          ||¬¦  «        \  }}}g d¢}t          ||d¬¦  «         d S )NrY   ©rQ  rY   r`   r¬  )gÍÌÌÌÌÌÀiÓÿÿÿg33333UÀrñ   r­  )r7   rÚ   r–   r®  r¯  Úexpected_phases         r+   Útest_02zTest_bode.test_02(  s`   € õ �a�S˜1˜a˜&Ñ!Ô!ˆØˆLˆLˆÝ˜V qÐ)Ñ)Ô)‰ˆˆ3�Ø+Ð+Ð+ˆÝ˜E >¸1Ð=Ñ=Ô=Ð=Ð=Ð=r-   c                 ó:  — t          dgddg¦  «        }g d¢}t          ||¬¦  «        \  }}}|dz  }t          j        |j        |¦  «        t          j        |j        |¦  «        z  }dt          j        t          |¦  «        ¦  «        z  }t          ||¦  «         d S )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_034  s›   € õ �a�S˜1˜a˜&Ñ!Ô!ˆØÐÐˆÝ˜V qÐ)Ñ)Ô)‰ˆˆ3�Ø�‰VˆÝŒJ�v”z 2Ñ&Ô&­¬°F´JÀÑ)CÔ)CÑCˆØ�bœh¥s¨1¡v¤vÑ.Ô.Ñ.ˆÝ˜C Ñ.Ô.Ð.Ð.Ð.r-   c                 óP  — 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          ||¦  «         d S )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�v”z 2Ñ&Ô&­¬°F´JÀÑ)CÔ)CÑCˆÝœ A¤F¨A¬FÑ3Ô3°eÑ;½b¼eÑCˆÝ˜E >Ñ2Ô2Ð2Ð2Ð2r-   c                 ó¦   — t          dgddg¦  «        }d}t          j        dd|¦  «        }t          ||¬¦  «        \  }}}t	          ||¦  «         d S ©NrY   r`   rp   ©r  )r   r   Úlogspacer   r   )r7   rÚ   r  Ú
expected_wr–   r®  r¯  s          r+   Útest_05zTest_bode.test_05J  s_   € õ �a�S˜1˜a˜&Ñ!Ô!ˆØˆå”[  Q¨Ñ*Ô*ˆ
Ý˜V qÐ)Ñ)Ô)‰ˆˆ3�Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó‚   — t          dgddg¦  «        }t          |d¬¦  «        \  }}}t          |d         d¦  «         d S ©NrY   r   rG   rÃ  g{®Gáz„?)r   r   r   ©r7   rÚ   r–   r®  r¯  s        r+   Útest_06zTest_bode.test_06T  sK   € õ �a�S˜1˜a˜&Ñ!Ô!ˆÝ˜V qÐ)Ñ)Ô)‰ˆˆ3�Ý�Q�q”T˜4Ñ Ô Ð Ð Ð r-   c                 óV   — t          dgg d¢¦  «        }t          |d¬¦  «        \  }}}d S )NrY   )rY   r   rR  rG   rÃ  )r   r   rÉ  s        r+   Útest_07zTest_bode.test_07[  s5   € õ �a�S˜+˜+˜+Ñ&Ô&ˆÝ˜V qÐ)Ñ)Ô)‰ˆˆ3���r-   c                 óÆ   — t          g g d¢d¦  «        }|                     t          j        ddd¦  «        ¬¦  «        \  }}}t	          t          |¦  «        dd¬	¦  «         d S )
N)r_   rg   rl   rm   rn   rY   rZ   rh   rR  r¬  i>þÿÿé   rñ   )r   r   r   rÄ  r   ÚminrÉ  s        r+   Útest_08zTest_bode.test_08a  sb   € å�RÐ2Ð2Ð2°AÑ6Ô6ˆØŸš¥b¤k°"°b¸#Ñ&>Ô&>˜Ñ?Ô?‰ˆˆ3�Ý�C ™JœJ¨°bÐ9Ñ9Ô9Ð9Ð9Ð9r-   c           	      óD  — 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          ¦   «         5 }|                     t          ¦  «         t          ||||¦  «        }t          |d¬¦  «        \  }}	}
d d d ¦  «         n# 1 swxY w Y   dt          j
        t          j        dd|dz  z   z  ¦  «        ¦  «        z  }t          |	|¦  «         d S )	N©r©   r¬   r¬   r©   rÂ   r©   ©r©   rÂ   rÂ   rR  rÃ  é   rc   )r   rR   r1   Ú	companionrú   r   r×   r   r   r   r¹  Úsqrtr   )r7   r°   r8   r9   r±   r²   rÙ   rÚ   r–   r®  r¯  Úexpected_magnitudes               r+   Útest_from_state_spacezTest_bode.test_from_state_spaceg  sP  € õ ŒHÐ)Ð)Ð)Ñ*Ô*ˆÝÔ˜QÑÔÔ!ˆÝŒH�s�e˜c˜U S EÐ*Ñ+Ô+ˆÝŒH�o�o�oÐ&Ñ'Ô'ˆÝŒH�s�e�WÑÔˆÝÑ Ô ð 	0 CØ�JŠJ•Ñ'Ô'Ð'Ý˜˜A˜q !‘_”_ˆFÝ  ¨3Ð/Ñ/Ô/‰MˆAˆs�Eð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð
  ¥"¤(­2¬7°3¸#ÀÀ1Á¹*Ñ3EÑ+FÔ+FÑ"GÔ"GÑGÐÝ˜CÐ!3Ñ4Ô4Ð4Ð4Ð4s   ÂACÃCÃCN)r˜   r™   rš   r±  rµ  r¼  rÀ  rÆ  rÊ  rÌ  rÐ  rØ  r›   r-   r+   r©  r©    s›   € € € € € ð:ð :ð :ð
>ð 
>ð 
>ð	/ð 	/ð 	/ð	3ð 	3ð 	3ð+ð +ð +ð!ð !ð !ð*ð *ð *ð:ð :ð :ð5ð 5ð 5ð 5ð 5r-   r©  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTest_freqrespc                 óÈ   — t          dgddg¦  «        }g d¢}t          ||¬¦  «        \  }}g d¢}g d¢}t          |j        |d¬¦  «         t          |j        |d¬¦  «         d S )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~  s‚   € õ �a�S˜1˜a˜&Ñ!Ô!ˆØˆLˆLˆÝ˜ !Ð$Ñ$Ô$‰ˆˆ1Ø)Ð)Ð)ˆØ,Ð,Ð,ˆÝ˜AœF K¸Ð;Ñ;Ô;Ð;Ý˜AœF K¸Ð;Ñ;Ô;Ð;Ð;Ð;r-   c                 ó8  — t          dgddg¦  «        }g d¢}t          ||¬¦  «        \  }}|dz  }t          j        |j        |¦  «        t          j        |j        |¦  «        z  }t          |j        |j        ¦  «         t          |j        |j        ¦  «         d S )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¨!Ñ,Ô,­r¬z¸&¼*ÀaÑ/HÔ/HÑHˆÝ˜AœF H¤MÑ2Ô2Ð2Ý˜AœF H¤MÑ2Ô2Ð2Ð2Ð2r-   c                 ó¤   — t          dgddg¦  «        }d}t          j        dd|¦  «        }t          ||¬¦  «        \  }}t	          ||¦  «         d S rÂ  )r   r   rÄ  r   r   )r7   rÚ   r  rÅ  r–   rÞ  s         r+   Útest_freq_rangezTest_freqresp.test_freq_range—  s]   € õ �a�S˜1˜a˜&Ñ!Ô!ˆØˆÝ”[  Q¨Ñ*Ô*ˆ
Ý˜ !Ð$Ñ$Ô$‰ˆˆ1Ý˜A˜zÑ*Ô*Ð*Ð*Ð*r-   c                 ó€   — t          dgddg¦  «        }t          |d¬¦  «        \  }}t          |d         d¦  «         d S rÈ  )r   r   r   )r7   rÚ   r–   rÞ  s       r+   Útest_pole_zerozTest_freqresp.test_pole_zero¡  sI   € õ �a�S˜1˜a˜&Ñ!Ô!ˆÝ˜ !Ð$Ñ$Ô$‰ˆˆ1Ý�Q�q”T˜4Ñ Ô Ð Ð Ð r-   c                 ód  — 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          ¦   «         5 }|                     t          ¦  «         t          ||||¦  «        }t          |d¬¦  «        \  }}	d d d ¦  «         n# 1 swxY w Y   |dz  }
ddd|
z  z   d|
dz  z  z   |
d	z  z   z  }t          |	j        |j        ¦  «         t          |	j        |j        ¦  «         d S )
NrÒ  rÂ   r©   rÓ  rR  rÃ  r·  rG   rQ   )r   rR   r1   rÕ  rú   r   r×   r   r   r   r   r   r    )r7   r°   r8   r9   r±   r²   rÙ   rÚ   r–   rÞ  r>  r=   s               r+   rØ  z#Test_freqresp.test_from_state_space¨  sj  € õ ŒHÐ)Ð)Ð)Ñ*Ô*ˆÝÔ˜QÑÔÔ!ˆÝŒH�s�e˜S˜E 3 %Ð(Ñ)Ô)ˆÝŒH�o�o�oÐ&Ñ'Ô'ˆÝŒH�s�e�WÑÔˆÝÑ Ô ð 	+ CØ�JŠJ•Ñ'Ô'Ð'Ý˜˜A˜q !‘_”_ˆFÝ˜F cÐ*Ñ*Ô*‰DˆAˆqð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð �‰FˆØ˜3  1¡™9 q¨¨A©¡vÑ-°°1±Ñ4Ñ5ˆÝ˜AœF H¤MÑ2Ô2Ð2Ý˜AœF H¤MÑ2Ô2Ð2Ð2Ð2s   ÂACÃCÃC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        ¦  «         d S )Nr[   rC   rY   r«  r¬  r·  rÝ  rã  s         r+   Útest_from_zpkzTest_freqresp.test_from_zpk½  s„   € å�R˜˜˜Q™ ˜sÑ#Ô#ˆØÐÐˆÝ˜ !Ð$Ñ$Ô$‰ˆˆ1Ø�‰FˆØ˜˜A™ ‘z‘>ˆÝ˜AœF H¤MÑ2Ô2Ð2Ý˜AœF H¤MÑ2Ô2Ð2Ð2Ð2r-   N)	r˜   r™   rš   rá  rä  ræ  rè  rØ  rë  r›   r-   r+   rÚ  rÚ  |  sn   € € € € € ð<ð <ð <ð	3ð 	3ð 	3ð+ð +ð +ð!ð !ð !ð3ð 3ð 3ð*3ð 3ð 3ð 3ð 3r-   rÚ  )r   r   ),rŽ   Únumpyr   Únumpy.testingr   r   r   r   r   Úpytestr   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*  r9  rA  rb  ri  rm  r©  rÚ  r›   r-   r+   ú<module>rò     sÄ  ðØ €€€à Ð Ð Ð ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7à *Ð *Ð *Ð *Ð *Ð *ðHð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð Hð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð ðNð Nð Nð Nð*V@ð V@ð V@ð V@ð V@ñ V@ô V@ð V@ðr[Pð [Pð [Pð [Pð [Pñ [Pô [Pð [Pð|{6ð {6ð {6ð {6ð {6ñ {6ô {6ð {6ð|D-ð D-ð D-ð D-ð D-ñ D-ô D-ð D-ðNFð Fð Fð Fð Fñ Fô Fð FðRð ð ð ð ñ ô ð ð8[ð [ð [ð [ð [ñ [ô [ð [ðz#ð #ð #ð #ð #ñ #ô #ð #ð8%ð %ð %ð %ð %ñ %ô %ð %ð&CFð CFð CFð CFð CFñ CFô CFð CFðLa5ð a5ð a5ð a5ð a5ñ a5ô a5ð a5ðHI3ð I3ð I3ð I3ð I3ñ I3ô I3ð I3ð I3ð I3r-   