§
    fŠtjÒ<  ã                   óF  — d dl Z 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 ej        j        Z ee
¦  «         G d„ d¦  «        ¦   «         Z edd	¬
¦  «         G d„ d¦  «        ¦   «         Z ee
¦  «         G d„ d¦  «        ¦   «         ZdS )é    N)Úassert_array_almost_equalÚxp_assert_closeÚmake_xp_test_case)Ú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 ed
¬¦  «        d„ ¦   «         Zd„ Z ed
¬¦  «        d„ ¦   «         Z ed
¬¦  «        d„ ¦   «         ZdS )ÚTestC2Dc                 ó4  — |                      d|j        ¬¦  «        }|                     dd|j        ¬¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgd	gg¦  «        }d
|                      d¦  «        z  }|                     dd¦  «        }d}t	          ||||f|d¬¦  «        \  }	}
}}}t          ||	¦  «         t          ||
¦  «         t          ||¦  «         t          ||¦  «         t          j        ||d¬¦  «        sJ ‚d S )Né   )Údtype©r   é   ç      à?ç      è?ç      ð?ç      Ð?ç        ç…ëQ¸Õ¿ç›Ž)aú?g6<SÂÔ?Úzoh©Úmethodç›+¡†›„=©Úabs_tol)ÚeyeÚfloat64ÚfullÚasarrayÚc2dr   ÚmathÚisclose)ÚselfÚxpÚacÚbcÚccÚdcÚad_truthÚbd_truthÚdt_requestedÚadÚbdÚcdÚddÚdts                 úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/signal/tests/test_cont2discrete.pyÚtest_zohzTestC2D.test_zoh   s,  € Ø�VŠV�A˜RœZˆVÑ(Ô(ˆØ�WŠW�V˜S¨¬
ˆWÑ3Ô3ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ wÐ/Ñ0Ô0ˆà$ r§v¢v¨a¡y¤yÑ0ˆØ—7’7˜6Ð#4Ñ5Ô5ˆàˆå  " b¨"¨bÐ!1°<ÈÐNÑNÔNÑˆˆB��B˜å! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! " bÑ)Ô)Ð)Ý! " bÑ)Ô)Ð)ÝŒ|˜B °eÐ<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<ó    c                 óR  — |                      d¦  «        }|                     dd¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgdgg¦  «        }d	|                      d¦  «        z  }|                     dd
¦  «        }|}|                     dgdgdgg¦  «        }	d}
t          ||||f|
d¬¦  «        \  }}}}}t	          ||¦  «         t	          ||¦  «         t	          ||¦  «         t	          |	|¦  «         t          j        ||
d¬¦  «        sJ ‚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*   r+   ©r,   r-   r.   r/   r0   r1   r2   r3   Úcd_truthÚdd_truthr4   r5   r6   r7   r8   r9   s                   r:   Útest_fohzTestC2D.test_foh(   sQ  € Ø�VŠV�A‰YŒYˆØ�WŠW�V˜SÑ!Ô!ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ wÐ/Ñ0Ô0ˆð % r§v¢v¨a¡y¤yÑ0ˆØ—7’7˜6Ð#4Ñ5Ô5ˆØˆØ—:’:Ð 1Ð2Ø0Ð1Ø1Ð2ð4ñ 5ô 5ˆð ˆå  " b¨"¨bÐ!1°<ÈÐNÑNÔNÑˆˆB��B˜å! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/ÝŒ|˜B °eÐ<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r<   c                 óR  — |                      d¦  «        }|                     dd¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgdgg¦  «        }d|                      d¦  «        z  }|                     dd	¦  «        }|}|                     d
gdgdgg¦  «        }	d}
t          ||||f|
d¬¦  «        \  }}}}}t	          ||¦  «         t	          ||¦  «         t	          ||¦  «         t	          |	|¦  «         t          j        ||
d¬¦  «        sJ ‚d S )Nr   r   r   r   r   r   r   r   g›Ž)aÚ?g      Ü?g      Ô?r   r    r"   r#   r?   r@   s                   r:   Útest_impulsezTestC2D.test_impulse?   sL  € Ø�VŠV�A‰YŒYˆØ�WŠW�V˜SÑ!Ô!ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ uÐ-Ñ.Ô.ˆð % r§v¢v¨a¡y¤yÑ0ˆØ—7’7˜6Ð#4Ñ5Ô5ˆØˆØ—:’: ˜x¨#¨°°Ð9Ñ:Ô:ˆØˆå  " b¨"¨bÐ!1°<Ø(1ð3ñ 3ô 3ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/ÝŒ|˜B °eÐ<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r<   c                 ó^  — |                      d¦  «        }|                     dd¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgdgg¦  «        }d}d	}d
|                      d¦  «        z  }|                     dd¦  «        }	|                     ddgddgddgg¦  «        }
|                     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/   r0   r1   r4   rP   r2   r3   rA   rB   r5   r6   r7   r8   r9   s                    r:   Útest_gbtzTestC2D.test_gbtU   se  € Ø�VŠV�A‰YŒYˆØ�WŠW�V˜SÑ!Ô!ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ wÐ/Ñ0Ô0ˆàˆØˆà˜Ÿš ™œ‘?ˆØ—7’7˜6 3Ñ'Ô'ˆØ—:’:  S˜zØ # S˜zØ # S˜zð+ñ ,ô ,ˆð —:’: ˜wØ #˜uØ &˜xð)ñ *ô *ˆõ ! " b¨"¨bÐ!1°<Ø(-°Uð<ñ <ô <ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ð/Ð/r<   c                 óX  — |                      d¦  «        }|                     dd¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgdgg¦  «        }d}d	|                      d¦  «        z  }|                     dd¦  «        }|                     ddgddgddgg¦  «        }	|}
t          ||||f|d
¬¦  «        \  }}}}}t	          ||¦  «         t	          ||¦  «         t	          |	|¦  «         t	          |
|¦  «         t          j        ||d¬¦  «        sJ ‚d S )Nr   r   r   r   r   r   r   r   ç      ø?Úeulerr    r"   r#   r?   ©r,   r-   r.   r/   r0   r1   r4   r2   r3   rA   rB   r5   r6   r7   r8   r9   s                   r:   Ú
test_eulerzTestC2D.test_eulero   sX  € Ø�VŠV�A‰YŒYˆØ�WŠW�V˜SÑ!Ô!ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ wÐ/Ñ0Ô0ˆàˆà˜Ÿš ™œ‘?ˆØ—7’7˜6 4Ñ(Ô(ˆØ—:’:  c˜{Ø # S˜zØ # T˜{ð,ñ -ô -ˆð ˆå  " b¨"¨bÐ!1°<Ø(/ð1ñ 1ô 1ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/ÝŒ|˜B °eÐ<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r<   c                 óX  — |                      d¦  «        }|                     dd¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgdgg¦  «        }d}d	|                      d¦  «        z  }|                     dd¦  «        }|                     d
d	gd	d	gd	dgg¦  «        }	|                     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       @rT   g      ì?gáz®GáÒ?Úbackward_diffr    rQ   rV   s                   r:   Útest_backward_diffzTestC2D.test_backward_diff‡   s^  € Ø�VŠV�A‰YŒYˆØ�WŠW�V˜SÑ!Ô!ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ wÐ/Ñ0Ô0ˆàˆà˜Ÿš ™œ‘?ˆØ—7’7˜6 3Ñ'Ô'ˆØ—:’:  S˜zØ # S˜zØ # S˜zð+ñ ,ô ,ˆð —:’: ˜wØ #˜uØ %˜wð(ñ )ô )ˆõ ! " b¨"¨bÐ!1°<Ø(7ð9ñ 9ô 9ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ð/Ð/r<   c                 óB  — |                      d¦  «        }|                     dd¦  «        }|                     ddgddgddgg¦  «        }|                     dgdgdgg¦  «        }d}d	|                      d¦  «        z  }|                     dd
¦  «        }|                     ddgddgdd
gg¦  «        }	|                     dgd
gdgg¦  «        }
t          ||||f|d¬¦  «        \  }}}}}t	          ||¦  «         t	          ||¦  «         t	          |	|¦  «         t	          |
|¦  «         t          j        ||d¬¦  «        sJ ‚d|                      d¦  «        z  }|                     dd¦  «        }|                     ddgddgddgg¦  «        }	|                     dgdgdgg¦  «        }
d
}t          ||||f|d¬¦  «        \  }}}}}t	          ||¦  «         t	          ||¦  «         t	          |	|¦  «         t	          |
|¦  «         t          j        ||¦  «        sJ ‚d S )Nr   r   r   r   r   r   r   r   g«ªªªªªú?rG   gUUUUUUõ?g±ªªªªªÒ?g>¿Xò‹%¿¿Úbilinearr    r"   r#   gffffffö?rL   rI   rJ   rH   rK   rM   r?   rV   s                   r:   Útest_bilinearzTestC2D.test_bilinear    sz  € Ø�VŠV�A‰YŒYˆØ�WŠW�V˜SÑ!Ô!ˆØ�ZŠZ˜$ ˜ s¨C j°3¸°+Ð>Ñ?Ô?ˆØ�ZŠZ˜#˜  ¨ wÐ/Ñ0Ô0ˆàˆà §¢¨¡¤Ñ*ˆØ—7’7˜6 9Ñ-Ô-ˆØ—:’:  YÐ/Ø )¨9Ð5Ø )¨9Ð5ð7ñ 8ô 8ˆð —:’:Ð 1Ð2Ø )˜{Ø 2Ð3ð5ñ 6ô 6ˆõ ! " b¨"¨bÐ!1°<Ø(2ð4ñ 4ô 4ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/ÝŒ|˜B °eÐ<Ñ<Ô<Ð<Ð<Ð<ð ˜Ÿš ™œ‘?ˆØ—7’7˜6 3Ñ'Ô'ˆØ—:’:  S˜z¨C°¨:¸¸S°zÐBÑCÔCˆØ—:’: ˜w¨¨°¨xÐ8Ñ9Ô9ˆà ˆå  " b¨"¨bÐ!1°<Ø(2ð4ñ 4ô 4ÑˆˆB��B˜õ 	" (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/Ý! (¨BÑ/Ô/Ð/ÝŒ|˜L¨"Ñ-Ô-Ð-Ð-Ð-Ð-Ð-r<   c                 ób  — |                      g d¢¦  «        }|                      g d¢¦  «        }|                      g d¢g¦  «        }|                      g d¢¦  «        }d}t          ||f|d¬¦  «        \  }}}	t          ||¦  «         t          ||¦  «         t          j        ||	¦  «        sJ ‚d S )N)r   r   r   )r   r   r   )rG   gN›îÕZÛ¿gÏ±†³)_Ì?)r   gŽüø]OŸõ¿g–oü²hã?r   r   r    )r(   r)   r   r*   r+   )
r,   r-   ÚnumcÚdencÚnumdÚdendr4   ÚnumÚdenr9   s
             r:   Útest_transferfunctionzTestC2D.test_transferfunctionÌ   sÆ   € Ø�zŠzÐ+Ð+Ð+Ñ,Ô,ˆØ�zŠzÐ+Ð+Ð+Ñ,Ô,ˆà�zŠzÐMÐMÐMÐNÑOÔOˆØ�zŠzÐFÐFÐFÑGÔGˆàˆå˜D $˜<¨¸eÐDÑDÔD‰ˆˆS�"å! $¨Ñ,Ô,Ð,Ý! $¨Ñ,Ô,Ð,ÝŒ|˜L¨"Ñ-Ô-Ð-Ð-Ð-Ð-Ð-r<   c                 óò  — |                      ddg¦  «        }|                      d|                     d¦  «        z  d|                     d¦  «        z  g¦  «        }d}|                     ddg¦  «        }|                     d	d
