§
    ¢éUg9  ã                   óÀ   — d dl Zd dlmZmZmZmZ d dlZd dlm	Z
 d dlmZmZmZmZmZ d dlmZmZmZmZmZ  G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ d¦  «        ZdS )é    N)Úassert_array_almost_equalÚassert_almost_equalÚassert_allcloseÚassert_equal)Úcont2discrete)ÚdlsimÚss2tfÚss2zpkÚlsimÚlti)Útf2ssÚimpulseÚdimpulseÚstepÚdstepc                   ó\   — 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S )ÚTestC2Dc                 óú  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }d	t          j        d¦  «        z  }t          j        dd
¦  «        }d}t	          ||||f|d¬¦  «        \  }}	}
}}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         t          ||¦  «         t          ||¦  «         d S )Né   ©r   é   ç      à?ç      è?ç      ð?ç      Ð?ç        ç…ëQ¸Õ¿ç›Ž)aú?g6<SÂÔ?Úzoh©Úmethod©ÚnpÚeyeÚfullÚarrayÚc2dr   r   )ÚselfÚacÚbcÚccÚdcÚad_truthÚbd_truthÚdt_requestedÚadÚbdÚcdÚddÚdts                úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/signal/tests/test_cont2discrete.pyÚtest_zohzTestC2D.test_zoh   s  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e e WÐ-Ñ.Ô.ˆà$¥r¤v¨a¡y¤yÑ0ˆÝ”7˜6Ð#4Ñ5Ô5ˆàˆå  " b¨"¨bÐ!1°<ÈÐNÑNÔNÑˆˆB��B˜å! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! " bÑ)Ô)Ð)Ý! " bÑ)Ô)Ð)Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-ó    c                 ó2  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }d	t          j        d¦  «        z  }t          j        dd
¦  «        }|}t          j        dgdgdgg¦  «        }d}	t	          ||||f|	d¬¦  «        \  }
}}}}t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         t          |	|¦  «         d S )Nr   r   r   r   r   r   r   r   r   gm†²çïÚ?g>.Òâ"¨Ð?gÙ4ðpL	Ó?g.ÈªÑqÂ¿Úfohr    r"   ©r(   r)   r*   r+   r,   r-   r.   Úcd_truthÚdd_truthr/   r0   r1   r2   r3   r4   s                  r5   Útest_fohzTestC2D.test_foh#   s6  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e e WÐ-Ñ.Ô.ˆð %¥r¤v¨a¡y¤yÑ0ˆÝ”7˜6Ð#4Ñ5Ô5ˆØˆÝ”8Ð/Ð0Ø/Ð0Ø0Ð1ð3ñ 4ô 4ˆð ˆå  " b¨"¨bÐ!1°<ÈÐNÑNÔNÑˆˆB��B˜å! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-r7   c                 ó2  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }dt          j        d¦  «        z  }t          j        dd	¦  «        }|}t          j        d
gdgdgg¦  «        }d}	t	          ||||f|	d¬¦  «        \  }
}}}}t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         t          |	|¦  «         d S )Nr   r   r   r   r   r   r   r   g›Ž)aÚ?g      Ü?g      Ô?r   r    r"   r:   s                  r5   Útest_impulsezTestC2D.test_impulse:   s1  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e c UÐ+Ñ,Ô,ˆð %¥r¤v¨a¡y¤yÑ0ˆÝ”7˜6Ð#4Ñ5Ô5ˆØˆÝ”8˜f˜X¨ u¨v¨hÐ7Ñ8Ô8ˆØˆå  " b¨"¨bÐ!1°<Ø(1ð3ñ 3ô 3ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-r7   c                 óN  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }d}d	}d
t          j        d¦  «        z  }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }	t          j        dgdgdgg¦  «        }
t	          ||||f|d|¬¦  «        \  }}}}}t          ||¦  «         t          ||¦  «         t          |	|¦  «         t          |
|¦  «         d S )Nr   r   r   r   r   r   r   r   çUUUUUUÕ?gš™™™™™ù?ç333333Ó?çÍÌÌÌÌÌì?ç333333ó?çffffffÆ?çš™™™™™É?ç=
×£p=Ê¿Úgbt©r!   Úalpha©r#   r$   r%   r&   r'   r   )r(   r)   r*   r+   r,   r/   rJ   r-   r.   r;   r<   r0   r1   r2   r3   r4   s                   r5   Útest_gbtzTestC2D.test_gbtP   sU  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e e WÐ-Ñ.Ô.ˆàˆØˆà�œ ™œ‘?ˆÝ”7˜6 3Ñ'Ô'ˆÝ”8˜c 3˜ZØ! 3˜ZØ! 3˜Zð)ñ *ô *ˆõ ”8˜e˜WØ!˜UØ$˜Xð'ñ (ô (ˆõ ! " b¨"¨bÐ!1°<Ø(-°Uð<ñ <ô <ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ð/Ð/r7   c                 ó8  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }d}d	t          j        d¦  «        z  }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }|}	t	          ||||f|d
¬¦  «        \  }
}}}}t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          |	|¦  «         t          ||¦  «         d S )Nr   r   r   r   r   r   r   r   ç      ø?Úeulerr    r"   ©r(   r)   r*   r+   r,   r/   r-   r.   r;   r<   r0   r1   r2   r3   r4   s                  r5   Ú
test_eulerzTestC2D.test_eulerj   s=  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e e WÐ-Ñ.Ô.ˆàˆà�œ ™œ‘?ˆÝ”7˜6 4Ñ(Ô(ˆÝ”8˜d C˜[Ø! 3˜ZØ! 4˜[ð*ñ +ô +ˆð ˆå  " b¨"¨bÐ!1°<Ø(/ð1ñ 1ô 1ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-r7   c                 óH  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }d}d	t          j        d¦  «        z  }t          j        dd¦  «        }t          j        d
d	gd	d	gd	dgg¦  «        }t          j        dgdgdgg¦  «        }	t	          ||||f|d¬¦  «        \  }
}}}}t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          |	|¦  «         d S )Nr   r   r   r   r   r   r   r   g       @rN   g      ì?gáz®GáÒ?Úbackward_diffr    rK   rP   s                  r5   Útest_backward_diffzTestC2D.test_backward_diff‚   sN  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e e WÐ-Ñ.Ô.ˆàˆà�œ ™œ‘?ˆÝ”7˜6 3Ñ'Ô'ˆÝ”8˜c 3˜ZØ! 3˜ZØ! 3˜Zð)ñ *ô *ˆõ ”8˜e˜WØ!˜UØ#˜Wð&ñ 'ô 'ˆõ ! " b¨"¨bÐ!1°<Ø(7ð9ñ 9ô 9ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ð/Ð/r7   c                 ó
  — t          j        d¦  «        }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }d}d	t          j        d¦  «        z  }t          j        dd
