Ë
    éì�iò4  ã                   óÖ   — d dl Zd dlmZ d dlmZmZmZ d dl	m
c mZ d„ Zdd„Zd„ Zd„ Z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y)é    N)Úraises)Úassert_almost_equalÚxp_assert_equalÚxp_assert_closec                 ó"   — |||z
  | z  |z  z   }|S ©N© ©ÚtÚf0Úf1Út1Úfs        ú†/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/scipy/signal/tests/test_waveforms.pyÚchirp_linearr      s   € Ø
ˆb�2‰g˜‰]˜RÑÑ€AØ€Hó    c                 ód   — |r|||z
  | dz  z  |dz  z  z   }|S |||z
  || z
  dz  z  |dz  z  z
  }|S )Né   r	   )r   r   r   r   Úvertex_zeror   s         r   Úchirp_quadraticr      sW   € ÙØ�"�r‘'˜Q ™TÑ! B¨¡EÑ)Ñ)ˆð €Hð �"�r‘'˜b 1™f q™[Ñ(¨2¨q©5Ñ0Ñ0ˆØ€Hr   c                 ó"   — |||z  | |z  z  z  }|S r   r	   r
   s        r   Úchirp_geometricr      s   € Ø
ˆb�‰e�q˜‘t‰_Ñ€AØ€Hr   c                 ó4   — ||z  |z  ||z
  | z  ||z  z   z  }|S r   r	   r
   s        r   Úchirp_hyperbolicr      s*   € Ø
ˆ2‰ˆb‰�R˜"‘W˜a‘K " R¡%Ñ'Ñ(€AØ€Hr   c                 ó”   — | d   | d   z
  }t        j                  |«      dt         j                  z  z  |z  }d| dd | dd z   z  }||fS )zR
    Compute theta'(t)/(2*pi), where theta'(t) is the derivative of theta(t).
    é   r   r   ç      à?Néÿÿÿÿ)ÚnpÚdiffÚpi)r   ÚthetaÚdtr   Útfs        r   Úcompute_frequencyr%   $   sW   € ð 
ˆ1‰��!‘‰€BÜ
�‰�‹˜œ"Ÿ%™%™Ñ  2Ñ%€AØ	ˆa��ˆe�a˜˜�f‰nÑ	€BØˆqˆ5€Lr   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y)Ú	TestChirpc                 óP   — t        j                  ddddd¬«      }t        |d«       y )Nr   ç      ð?ç       @Úlinear©r   r   r   r   Úmethod©Ú	waveformsÚchirpr   ©ÚselfÚws     r   Útest_linear_at_zerozTestChirp.test_linear_at_zero2   s"   € Ü�O‰O˜a C¨C°CÀÔIˆÜ˜A˜sÕ#r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )Nr+   r)   r*   r   éd   ç�íµ ÷Æ°>©r   Úlinspacer/   Ú_chirp_phaser%   ÚmaxÚabsr   ©
r2   r-   r   r   r   r   Úphaser$   r   Úabserrs
             r   Útest_linear_freq_01zTestChirp.test_linear_freq_016   sƒ   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜sÓ#ˆÜ×&Ñ& q¨"¨b°"°fÓ=ˆÜ! ! UÓ+‰ˆˆAÜ—‘œŸ™˜q¤<°°B¸¸BÓ#?Ñ?Ó@ÓAˆØ˜Š}Ð‰}r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )Nr+   ç      i@ç      Y@ç      $@r   r6   r7   r8   r=   s
             r   Útest_linear_freq_02zTestChirp.test_linear_freq_02A   sƒ   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜sÓ#ˆÜ×&Ñ& q¨"¨b°"°fÓ=ˆÜ! ! UÓ+‰ˆˆAÜ—‘œŸ™˜q¤<°°B¸¸BÓ#?Ñ?Ó@ÓAˆØ˜Š}Ð‰}r   c                 ó@  — d}d}d}d}t        j                  d|d«      }t        j                  |||||d¬«      }t        j                  |||||d¬«      }t        j                  |«      }t        j                  |«      }	|t        j
                  |	«      z
  }
