Ë
    âQ(hP9  ã                   ó¨   — d dl Zd dl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y)é    N)Úassert_array_almost_equalÚassert_almost_equalÚxp_assert_close)Úcont2discrete)ÚdlsimÚss2tfÚss2zpkÚlsimÚlti)Útf2ssÚimpulseÚdimpulseÚstepÚdstepc                   óŒ   — e Zd Zej                  j
                  d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestC2Dc                 ó  — t        j                  dt         j                  ¬«      }t        j                  ddt         j                  ¬«      }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        ||«       y )Né   )Údtype©r   é   ç      à?ç      è?ç      ð?ç      Ð?ç        ç…ëQ¸Õ¿ç›Ž)aú?g6<SÂÔ?Úzoh©Úmethod)ÚnpÚeyeÚfloat64ÚfullÚarrayÚc2dr   r   )ÚselfÚacÚbcÚccÚdcÚad_truthÚbd_truthÚdt_requestedÚadÚbdÚcdÚddÚdts                úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/signal/tests/test_cont2discrete.pyÚtest_zohzTestC2D.test_zoh   sä   € ä�V‰V�AœRŸZ™ZÔ(ˆÜ�W‰W�V˜S¬¯
©
Ô3ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e e WÐ-Ó.ˆà$¤r§v¡v¨a£yÑ0ˆÜ—7‘7˜6Ð#4Ó5ˆàˆä  " b¨"¨bÐ!1°<ÈÔNÑˆˆB��B˜ä! (¨BÔ/Ü! (¨BÔ/Ü! " bÔ)Ü! " bÔ)Ü˜L¨"Õ-ó    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	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        |	|«       y )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(   r)   r*   r+   r,   r-   r.   Úcd_truthÚdd_truthr/   r0   r1   r2   r3   r4   s                  r5   Útest_fohzTestC2D.test_foh$   s  € Ü�V‰V�A‹YˆÜ�W‰W�V˜SÓ!ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e e WÐ-Ó.ˆð %¤r§v¡v¨a£yÑ0ˆÜ—7‘7˜6Ð#4Ó5ˆØˆÜ—8‘8Ð/Ð0Ø/Ð0Ø0Ð1ð3ó 4ˆð ˆä  " b¨"¨bÐ!1°<ÈÔNÑˆˆB��B˜ä! (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü˜L¨"Õ-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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        |	|«       y )Nr   r   r   r   r   r   r   r   g›Ž)aÚ?g      Ü?g      Ô?r   r    r:   r;   s                  r5   Útest_impulsezTestC2D.test_impulse;   sþ   € Ü�V‰V�A‹YˆÜ�W‰W�V˜SÓ!ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e c UÐ+Ó,ˆð %¤r§v¡v¨a£yÑ0ˆÜ—7‘7˜6Ð#4Ó5ˆØˆÜ—8‘8˜f˜X¨ u¨v¨hÐ7Ó8ˆØˆä  " b¨"¨bÐ!1°<Ø(1ô3ÑˆˆB��B˜ô 	" (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü˜L¨"Õ-r7   c                 ó4  — 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        |
|«       y )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/   rK   r-   r.   r<   r=   r0   r1   r2   r3   r4   s                   r5   Útest_gbtzTestC2D.test_gbtQ   s#  € Ü�V‰V�A‹YˆÜ�W‰W�V˜SÓ!ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e e WÐ-Ó.ˆàˆØˆàœŸ™ ›‘?ˆÜ—7‘7˜6 3Ó'ˆÜ—8‘8˜c 3˜ZØ! 3˜ZØ! 3˜Zð)ó *ˆô —8‘8˜e˜WØ!˜UØ$˜Xð'ó (ˆô ! " b¨"¨bÐ!1°<Ø(-°Uô<Ñˆˆ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	        ||||f|d
¬«      \  }
}}}}t        ||
«       t        ||«       t        ||«       t        |	|«       t        ||«       y )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_eulerk   s  € Ü�V‰V�A‹YˆÜ�W‰W�V˜SÓ!ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e e WÐ-Ó.ˆàˆàœŸ™ ›‘?ˆÜ—7‘7˜6 4Ó(ˆÜ—8‘8˜d C˜[Ø! 3˜ZØ! 4˜[ð*ó +ˆð ˆä  " b¨"¨bÐ!1°<Ø(/ô1ÑˆˆB��B˜ô 	" (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü˜L¨"Õ-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        |	|«       y )Nr   r   r   r   r   r   r   r   g       @rO   g      ì?gáz®GáÒ?Úbackward_diffr    rL   rQ   s                  r5   Útest_backward_diffzTestC2D.test_backward_diffƒ   s  € Ü�V‰V�A‹YˆÜ�W‰W�V˜SÓ!ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e e WÐ-Ó.ˆàˆàœŸ™ ›‘?ˆÜ—7‘7˜6 3Ó'ˆÜ—8‘8˜c 3˜ZØ! 3˜ZØ! 3˜Zð)ó *ˆô —8‘8˜e˜WØ!˜UØ#˜Wð&ó 'ˆô ! " b¨"¨bÐ!1°<Ø(7ô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        ||«       y )Nr   r   r   r   r   r   r   r   g«ªªªªªú?rB   gUUUUUUõ?g±ªªªªªÒ?g>¿Xò‹%¿¿Úbilinearr    gffffffö?rG   rD   rE   rC   rF   rH   r:   rQ   s                  r5   Útest_bilinearzTestC2D.test_bilinearœ   sê  € Ü�V‰V�A‹YˆÜ�W‰W�V˜SÓ!ˆÜ�X‰X˜˜c�{ S¨# J°°d°Ð<Ó=ˆÜ�X‰X˜�u˜s˜e e WÐ-Ó.ˆàˆà¤§¡¨£Ñ*ˆÜ—7‘7˜6 9Ó-ˆÜ—8‘8˜c 9Ð-Ø'¨Ð3Ø'¨Ð3ð5ó 6ˆô —8‘8Ð/Ð0Ø'˜[Ø0Ð1ð3ó 4ˆô ! " b¨"¨bÐ!1°<Ø(2ô4ÑˆˆB��B˜ô 	" (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü˜L¨"Ô-ð œŸ™ ›‘?ˆÜ—7‘7˜6 3Ó'ˆÜ—8‘8˜c 3˜Z¨#¨s¨°c¸3°ZÐ@ÓAˆÜ—8‘8˜e˜W s e¨f¨XÐ6Ó7ˆà ˆä  " b¨"¨bÐ!1°<Ø(2ô4ÑˆˆB��B˜ô 	" (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü! (¨BÔ/Ü˜L¨"Õ-r7   c                 ó2  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢g«      }t        j                  g d¢«      }d}t        ||f|d¬«      \  }}}t        ||«       t        ||«       t	        ||«       y )N)r   r   r   )r   r   r   )rB   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‰xÒ)Ó*ˆä�x‰xÒKÐLÓMˆÜ�x‰xÒDÓEˆàˆä˜D $˜<¨¸eÔ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        ||«       y )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±W¸Q³ZÑ.?Ð@ÓAˆØˆà#Ð%6Ð7ˆØ9Ø9ð;ˆàˆàˆä! 7¨G°SÐ"9¸<Ø).ô0Ñˆˆu�a˜ô 	" '¨5Ô1Ü! '¨5Ô1Ü˜C Ô#Ü˜L¨"Õ-r7   c                 ó   — 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        ||«       y)	z7Test method='gbt' with alpha=0.25 for tf and zpk cases.g      ð¿r   r   r   r   rI   rJ   N)r   r	   r'   r   )r(   ÚAÚBÚCÚDÚcnumÚcdenÚczÚcpÚckÚhrK   Ú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Ñˆ�˜ä˜˜fÔ%Ü˜˜fÔ%ô ˜B  B¨Ó+‰
ˆˆB�ô  # B¨¨B <°¸5ÈÔ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        ||j                  dd«      ||¬«      \  }}}d|
dd |
dd z   z  }t        |j                  «       |d¬«       y)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                 ó2   — t        j                  d| z  «      S )Ng      @)r"   Úsin)Úts    r5   Úuz'TestC2D.test_discrete_approx.<locals>.u  s   € Ü—6‘6˜# ™'“?Ð"r7   g{®Gáz„¿r   rG   r   g      $@ée   r   )ÚTÚUÚX0rW   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  s2  € ò	#ô �H‰H�u�g�YÓˆÜ�H‰H�s�e�WÓˆÜ�H‰H�s�e�WÓˆÜ�H‰H�s�e�WÓˆØˆä�K‰K˜˜4 Ó%ˆØˆq‰T�A�a‘D‰[ˆÙˆq‹Tˆô ˜a  A q˜\¨Q°"¸Ô<‰ˆˆ4�ô �A�q˜!˜Q�< ¨JÔ7ˆð �B�s˜�G˜b  ˜fÑ$Ñ%ˆØˆs�ˆVˆÜ˜d b§j¡j°°QÓ&7¸2À"ÔE‰ˆˆS�#ð
 �d˜3˜B�i $ q r (Ñ*Ñ+ˆä˜Ÿ	™	› T°Ö5r7   c                 ó’   — ddgddggddgf}t        |d«      \  }}}|dk(  sJ ‚t        |ddgd¬«       t        |ddgddggd¬«       y )	Nr   r   ç{®Gáz„?gUùxÊe±ï¿gü©ñÒMbP?r’   r�   gÞT(û|®ï¿)r'   r   )r(   Útfr^   r_   r4   s        r5   Útest_simo_tfzTestC2D.test_simo_tf=  se   € à�1ˆv˜˜1�vÐ  A Ð'ˆÜ˜2˜t“}‰ˆˆS�"à�TŠzÐˆzÜ˜˜a Ð.°TÕ:Ü˜˜q "˜g¨¨;Ð'7Ð8¸tÖDr7   c                 óN  — d}ddgddggddgf}t        ||«      \  }}}|d   d   |d   f}t        ||«      \  }}}	|d   d   |d   f}