¦  «        }t          j        ddgddgdd
gg¦  «        }t          j        dgd
gdgg¦  «        }	t	          ||||f|d¬¦  «        \  }
}}}}t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          |	|¦  «         t          ||¦  «         dt          j        d¦  «        z  }t          j        dd¦  «        }t          j        ddgddgddgg¦  «        }t          j        dgdgdgg¦  «        }	d
}t	          ||||f|d¬¦  «        \  }
}}}}t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          |	|¦  «         t          ||¦  «         d S )Nr   r   r   r   r   r   r   r   g«ªªªªªú?rA   gUUUUUUõ?g±ªªªªªÒ?g>¿Xò‹%¿¿Úbilinearr    gffffffö?rF   rC   rD   rB   rE   rG   r"   rP   s                  r5   Útest_bilinearzTestC2D.test_bilinear›   sM  € ÝŒV�A‰YŒYˆÝŒW�V˜SÑ!Ô!ˆÝŒX˜˜c�{ S¨# J°°d°Ð<Ñ=Ô=ˆÝŒX˜�u˜s˜e e WÐ-Ñ.Ô.ˆàˆà¥¤¨¡¤Ñ*ˆÝ”7˜6 9Ñ-Ô-ˆÝ”8˜c 9Ð-Ø'¨Ð3Ø'¨Ð3ð5ñ 6ô 6ˆõ ”8Ð/Ð0Ø'˜[Ø0Ð1ð3ñ 4ô 4ˆõ ! " b¨"¨bÐ!1°<Ø(2ð4ñ 4ô 4ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý˜L¨"Ñ-Ô-Ð-ð �œ ™œ‘?ˆÝ”7˜6 3Ñ'Ô'ˆÝ”8˜c 3˜Z¨#¨s¨°c¸3°ZÐ@ÑAÔAˆÝ”8˜e˜W s e¨f¨XÐ6Ñ7Ô7ˆà ˆå  " b¨"¨bÐ!1°<Ø(2ð4ñ 4ô 4ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-r7   c                 óL  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢g¦  «        }t          j        g d¢¦  «        }d}t          ||f|d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         t	          ||¦  «         d S )N)r   r   r   )r   r   r   )rA   gN›îÕZÛ¿gÏ±†³)_Ì?)r   gŽüø]OŸõ¿g–oü²hã?r   r   r    )r#   r&   r'   r   r   )	r(   ÚnumcÚdencÚnumdÚdendr/   ÚnumÚdenr4   s	            r5   Útest_transferfunctionzTestC2D.test_transferfunctionÇ   s¶   € ÝŒxÐ)Ð)Ð)Ñ*Ô*ˆÝŒxÐ)Ð)Ð)Ñ*Ô*ˆåŒxÐKÐKÐKÐLÑMÔMˆÝŒxÐDÐDÐDÑEÔEˆàˆå˜D $˜<¨¸eÐDÑDÔD‰ˆˆS�"å! $¨Ñ,Ô,Ð,Ý! $¨Ñ,Ô,Ð,Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-r7   c                 ó‚  — t          j        ddg¦  «        }t          j        dt          j        d¦  «        z  dt          j        d¦  «        z  g¦  «        }d}ddg}d	d
g}d}d}t          |||f|d¬¦  «        \  }}	}
}t	          ||¦  «         t	          ||	¦  «         t          ||
¦  «         t          ||¦  «         d S )Nr   g      à¿y              ð?r   y       €      ð¿r   gwÀÄRN½ó?g.-“.ˆç?y\9¨Oî?Æ„ò°(Ö?y\9¨Oî?Æ„ò°(Ö¿r   r    )r#   r&   Úsqrtr'   r   r   )r(   Úzeros_cÚpoles_cÚk_cÚzeros_dÚpolls_dÚk_dr/   ÚzerosÚpolesÚkr4   s               r5   Útest_zerospolesgainzTestC2D.test_zerospolesgainÖ   sÝ   € Ý”(˜C ˜;Ñ'Ô'ˆÝ”(˜C¥"¤'¨!¡*¤*Ñ,¨dµR´W¸Q±Z´ZÑ.?Ð@ÑAÔAˆØˆà#Ð%6Ð7ˆØ9Ø9ð;ˆàˆàˆå! 7¨G°SÐ"9¸<Ø).ð0ñ 0ô 0Ñˆˆu�a˜õ 	" '¨5Ñ1Ô1Ð1Ý! '¨5Ñ1Ô1Ð1Ý˜C Ñ#Ô#Ð#Ý˜L¨"Ñ-Ô-Ð-Ð-Ð-r7   c                 óZ  — d}d}d}d}t          ||||¦  «        \  }}t          ||||¦  «        \  }}}	d}
d}dd|z
  |