|
d	k  sJ ‚y )
Nr+   r)   r*   r   r6   F)ÚcomplexTr7   )r   r9   r/   r0   ÚvarÚreal)r2   r-   r   r   r   r   Úw_realÚ	w_complexÚw_pwr_rÚw_pwr_cÚerrs              r   Útest_linear_complex_powerz#TestChirp.test_linear_complex_powerL   s”   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜sÓ#ˆÜ—‘  B¨¨B°ÀÔFˆÜ—O‘O A r¨2¨r°6À4ÔHˆ	Ü—&‘&˜“.ˆÜ—&‘&˜Ó#ˆð œŸ™ Ó(Ñ(ˆà�TŠzÐ‰zr   c                 óR   — t        j                  dddddd¬«      }t        |d«       y )Nr   ç      $Àr)   r+   T©r   r   r   r   r-   rG   ù      ð?        ©r/   r0   r   r1   s     r   Útest_linear_complex_at_zeroz%TestChirp.test_linear_complex_at_zero]   s'   € Ü�O‰O˜a E¨c°cÀ(Ø$(ô*ˆä˜˜8Õ$r   c                 óP   — t        j                  ddddd¬«      }t        |d«       y )Nr   r)   r*   Ú	quadraticr,   r.   r1   s     r   Útest_quadratic_at_zeroz TestChirp.test_quadratic_at_zerob   s"   € Ü�O‰O˜a C¨C°CÀÔLˆÜ˜A˜sÕ#r   c                 óR   — t        j                  dddddd¬«      }t        |d«       y )Nr   r)   r*   rW   F)r   r   r   r   r-   r   r.   r1   s     r   Útest_quadratic_at_zero2z!TestChirp.test_quadratic_at_zero2f   s'   € Ü�O‰O˜a C¨C°CÀØ(-ô/ˆä˜A˜sÕ#r   c                 óR   — t        j                  dddddd¬«      }t        |d«       y )	Nr   ç      ð¿r*   r)   rW   TrR   rS   rT   r1   s     r   Útest_quadratic_complex_at_zeroz(TestChirp.test_quadratic_complex_at_zerok   s'   € Ü�O‰O˜a D¨S°SÀØ$(ô*ˆä˜˜6Õ"r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )NrW   r)   r*   r   éÐ  r7   ©r   r9   r/   r:   r%   r;   r<   r   r=   s
             r   Útest_quadratic_freq_01z TestChirp.test_quadratic_freq_01p   sƒ   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜tÓ$ˆÜ×&Ñ& q¨"¨b°"°fÓ=ˆÜ! ! UÓ+‰ˆˆAÜ—‘œŸ™˜q¤?°2°r¸2¸rÓ#BÑBÓCÓDˆØ˜Š}Ð‰}r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )NrW   ç      4@rD   r   r_   r7   r`   r=   s
             r   Útest_quadratic_freq_02z TestChirp.test_quadratic_freq_02{   sƒ   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜tÓ$ˆÜ×&Ñ& q¨"¨b°"°fÓ=ˆÜ! ! UÓ+‰ˆˆAÜ—‘œŸ™˜q¤?°2°r¸2¸rÓ#BÑBÓCÓDˆØ˜Š}Ð‰}r   c                 óP   — t        j                  ddddd¬«      }t        |d«       y )Nr   r)   r*   Úlogarithmicr,   r.   r1   s     r   Útest_logarithmic_at_zeroz"TestChirp.test_logarithmic_at_zero†   s"   € Ü�O‰O˜a C¨C°CÀÔNˆÜ˜A˜sÕ#r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )Nrf   r)   r*   r   é'  r7   ©r   r9   r/   r:   r%   r;   r<   r   r=   s
             r   Útest_logarithmic_freq_01z"TestChirp.test_logarithmic_freq_01Š   sƒ   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜uÓ%ˆÜ×&Ñ& q¨"¨b°"°fÓ=ˆÜ! ! UÓ+‰ˆˆAÜ—‘œŸ™˜q¤?°2°r¸2¸rÓ#BÑBÓCÓDˆØ˜Š}Ð‰}r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )Nrf   rB   rC   rD   r   ri   r7   rj   r=   s
             r   Útest_logarithmic_freq_02z"TestChirp.test_logarithmic_freq_02•   óƒ   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜uÓ%ˆÜ×&Ñ& q¨"¨b°"°fÓ=ˆÜ! ! UÓ+‰ˆˆAÜ—‘œŸ™˜q¤?°2°r¸2¸rÓ#BÑBÓCÓDˆØ˜Š}Ð‰}r   c                 ó  — d}d}d}d}t        j                  d|d«      }t        j                  |||||«      }t	        ||«      \  }}t        j
                  t        j                  |t        ||||«      z
  «      «      }	|	dk  sJ ‚y )Nrf   rC   rD   r   ri   r7   rj   r=   s
             r   Útest_logarithmic_freq_03z"TestChirp.test_logarithmic_freq_03    rn   r   c                 óP   — t        j                  ddddd¬«      }t        |d«       y )Nr   rD   r)   Ú