t        |
|«      \  }}}||	k(  sJ ‚||k(  sJ ‚t        |t        j                  ||f«      d¬«       t        ||d¬«       t        ||d¬«       y )Nr§   r   éýÿÿÿé   r   g‚vIhÂ%<=r’   )r'   r   r"   Úvstack)r(   Útsr¨   r^   r_   r4   Útf1Únum1Úden1Údt1Útf2Únum2Úden2Údt2s                 r5   Útest_multioutputzTestC2D.test_multioutputF  sÐ   € Øˆà�2ˆw˜˜A˜Ð ! Q Ð(ˆÜ˜2˜r“{‰ˆˆS�"à�!‰u�Q‰x˜˜A™ÐˆÜ˜c 2›,‰ˆˆd�Cà�!‰u�Q‰x˜˜A™ÐˆÜ˜c 2›,‰ˆˆd�Cð �SŠyÐˆyØ�SŠyÐˆyô 	˜œRŸY™Y¨¨d |Ó4¸5ÕAô 	˜˜T¨Õ.Ü˜˜T¨Ö.r7   N)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚthread_unsafer6   r>   r@   rM   rR   rU   rX   r`   rl   r†   r¥   r©   r·   © r7   r5   r   r      s^   „ Ø‡[�[×Ññ.ó ð.ò&.ò..ò,0ò4.ò00ò2*.òX.ò.ò(("òT&6òPEó/r7   r   c                   ó   — e Zd Zd„ Zd„ Zy)Ú
TestC2dLtic                 ó0  — 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        ||||«      }|j                  d«      }t	        |j
                  |«       t	        |j                  |«       t	        |j                  |«       t	        |j                  t        j                  |j                  «      «       y )Ng333333Ó¿çš™™™™™¹?rG   gffffffæ¿r   r   gÐ“»Ç<†ï?gö‡�ùs?gö‡�ùƒ?gã{Kpæî?g1vMñ ?g_†Ç·J(©?gš™™™™™©?)
r"   r&   r   Úto_discreter   rn   ro   rp   rq   Ú
zeros_like)	r(   rn   ro   rp   rq   ÚA_resÚB_resÚsys_sscÚsys_ssds	            r5   Útest_c2d_sszTestC2dLti.test_c2d_ss_  sò   € ä�H‰H�t˜S�k C¨ ;Ð/Ó0ˆÜ�H‰H�q�c˜A˜3�ZÓ ˆÜ�H‰H�q˜!�f�XÓˆØˆä—‘Ð,Ð.?Ð@Ø,Ð.?Ð@ðBó Cˆä—‘Ð,Ð-Ð0AÐ/BÐCÓDˆä�a˜˜A˜q“/ˆØ×%Ñ% dÓ+ˆä˜Ÿ	™	 5Ô)Ü˜Ÿ	™	 5Ô)Ü˜Ÿ	™	 1Ô%Ü˜Ÿ	™	¤2§=¡=°·±Ó#;Õ<r7   c                 ó  — t        ddgddg«      }|j                  d«      }t        j                  ddg«      }t        j                  ddg«      }t	        |j
                  |d¬	«       t	        |j                  |d¬	«       y )