z  |z  z   d||
z  |z  z
  z  }|
|z  d||
z  |z  z
  z  }|d||
z  |z  z
  z  }|||z  |z  z   }t          ||||¦  «        \  }}t          ||f|
d|¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         t          ||||¦  «        \  }}}t          |||	f|
d|¬¦  «        \  }}}}t          ||¦  «         t          ||¦  «         t          ||¦  «         dS )	z7Test method='gbt' with alpha=0.25 for tf and zpk cases.g      ð¿r   r   r   r   rH   rI   N)r	   r
   r'   r   )r(   ÚAÚBÚCÚDÚcnumÚcdenÚczÚcpÚckÚhrJ   ÚAdÚBdÚCdÚDdÚdnumÚddenÚc2dnumÚc2ddenr4   ÚdzÚdpÚdkÚc2dzÚc2dpÚc2dks                              r5   Útest_gbt_with_sio_tf_and_zpkz$TestC2D.test_gbt_with_sio_tf_and_zpkê   s™  € ð ˆØˆØˆØˆõ ˜1˜a  AÑ&Ô&‰
ˆˆdõ ˜A˜q ! QÑ'Ô'‰
ˆˆB�àˆØˆð �1�u‘9 ‘/ AÑ%Ñ%¨!¨e°a©i¸!©mÑ*;Ñ<ˆØ�‰U�a˜% !™) a™-Ñ'Ñ(ˆØ�!�e˜a‘i !‘mÑ#Ñ$ˆØ�˜‘˜R‘Ñˆõ ˜2˜r 2 rÑ*Ô*‰
ˆˆdõ ! $¨ ¨q¸ÀeÐLÑLÔLÑˆ�˜å˜˜fÑ%Ô%Ð%Ý˜˜fÑ%Ô%Ð%õ ˜B  B¨Ñ+Ô+‰
ˆˆB�õ  # B¨¨B <°¸5ÈÐNÑNÔNÑˆˆd�D˜"å˜˜DÑ!Ô!Ð!Ý˜˜DÑ!Ô!Ð!Ý˜˜DÑ!Ô!Ð!Ð!Ð!r7   c                 ó˜  — d„ }t          j        dgg¦  «        }t          j        dgg¦  «        }t          j        dgg¦  «        }t          j        dgg¦  «        }d}t          j        ddd¦  «        }|d         |d         z
  } ||¦  «        }	t          ||||f||	|¬	¦  «        \  }}
}t	          ||||f|d
¬¦  «        }d|	dd…         |	dd…         z   z  }|dd…         }t          ||                     dd¦  «        ||¬¦  «        \  }}}d|
dd…         |
dd…         z   z  }t          |                     ¦   «         |d¬¦  «         dS )a  
        Test that the solution to the discrete approximation of a continuous
        system actually approximates the solution to the continuous system.
        This is an indirect test of the correctness of the implementation
        of cont2discrete.
        c                 ó0   — t          j        d| z  ¦  «        S )Ng      @)r#   Úsin)Úts    r5   Úuz'TestC2D.test_discrete_approx.<locals>.u  s   € Ý”6˜# ™'‘?”?Ð"r7   g{®Gáz„¿r   rF   r   g      $@ée   r   )ÚTÚUÚX0rV   r    r   Néÿÿÿÿ)rŠ   r‰   Úx0g-Cëâ6?©Úrtol)	r#   r&   Úlinspacer   r'   r   Úreshaper   Úravel)r(   rŠ   ÚaÚbÚcÚdr�   r‰   r4   Úu1ÚyoutÚxoutÚdsysÚu2Út2Útd2Úyd2Úxd2Úymids                      r5   Útest_discrete_approxzTestC2D.test_discrete_approx  su  € ð	#ð 	#ð 	#õ ŒH�u�g�YÑÔˆÝŒH�s�e�WÑÔˆÝŒH�s�e�WÑÔˆÝŒH�s�e�WÑÔˆØˆåŒK˜˜4 Ñ%Ô%ˆØˆqŒT�A�a”D‰[ˆØˆQˆq‰TŒTˆõ ˜a  A q˜\¨Q°"¸Ð<Ñ<Ô<‰ˆˆ4�õ �A�q˜!˜Q�< ¨JÐ7Ñ7Ô7ˆð �B�s˜�s”G˜b   œfÑ$Ñ%ˆØˆs�ˆsŒVˆÝ˜d b§j¢j°°QÑ&7Ô&7¸2À"ÐEÑEÔE‰ˆˆS�#ð
 �d˜3˜B˜3”i $ q r r¤(Ñ*Ñ+ˆå˜Ÿ	š	™œ T°Ð5Ñ5Ô5Ð5Ð5Ð5r7   c                 ó¾   — ddgddggddgf}t          |d¦  «        \  }}}t          |d¦  «         t          |ddgd¬¦  «         t          |ddgddggd¬¦  «         d S )	Nr   r   ç{®Gáz„?gUùxÊe±ï¿gü©ñÒMbP?r‘   r�   gÞT(û|®ï¿)r'   r   r   )r(   Útfr]   r^   r4   s        r5   Útest_simo_tfzTestC2D.test_simo_tf<  sƒ   € à�1ˆv˜˜1�vÐ  A Ð'ˆÝ˜2˜t‘}”}‰ˆˆS�"å�R˜ÑÔÐÝ˜˜a Ð.°TÐ:Ñ:Ô:Ð:Ý˜˜q "˜g¨¨;Ð'7Ð8¸tÐDÑDÔDÐDÐDÐDr7   c                 óÆ  — d}ddgddggddgf}t          ||¦  «        \  }}}|d         d         |d         f}t          ||¦  «        \  }}}	|d         d         |d         f}