hyperbolicr,   r.   r1   s     r   Útest_hyperbolic_at_zeroz!TestChirp.test_hyperbolic_at_zero«   s"   € Ü�O‰O˜a D¨S°SÀÔNˆÜ˜A˜sÕ#r   c                 óò   — d}d}t        j                  d|d«      }ddgddgddgddgg}|D ]I  \  }}t        j                  |||||«      }t	        ||«      \  }}	t        ||||«      }
t        |	|
d¬	«       ŒK y )
Nrr   r)   r   ri   rD   rQ   r\   gH¯¼šò×z>)Úatol)r   r9   r/   r:   r%   r   r   )r2   r-   r   r   Úcasesr   r   r>   r$   r   Úexpecteds              r   Útest_hyperbolic_freq_01z!TestChirp.test_hyperbolic_freq_01¯   sš   € ØˆØˆÜ�K‰K˜˜2˜uÓ%ˆà˜�Ø�t�Ø˜�Ø˜�ð ˆð ò 	4‰FˆB�Ü×*Ñ*¨1¨b°"°b¸&ÓAˆEÜ% a¨Ó/‰EˆB�Ü'¨¨B°°BÓ7ˆHÜ˜A˜x¨dÖ3ñ		4r   c           	      óÆ   — d}d}t        j                  d|d«      }t        t        t        j
                  |d|d|«       t        t        t        j
                  |d|d|«       y )Nrr   r)   r   é   r   ©r   r9   Úassert_raisesÚ
ValueErrorr/   r0   )r2   r-   r   r   s       r   Útest_hyperbolic_zero_freqz#TestChirp.test_hyperbolic_zero_freq¾   sN   € àˆØˆÜ�K‰K˜˜2˜qÓ!ˆÜ”j¤)§/¡/°1°a¸¸QÀÔGÜ”j¤)§/¡/°1°a¸¸QÀÕGr   c           	      óˆ   — d}d}d}d}t        j                  d|d«      }t        t        t        j
                  |||||«       y )NÚfoorD   rc   r)   r   é
   r{   )r2   r-   r   r   r   r   s         r   Útest_unknown_methodzTestChirp.test_unknown_methodÆ   s@   € ØˆØˆØˆØˆÜ�K‰K˜˜2˜rÓ"ˆÜ”j¤)§/¡/°1°b¸"¸bÀ&ÕIr   c                 óÂ   — d}d}t        j                  ddd«      }d}t        j                  ||||«      }d}t        j                  ||||«      }d}t	        |||¬	«       y )
NrD   rc   r   r   é   ç      @é   z'Integer input 't1=3' gives wrong result©Úerr_msg©r   r9   r/   r0   r   )r2   r   r   r   r   Úfloat_resultÚ
int_resultrˆ   s           r   Útest_integer_t1zTestChirp.test_integer_t1Î   sa   € ØˆØˆÜ�K‰K˜˜A˜rÓ"ˆØˆÜ —‘ q¨"¨b°"Ó5ˆØˆÜ—_‘_ Q¨¨B°Ó3ˆ
Ø;ˆÜ˜
 L¸'ÖBr   c                 óÂ   — d}d}t        j                  ddd«      }d}t        j                  ||||«      }d}t        j                  ||||«      }d}t	        |||¬	«       y )
Nrc   r…   r   r   r„   rD   r�   z(Integer input 'f0=10' gives wrong resultr‡   r‰   )r2   r   r   r   r   rŠ   r‹   rˆ   s           r   Útest_integer_f0zTestChirp.test_integer_f0Ù   óa   € ØˆØˆÜ�K‰K˜˜A˜rÓ"ˆØˆÜ —‘ q¨"¨b°"Ó5ˆØˆÜ—_‘_ Q¨¨B°Ó3ˆ
Ø<ˆÜ˜
 L¸'ÖBr   c                 óÂ   — d}d}t        j                  ddd«      }d}t        j                  ||||«      }d}t        j                  ||||«      }d}t	        |||¬	«       y )