Nr   rC   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_tfr  sp   € ä�3˜�*˜s C˜jÓ)ˆØ�o‰o˜eÓ$ˆô —(‘(˜CÐ!3Ð4Ó5ˆÜ—(‘(˜CÐ!3Ð4Ó5ˆô 	˜Ÿ™ ¨tÕ4Ü˜Ÿ™ ¨tÖ4r7   N)r¸   r¹   rº   rÉ   rÏ   r¾   r7   r5   rÀ   rÀ   ^  s   „ ò=ó&5r7   rÀ   c                   ó2  — 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                  j                  d
e«      d„ «       Zej                  j                  d
e«      d„ «       Z	ej                  j                  d
e«      d„ «       Z
y)ÚTestC2dInvariantsr   )r   rO   r   r   é
   r   )r   rO   é   r   r   rÂ   )r   r   r   r   zsys,sample_time,samples_numberc                 óú   — t        j                  |«      |z  }t        ||¬«      \  }}t        t	        ||d¬«      t        |«      ¬«      \  }}t        ||j                  «       z  |d   j                  «       «       y )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‹  sh   € ä�y‰y˜Ó(¨;Ñ6ˆÜ˜s dÔ+‰ˆˆ9Ü¤ C¨¸YÔ GÜ"% d£)ô-‰ˆˆ9ä˜ i§o¡oÓ&7Ñ7¸À1¹×9KÑ9KÓ9MÕNr7   c                 óô   — t        j                  |«      |z  }t        ||¬«      \  }}t        t	        ||d¬«      t        |«      ¬«      \  }}t        |j                  «       |d   j                  «       «       y )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‰y˜Ó(¨;Ñ6ˆÜ˜C 4Ô(‰ˆˆ9ÜœS  k¸%Ô@ÄCÈÃIÔN‰ˆˆ9Ü˜	Ÿ™Ó)¨9°Q©<×+=Ñ+=Ó+?Õ@r7   c                 óâ   — t        j                  |«      |z  }t        |||¬«      \  }}}t        t	        ||d¬«      |¬«      \  }}}t        |j                  «       |j                  «       «       y )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‰y˜Ó(¨;Ñ6ˆÜ˜s d¨dÔ3‰ˆˆ9�aÜ¤ C¨¸UÔ CÀtÔL‰ˆˆ9�aÜ˜	Ÿ™Ó)¨9¯?©?Ó+<Õ=r7   N)r¸   r¹   rº   r   Úcasesr»   r¼   Úparametrizerá   rã   rå   r¾   r7   r5   rÑ   rÑ   €  s¿   „ ñ 
��1ˆv’{Ó	# T¨2Ð.Ù	��1ˆv’~Ó	&¨¨RÐ0Ù	ˆs’LÓ	! 3¨Ð+ð€Eð ‡[�[×ÑÐ=¸uÓEñOó FðOð ‡[�[×ÑÐ=¸uÓEñAó FðAð ‡[�[×ÑÐ=¸uÓEñ>ó Fñ>r7   rÑ   )Únumpyr"   Úscipy._lib._array_apir   r   r   r»   Úscipy.signalr   r'   r   r   r	   r
   r   r   r   r   r   r   r   rÀ   rÑ   r¾   r7   r5   ú<module>rë      sH   ðÛ ÷ñ ó Ý -ß 8Õ 8ß >Õ >÷M/ñ M/÷^
5ñ 5÷D!>ò !>r7   