t          |
|¦  «        \  }}}t          ||	¦  «         t          ||¦  «         t          |t          j        ||f¦  «        d¬¦  «         t          ||d¬¦  «         t          ||d¬¦  «         d S )Nr¦   r   éýÿÿÿé   r   g‚vIhÂ%<=r‘   )r'   r   r   r#   Úvstack)r(   Útsr§   r]   r^   r4   Útf1Únum1Úden1Údt1Útf2Únum2Úden2Údt2s                 r5   Útest_multioutputzTestC2D.test_multioutputE  s   € Øˆà�2ˆw˜˜A˜Ð ! Q Ð(ˆÝ˜2˜r‘{”{‰ˆˆS�"à�!Œu�QŒx˜˜AœÐˆÝ˜c 2™,œ,‰ˆˆd�Cà�!Œu�QŒx˜˜AœÐˆÝ˜c 2™,œ,‰ˆˆd�Cõ 	�R˜ÑÔÐÝ�R˜ÑÔÐõ 	˜�RœY¨¨d |Ñ4Ô4¸5ÐAÑAÔAÐAõ 	˜˜T¨Ð.Ñ.Ô.Ð.Ý˜˜T¨Ð.Ñ.Ô.Ð.Ð.Ð.r7   N)Ú__name__Ú
__module__Ú__qualname__r6   r=   r?   rL   rQ   rT   rW   r_   rk   r…   r¤   r¨   r¶   © r7   r5   r   r      sÝ   € € € € € ð.ð .ð .ð&.ð .ð .ð..ð .ð .ð,0ð 0ð 0ð4.ð .ð .ð00ð 0ð 0ð2*.ð *.ð *.ðX.ð .ð .ð.ð .ð .ð(("ð ("ð ("ðT&6ð &6ð &6ðPEð Eð Eð/ð /ð /ð /ð /r7   r   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
TestC2dLtic                 óö  — 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gd	d
gg¦  «        }t          j        dgdgg¦  «        }t          ||||¦  «        }|                     d¦  «        }t	          |j        |¦  «         t	          |j        |¦  «         t	          |j        |¦  «         t	          |j        |¦  «         d S )Ng333333Ó¿çš™™™™™¹?rF   gffffffæ¿r   r   gÐ“»Ç<†ï?gö‡�ùs?gö‡�ùƒ?gã{Kpæî?g1vMñ ?g_†Ç·J(©?gš™™™™™©?)	r#   r&   r   Úto_discreter   rm   rn   ro   rp   )	r(   rm   rn   ro   rp   ÚA_resÚB_resÚsys_sscÚsys_ssds	            r5   Útest_c2d_sszTestC2dLti.test_c2d_ss^  s  € åŒH�t˜S�k C¨ ;Ð/Ñ0Ô0ˆÝŒH�q�c˜A˜3�ZÑ Ô ˆÝŒH�q˜!�f�XÑÔˆØˆå”Ð,Ð.?Ð@Ø,Ð.?Ð@ðBñ Cô Cˆå”Ð,Ð-Ð0AÐ/BÐCÑDÔDˆå�a˜˜A˜q‘/”/ˆØ×%Ò% dÑ+Ô+ˆå˜œ	 5Ñ)Ô)Ð)Ý˜œ	 5Ñ)Ô)Ð)Ý˜œ	 1Ñ%Ô%Ð%Ý˜œ	 1Ñ%Ô%Ð%Ð%Ð%r7   c                 ó  — t          ddgddg¦  «        }|                     d¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t	          |j        |d¬	¦  «         t	          |j        |d¬	¦  «         d S )
Nr   rB   r   gš™™™™™Ù?g{®Gázt?g�â„i®ß¿gYì­›É]ï¿g{®Gáz”?)Úatol)r   r¿   r#   r&   r   r^   r]   )r(   ÚsysÚnum_resÚden_ress       r5   Útest_c2d_tfzTestC2dLti.test_c2d_tfq  sŒ   € å�3˜�*˜s C˜jÑ)Ô)ˆØ�oŠo˜eÑ$Ô$ˆõ ”(˜CÐ!3Ð4Ñ5Ô5ˆÝ”(˜CÐ!3Ð4Ñ5Ô5ˆõ 	˜œ ¨tÐ4Ñ4Ô4Ð4Ý˜œ ¨tÐ4Ñ4Ô4Ð4Ð4Ð4r7   N)r·   r¸   r¹   rÄ   rÊ   rº   r7   r5   r¼   r¼   ]  s2   € € € € € ð&ð &ð &ð&5ð 5ð 5ð 5ð 5r7   r¼   c                   óR  — e Zd Z eddgg d¢¦  «        ddf eddgg d¢¦  «        ddf edg d	¢¦  «        ddfgZej                             d
e¦  «        d„ ¦   «         Zej                             d
e¦  «        d„ ¦   «         Z	ej                             d
e¦  «        d„ ¦   «         Z
dS )ÚTestC2dInvariantsr   )r   rN   r   r   é
   r   )r   rN   é   r   r   r¾   )r   r   r   r   zsys,sample_time,samples_numberc                 ó8  — t          j        |¦  «        |z  }t          ||¬¦  «        \  }}t          t	          ||d¬¦  «        t          |¦  «        ¬¦  «        \  }}t          ||                     ¦   «         z  |d                              ¦   «         ¦  «         d S )N©rŒ   r   r    ©Únr   )r#   Úaranger   r   r'   Úlenr   r•   ©r(   rÇ   Úsample_timeÚsamples_numberÚtimeÚ_Ú	yout_contÚ	yout_discs           r5   Útest_impulse_invariantz(TestC2dInvariants.test_impulse_invariantŠ  s“   € åŒy˜Ñ(Ô(¨;Ñ6ˆÝ˜s dÐ+Ñ+Ô+‰ˆˆ9Ý¥ C¨¸YÐ GÑ GÔ GÝ"% d¡)¤)ð-ñ -ô -‰ˆˆ9å˜ i§o¢oÑ&7Ô&7Ñ7¸À1¼×9KÒ9KÑ9MÔ9MÑNÔNÐNÐNÐNr7   c                 ó2  — t          j        |¦  «        |z  }t          ||¬¦  «        \  }}t          t	          ||d¬¦  «        t          |¦  «        ¬¦  «        \  }}t          |                     ¦   «         |d                              ¦   «         ¦  «         d S )NrÐ   r   r    rÑ   r   )r#   rÓ   r   r   r'   rÔ   r   r•   rÕ   s           r5   Útest_step_invariantz%TestC2dInvariants.test_step_invariant“  s‡   € åŒy˜Ñ(Ô(¨;Ñ6ˆÝ˜C 4Ð(Ñ(Ô(‰ˆˆ9Ý�S  k¸%Ð@Ñ@Ô@ÅCÈÁIÄIÐNÑNÔN‰ˆˆ9Ý˜	ŸšÑ)Ô)¨9°Q¬<×+=Ò+=Ñ+?Ô+?Ñ@Ô@Ð@Ð@Ð@r7   c                 ó  — t          j        |¦  «        |z  }t          |||¬¦  «        \  }}}t          t	          ||d¬¦  «        |¬¦  «        \  }}}t          |                     ¦   «         |                     ¦   «         ¦  «         d S )N)rŒ   r�   r9   r    )rŠ   )r#   rÓ   r   r   r'   r   r•   rÕ   s           r5   Útest_linear_invariantz'TestC2dInvariants.test_linear_invariant›  s�   € åŒy˜Ñ(Ô(¨;Ñ6ˆÝ˜s d¨dÐ3Ñ3Ô3‰ˆˆ9�aÝ¥ C¨¸UÐ CÑ CÔ CÀtÐLÑLÔL‰ˆˆ9�aÝ˜	ŸšÑ)Ô)¨9¯?ª?Ñ+<Ô+<Ñ=Ô=Ð=Ð=Ð=r7   N)r·   r¸   r¹   r   ÚcasesÚpytestÚmarkÚparametrizerÜ   rÞ   rà   rº   r7   r5   rÌ   rÌ     s	  € € € € € ð 
ˆ��1ˆv�{�{�{Ñ	#Ô	# T¨2Ð.Ø	ˆ��1ˆv�~�~�~Ñ	&Ô	&¨¨RÐ0Ø	ˆˆs�L�L�LÑ	!Ô	! 3¨Ð+ð€Eð „[×ÒÐ=¸uÑEÔEðOð Oñ FÔEðOð „[×ÒÐ=¸uÑEÔEðAð Añ FÔEðAð „[×ÒÐ=¸uÑEÔEð>ð >ñ FÔEð>ð >ð >r7   rÌ   )Únumpyr#   Únumpy.testingr   r   r   r   râ   Úscipy.signalr   r'   r   r	   r
   r   r   r   r   r   r   r   r   r¼   rÌ   rº   r7   r5   ú<module>rè      sJ  ðØ Ð Ð Ð ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð €€€Ø -Ð -Ð -Ð -Ð -Ð -Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ðL/ð L/ð L/ð L/ð L/ñ L/ô L/ð L/ð\
5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ðD!>ð !>ð !>ð !>ð !>ñ !>ô !>ð !>ð !>ð !>r7   