NrD   r…   r   r   r„   rc   é   z(Integer input 'f1=20' gives wrong resultr‡   r‰   )r2   r   r   r   r   rŠ   r‹   rˆ   s           r   Útest_integer_f1zTestChirp.test_integer_f1ä   r�   r   c                 óô   — d}d}d}t        j                  ddd«      }t        j                  |t	        |«      t	        |«      t	        |«      «      }t        j                  ||||«      }d}t        |||¬«       y )	Nr�   r†   r‘   r   r   r„   z5Integer input 'f0=10, t1=3, f1=20' gives wrong resultr‡   )r   r9   r/   r0   Úfloatr   )r2   r   r   r   r   rŠ   r‹   rˆ   s           r   Útest_integer_allzTestChirp.test_integer_allï   sh   € ØˆØˆØˆÜ�K‰K˜˜A˜rÓ"ˆÜ —‘ q¬%°«)´U¸2³YÄÀbÃ	ÓJˆÜ—_‘_ Q¨¨B°Ó3ˆ
ØIˆÜ˜
 L¸'ÖBr   N)Ú__name__Ú
__module__Ú__qualname__r4   r@   rE   rO   rU   rX   rZ   r]   ra   rd   rg   rk   rm   rp   rs   rx   r~   r‚   rŒ   rŽ   r’   r•   r	   r   r   r'   r'   0   sv   „ ò$ò	ò	òò"%ò
$ò$ò
#ò
	ò	ò$ò	ò	ò	ò$ò4òHòJò	Cò	Cò	CóCr   r'   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestSweepPolyc                 ó  — t        j                  g d¢«      }t        j                  ddd«      }t        j                  ||«      }t        ||«      \  }} ||«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y )N)r)   ç        r)   r   r…   ri   r7   ©r   Úpoly1dr9   r/   Ú_sweep_poly_phaser%   r;   r<   ©r2   Úpr   r>   r$   r   rw   r?   s           r   Útest_sweep_poly_quad1z#TestSweepPoly.test_sweep_poly_quad1ü   st   € Ü�I‰I’oÓ&ˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAÙ�R“5ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   c                 ó  — t        j                  d«      }t        j                  ddd«      }t        j                  ||«      }t        ||«      \  }} ||«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y )Nr*   r   r…   ri   r7   r�   r    s           r   Útest_sweep_poly_constz#TestSweepPoly.test_sweep_poly_const  ss   € Ü�I‰I�c‹NˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAÙ�R“5ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   c                 ó  — t        j                  ddg«      }t        j                  ddd«      }t        j                  ||«      }t        ||«      \  }} ||«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y )Nr\   rD   r   r…   ri   r7   r�   r    s           r   Útest_sweep_poly_linearz$TestSweepPoly.test_sweep_poly_linear  sx   € Ü�I‰I�t˜T�lÓ#ˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAÙ�R“5ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   c                 ó  — t        j                  g d¢«      }t        j                  ddd«      }t        j                  ||«      }t        ||«      \  }} ||«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y )N)r)   rœ   ç       Àr   r…   ri   r7   r�   r    s           r   Útest_sweep_poly_quad2z#TestSweepPoly.test_sweep_poly_quad2  su   € Ü�I‰IÒ&Ó'ˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAÙ�R“5ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   c                 ó  — t        j                  g d¢«      }t        j                  ddd«      }t        j                  ||«      }t        ||«      \  }} ||«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y )N©r*   r)   rœ   r¨   r   r*   ri   r7   r�   r    s           r   Útest_sweep_poly_cubicz#TestSweepPoly.test_sweep_poly_cubic   su   € Ü�I‰IÒ+Ó,ˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAÙ�R“5ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   c                 óD  — t        j                  g d¢«      }t        j                  ddd«      }t        j                  ||«      }t        ||«      \  }} t        j                  |«      |«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y)z1Use an array of coefficients instead of a poly1d.r«   r   r*   ri   r7   N)	r   Úarrayr9   r/   rŸ   r%   rž   r;   r<   r    s           r   Útest_sweep_poly_cubic2z$TestSweepPoly.test_sweep_poly_cubic2)  s€   € ä�H‰HÒ*Ó+ˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAØ”2—9‘9˜Q“< Ó#ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   c                 ó  — g d¢}t        j                  ddd«      }t        j                  ||«      }t	        ||«      \  }} t        j
                  |«      |«      }t        j                  t        j                  ||z
  «      «      }|dk  sJ ‚y)z/Use a list of coefficients instead of a poly1d.r«   r   r*   ri   r7   N)r   r9   r/   rŸ   r%   rž   r;   r<   r    s           r   Útest_sweep_poly_cubic3z$TestSweepPoly.test_sweep_poly_cubic33  sv   € â!ˆÜ�K‰K˜˜3 Ó&ˆÜ×+Ñ+¨A¨qÓ1ˆÜ! ! UÓ+‰ˆˆAØ”2—9‘9˜Q“< Ó#ˆÜ—‘œŸ™˜q 8™|Ó,Ó-ˆØ˜Š}Ð‰}r   N)