g¦  «        }d}d}t          |||f|d¬¦  «        \  }	}
}}t	          ||	¦  «         t	          ||
¦  «         t          j        ||¦  «        sJ ‚t          j        ||¦  «        sJ ‚d S )Nr   g      à¿y              ð?r   y       €      ð¿r   gwÀÄRN½ó?g.-“.ˆç?y\9¨Oî?Æ„ò°(Ö?y\9¨Oî?Æ„ò°(Ö¿r   r    )ÚarrayÚsqrtr(   r)   r   r*   r+   )r,   r-   Úzeros_cÚpoles_cÚk_cÚzeros_dÚpolls_dÚk_dr4   ÚzerosÚpolesÚkr9   s                r:   Útest_zerospolesgainzTestC2D.test_zerospolesgainÛ   s  € Ø—(’(˜C ˜;Ñ'Ô'ˆØ—(’(˜C "§'¢'¨!¡*¤*Ñ,¨d°R·W²W¸Q±Z´ZÑ.?Ð@ÑAÔAˆØˆà—*’*Ð.Ð0AÐBÑCÔCˆØ—*’*ÐDØDðFñ Gô Gˆàˆàˆå! 7¨G°SÐ"9¸<Ø).ð0ñ 0ô 0Ñˆˆu�a˜õ 	" '¨5Ñ1Ô1Ð1Ý! '¨5Ñ1Ô1Ð1ÝŒ|˜C Ñ#Ô#Ð#Ð#Ð#ÝŒ|˜L¨"Ñ-Ô-Ð-Ð-Ð-Ð-Ð-r<   T)Únp_onlyc                 ó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   rN   rO   N)r   r	   r)   r   )r,   r-   ÚAÚBÚCÚDÚcnumÚcdenÚczÚcpÚckÚhrP   ÚAdÚBdÚCdÚDdÚdnumÚddenÚc2dnumÚc2ddenr9   ÚdzÚdpÚdkÚc2dzÚc2dpÚc2dks                               r:   Ú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Ñ!Ô!Ð!Ð!Ð!r<   c                 ó¨  ‡— ˆfd„}‰                      dgg¦  «        }‰                      dgg¦  «        }‰                      dgg¦  «        }‰                      dgg¦  «        }d}‰                     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                 ó4   •— ‰                      d| z  ¦  «        S )Ng      @)Úsin)Útr-   s    €r:   Úuz'TestC2D.test_discrete_approx.<locals>.u"  s   ø€ Ø—6’6˜# ™'‘?”?Ð"r<   g{®Gáz„¿r   rL   r   g      $@ée   r   )ÚTÚUÚX0r\   r    r   Néÿÿÿÿ)r’   r‘   Úx0g-Cëâ6?©Úrtol)r(   Úlinspacer
   r)   r   Úreshaper   Úravel)r,   r-   r’   ÚaÚbÚcÚdr˜   r‘   r9   Úu1ÚyoutÚxoutÚdsysÚu2Út2Útd2Úyd2Úxd2Úymids    `                  r:   Útest_discrete_approxzTestC2D.test_discrete_approx  sŠ  ø€ ð	#ð 	#ð 	#ð 	#ð 	#ð �JŠJ˜˜�yÑ!Ô!ˆØ�JŠJ˜˜�wÑÔˆØ�JŠJ˜˜�wÑÔˆØ�JŠJ˜˜�wÑÔˆØˆà�KŠ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Ð5r<   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¬¦  «         d S )	Nr   r   ç{®Gáz„?gUùxÊe±ï¿gü©ñÒMbP?r™   r—   gÞT(û|®ï¿)r)   r   )r,   Útfrc   rd   r9   s        r:   Útest_simo_tfzTestC2D.test_simo_tfB  s‚   € ð �1ˆv˜˜1�vÐ  A Ð'ˆÝ˜2˜t‘}”}‰ˆˆS�"à�TŠzˆzˆzˆzÝ˜˜a Ð.°TÐ:Ñ:Ô:Ð:Ý˜˜q "˜g¨¨;Ð'7Ð8¸tÐDÑDÔDÐDÐDÐDr<   c                 ó¦  — 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¬¦  «         d S )Nr®   r   éýÿÿÿé   r   g‚vIhÂ%<=r™   )r)   r   ÚnpÚvstack)r,   Útsr¯   rc   rd   r9   Útf1Únum1Úden1Údt1Útf2Únum2Úden2Údt2s                 r:   Útest_multioutputzTestC2D.test_multioutputL  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ˆyˆyØ�SŠyˆyˆyˆyõ 	˜�RœY¨¨d |Ñ4Ô4¸5ÐAÑAÔAÐAõ 	˜˜T¨Ð.Ñ.Ô.Ð.Ý˜˜T¨Ð.Ñ.Ô.Ð.Ð.Ð.r<   N)Ú__name__Ú
__module__Ú__qualname__r;   rC   rE   rR   rW   rZ   r]   re   rr   Úskip_xp_backendsr�   r¬   r°   r¿   © r<   r:   r   r      s.  € € € € € ð=ð =ð =ð&=ð =ð =ð.=ð =ð =ð,0ð 0ð 0ð4=ð =ð =ð00ð 0ð 0ð2*.ð *.ð *.ðX.ð .ð .ð.ð .ð .ð( Ð˜dÐ#Ñ#Ô#ð("ð ("ñ $Ô#ð("ðT&6ð &6ð &6ðP Ð˜dÐ#Ñ#Ô#ðEð Eñ $Ô#ðEð Ð˜dÐ#Ñ#Ô#ð/ð /ñ $Ô#ð/ð /ð /r<   r   Tzlti currently not supported)rs   Úreasonc                   ó   — 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}d}t          j        dd	gd
dgg¦  «        }t          j        dgdgg¦  «        }t          ||||¦  «        }	|	                     |¬¦  «        }
t	          |
j        |¦  «         t	          |
j        |¦  «         t	          |
j        |¦  «         t	          |
j        t          j	        |
j        ¦  «        ¦  «         t          |	|¬¦  «        }t	          |j        |¦  «         t	          |j        |¦  «         t	          |j        |¦  «         t	          |j        t          j	        |j        ¦  «        ¦  «         d S )Ng333333Ó¿çš™™™™™¹?rL   gffffffæ¿r   r   gš™™™™™©?gÐ“»Ç<†ï?gö‡�ùs?gö‡�ùƒ?gã{Kpæî?g1vMñ ?g_†Ç·J(©?)r9   )r´   rg   r   Úto_discreter   ru   rv   rw   rx   Ú
zeros_liker)   )r,   r-   ru   rv   rw   rx   r9   ÚA_resÚB_resÚsys_sscÚsys_ssdÚsys_ssd2s               r:   Útest_c2d_sszTestC2dLti.test_c2d_ssg  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‘/”/ˆØ×%Ò%¨Ð%Ñ,Ô,ˆå˜œ	 5Ñ)Ô)Ð)Ý˜œ	 5Ñ)Ô)Ð)Ý˜œ	 1Ñ%Ô%Ð%Ý˜œ	¥2¤=°´Ñ#;Ô#;Ñ<Ô<Ð<å�w 2Ð&Ñ&Ô&ˆå˜œ
 EÑ*Ô*Ð*Ý˜œ
 EÑ*Ô*Ð*Ý˜œ
 AÑ&Ô&Ð&Ý˜œ
¥B¤M°(´*Ñ$=Ô$=Ñ>Ô>Ð>Ð>Ð>r<   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   rH   r   gš™™™™™Ù?g{®Gázt?g�â„i®ß¿gYì­›É]ï¿g{®Gáz”?)Úatol)r   rÊ   r´   rg   r   rd   rc   )r,   r-   ÚsysÚnum_resÚden_ress        r:   Útest_c2d_tfzTestC2dLti.test_c2d_tf‚  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Ð4r<   N)rÀ   rÁ   rÂ   rÑ   r×   rÄ   r<   r:   rÇ   rÇ   e  s2   € € € € € ð?ð ?ð ?ð65ð 5ð 5ð 5ð 5r<   rÇ   c                   óv  — 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ee¦  «        ej	         
                    d
e¦  «        d„ ¦   «         ¦   «         Zej	         
                    d
e¦  «        d„ ¦   «         Zej	         
                    d
e¦  «        d„ ¦   «         ZdS )ÚTestC2dInvariantsr   )r   rT   r   r   é
   r   )r   rT   é   r   r   rÉ   )r   r   r   r   zsys,sample_time,samples_numberc                 ó~  — t          t          |j        |¦  «        ¦  «        }|                     |¦  «        |z  }t	          ||¬¦  «        \  }}t          t          ||d¬¦  «        t          |¦  «        ¬¦  «        \  }}t          || 	                    ¦   «         z  |d          	                    ¦   «         ¦  «         d S )N©r”   r   r    ©Únr   )
ÚtupleÚmapr(   Úaranger   r   r)   Úlenr   r�   ©	r,   r-   rÔ   Úsample_timeÚsamples_numberÚtimeÚ_Ú	yout_contÚ	yout_discs	            r:   Útest_impulse_invariantz(TestC2dInvariants.test_impulse_invariantœ  s°   € õ •C˜œ
 CÑ(Ô(Ñ)Ô)ˆØ�yŠ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ÐNr<   c                 óx  — t          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   r�   rä   s	            r:   Útest_step_invariantz%TestC2dInvariants.test_step_invariant§  s¢   € å•C˜œ
 CÑ(Ô(Ñ)Ô)ˆØ�yŠy˜Ñ(Ô(¨;Ñ6ˆÝ˜C 4Ð(Ñ(Ô(‰ˆˆ9Ý�S  k¸%Ð@Ñ@Ô@ÅCÈÁIÄIÐNÑNÔN‰ˆˆ9Ý˜	ŸšÑ)Ô)¨9°Q¬<×+=Ò+=Ñ+?Ô+?Ñ@Ô@Ð@Ð@Ð@r<   c                 óX  — t          t          |j        |¦  «        ¦  «        }|                     |¦  «        |z  }t	          |||¬¦  «        \  }}}t          t          ||d¬¦  «        |¬¦  «        \  }}}t          |                     ¦   «         |                     ¦   «         ¦  «         d S )N)r”   r•   r>   r    )r’   )	rà   rá   r(   râ   r
   r   r)   r   r�   rä   s	            r:   Útest_linear_invariantz'TestC2dInvariants.test_linear_invariant°  sœ   € å•C˜œ
 CÑ(Ô(Ñ)Ô)ˆØ�yŠy˜Ñ(Ô(¨;Ñ6ˆÝ˜s d¨dÐ3Ñ3Ô3‰ˆˆ9�aÝ¥ C¨¸UÐ CÑ CÔ CÀtÐLÑLÔL‰ˆˆ9�aÝ˜	ŸšÑ)Ô)¨9¯?ª?Ñ+<Ô+<Ñ=Ô=Ð=Ð=Ð=r<   N)rÀ   rÁ   rÂ   r   Úcasesr   r   r   ÚpytestÚmarkÚparametrizerë   rí   rï   rÄ   r<   r:   rÙ   rÙ   �  s!  € € € € € ð
 
ˆ��1ˆv�{�{�{Ñ	#Ô	# T¨2Ð.Ø	ˆ��1ˆv�~�~�~Ñ	&Ô	&¨¨RÐ0Ø	ˆˆs�L�L�LÑ	!Ô	! 3¨Ð+ð€Eð Ð�w Ñ)Ô)Ø„[×ÒÐ=¸uÑEÔEðOð Oñ FÔEñ *Ô)ðOð „[×ÒÐ=¸uÑEÔEðAð Añ FÔEðAð „[×ÒÐ=¸uÑEÔEð>ð >ñ FÔEð>ð >ð >r<   rÙ   )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Ç   rÙ   rÄ   r<   r:   ú<module>r÷      s¥  ðØ €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 €€€Ø -Ð -Ð -Ð -Ð -Ð -Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð
 ”;Ô/Ð ð Ð�3ÑÔðO/ð O/ð O/ð O/ð O/ñ O/ô O/ñ ÔðO/ðb
 Ð˜$Ð'DÐEÑEÔEð'5ð '5ð '5ð '5ð '5ñ '5ô '5ñ FÔEð'5ðT Ð�3ÑÔð%>ð %>ð %>ð %>ð %>ñ %>ô %>ñ Ôð%>ð %>ð %>r<   