r–   r—   r˜   r¢   r¤   r¦   r©   r¬   r¯   r±   r	   r   r   rš   rš   ú   s%   „ òòòòòòór   rš   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestGaussPulsec                 ó€   — t        j                  dd¬«      }t        j                  dd¬«      }d}t        |||¬«       y )NÚcutoffg     @�@)Úfciè  z*Integer input 'fc=1000' gives wrong resultr‡   ©r/   Ú
gausspulser   ©r2   rŠ   r‹   rˆ   s       r   Útest_integer_fczTestGaussPulse.test_integer_fc@  s7   € Ü ×+Ñ+¨H¸Ô@ˆÜ×)Ñ)¨(°tÔ<ˆ
Ø>ˆÜ˜
 L¸'ÖBr   c                 ó€   — t        j                  dd¬«      }t        j                  dd¬«      }d}t        |||¬«       y )Nrµ   r)   )Úbwr   z'Integer input 'bw=1' gives wrong resultr‡   r·   r¹   s       r   Útest_integer_bwzTestGaussPulse.test_integer_bwF  s7   € Ü ×+Ñ+¨H¸Ô=ˆÜ×)Ñ)¨(°qÔ9ˆ
Ø;ˆÜ˜
 L¸'ÖBr   c                 ó€   — t        j                  dd¬«      }t        j                  dd¬«      }d}t        |||¬«       y )Nrµ   g      À)Úbwriúÿÿÿz)Integer input 'bwr=-6' gives wrong resultr‡   r·   r¹   s       r   Útest_integer_bwrzTestGaussPulse.test_integer_bwrL  s7   € Ü ×+Ñ+¨H¸$Ô?ˆÜ×)Ñ)¨(¸Ô;ˆ
Ø=ˆÜ˜
 L¸'ÖBr   c                 ó€   — t        j                  dd¬«      }t        j                  dd¬«      }d}t        |||¬«       y )Nrµ   g      NÀ)ÚtpriÄÿÿÿz*Integer input 'tpr=-60' gives wrong resultr‡   r·   r¹   s       r   Útest_integer_tprzTestGaussPulse.test_integer_tprR  s7   € Ü ×+Ñ+¨H¸%Ô@ˆÜ×)Ñ)¨(¸Ô<ˆ
Ø>ˆÜ˜
 L¸'ÖBr   N)r–   r—   r˜   rº   r½   rÀ   rÃ   r	   r   r   r³   r³   >  s   „ òCòCòCóCr   r³   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestUnitImpulsec           	      óâ   — t        t        j                  d«      t        j                  g d¢«      «       t        t        j                  d«      t        j                  g d¢g d¢g d¢g«      «       y )Né   )r)   r   r   r   r   r   r   ©r†   r†   )r)   r   r   ©r   r   r   ©r   r/   Úunit_impulser   Úasarray©r2   s    r   Útest_no_indexzTestUnitImpulse.test_no_index[  sM   € Üœ	×.Ñ.¨qÓ1ÜŸ
™
Ò#:Ó;ô	=äœ	×.Ñ.¨vÓ6ÜŸ
™
¢K²ºIÐ#FÓGõ	Ir   c           
      óh  — t        t        j                  dd«      t        j                  g d¢«      «       t        t        j                  dd«      t        j                  g d¢g d¢g d¢g«      «       t        j                  d	d
«      }t        |t        j                  g d¢g d¢g d¢g d¢g«      «       y )Nr�   r†   )
rœ   r   r   r   r   r   r   r   r   r   rÈ   )r   r   ©rœ   r   r   ©r   r   r   rÉ   )é   rÒ   r   )rœ   r   r   r   )rœ   r   r   r   rÊ   ©r2   Úimps     r   Ú
test_indexzTestUnitImpulse.test_indexa  s‹   € Üœ	×.Ñ.¨r°1Ó5ÜŸ
™
Ò#CÓDô	Fäœ	×.Ñ.¨v°vÓ>ÜŸ
™
¢K²ºIÐ#FÓGô	Iô ×$Ñ$ V¨QÓ/ˆÜ˜œRŸZ™ZªÚ)7Ú)7Ú)7ð)9ó :õ 	;r   c           	      óæ   — t        t        j                  dd«      t        j                  g d¢g d¢g d¢g«      «       t        t        j                  dd«      t        j                  g d¢«      «       y )NrÈ   ÚmidrÐ   rÑ   rÉ   é	   )	rœ   r   r   r   r   r   r   r   r   rÊ   rÍ   s    r   Útest_midzTestUnitImpulse.test_midn  sR   € Üœ	×.Ñ.¨v°uÓ=ÜŸ
™
¢K²ºIÐ#FÓGô	Iäœ	×.Ñ.¨q°%Ó8ÜŸ
™
Ò#@ÓAõ	Cr   c                 ó¾  — t        j                  d«      }t        j                  |j                  t        j
                  «      sJ ‚t        j                  ddt        ¬«      }t        j                  |j                  t        j                  «      sJ ‚t        j                  ddt        ¬«      }t        j                  |j                  t        j                  «      sJ ‚y )NrÇ   rz   r†   ©Údtype)rz   r   )r†   r   )
r/   rË   r   Ú
issubdtyperÜ   ÚfloatingÚintÚintegerrG   ÚcomplexfloatingrÓ   s     r   Ú
test_dtypezTestUnitImpulse.test_dtypet  s�   € Ü×$Ñ$ QÓ'ˆÜ�}‰}˜SŸY™Y¬¯©Ô4Ð4Ð4ä×$Ñ$ Q¨´Ô5ˆÜ�}‰}˜SŸY™Y¬¯
©
Ô3Ð3Ð3ä×$Ñ$ V¨V¼7ÔCˆÜ�}‰}˜SŸY™Y¬×(:Ñ(:Ô;Ð;Ñ;r   N)r–   r—   r˜   rÎ   rÕ   rÙ   râ   r	   r   r   rÅ   rÅ   Y  s   „ òIò;òCó<r   rÅ   c                   ó   — e Zd Zd„ Zy)ÚTestSawtoothWaveformc                 óD  — t        j                  t        j                  dt        j                  ¬«      t        j                  d«      ¬«      }|j
                  t        j                  k(  sJ ‚t        j                  d«      }|j
                  t        j                  k(  sJ ‚y )Nr   rÛ   )Úwidth)r/   Úsawtoothr   r®   Úfloat32rÜ   Úfloat64©r2   Úwaveforms     r   râ   zTestSawtoothWaveform.test_dtype€  sl   € Ü×%Ñ%Ü�H‰H�QœbŸj™jÔ)´·±¸A³ô
ˆð �~‰~¤§¡Ò+Ð+Ð+ä×%Ñ% aÓ(ˆØ�~‰~¤§¡Ò+Ð+Ñ+r   N©r–   r—   r˜   râ   r	   r   r   rä   rä     s   „ ó,r   rä   c                   ó   — e Zd Zd„ Zy)ÚTestSquareWaveformc                 óD  — t        j                  t        j                  dt        j                  ¬«      t        j                  d«      ¬«      }|j
                  t        j                  k(  sJ ‚t        j                  d«      }|j
                  t        j                  k(  sJ ‚y )Nr   rÛ   r   )Úduty)r/   Úsquarer   r®   rè   rÜ   ré   rê   s     r   râ   zTestSquareWaveform.test_dtype‹  sh   € Ü×#Ñ#¤B§H¡H¨Q´b·j±jÔ$AÌÏ
É
ÐSVËÔXˆØ�~‰~¤§¡Ò+Ð+Ð+ä×#Ñ# AÓ&ˆØ�~‰~¤§¡Ò+Ð+Ñ+r   Nrì   r	   r   r   rî   rî   Š  s   „ ó,r   rî   )T)Únumpyr   Úpytestr   r|   Úscipy._lib._array_apir   r   r   Úscipy.signal._waveformsÚsignalÚ
_waveformsr/   r   r   r   r   r%   r'   rš   r³   rÅ   rä   rî   r	   r   r   ú<module>rø      s}   ðÛ Ý *÷ñ ÷ ,Ð +òó
òò
ò
	÷GCñ GC÷TAñ A÷HCñ C÷6#<ñ #<÷L,ñ ,÷,ò ,r   