§
    fŠtjò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dS )é    N)Úraises)Úassert_almost_equalÚxp_assert_equalÚxp_assert_closec                 ó"   — |||z
  | z  |z  z   }|S ©N© ©ÚtÚf0Úf1Út1Úfs        ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/signal/tests/test_waveforms.pyÚchirp_linearr      s   € Ø
ˆb�2‰g˜‰]˜RÑÑ€AØ€Hó    Tc                 ób   — |r|||z
  | dz  z  |dz  z  z   }n|||z
  || z
  dz  z  |dz  z  z
  }|S )Né   r	   )r   r   r   r   Úvertex_zeror   s         r   Úchirp_quadraticr      sU   € Øð 1Ø�"�r‘'˜Q ™TÑ! B¨¡EÑ)Ñ)ˆˆà�"�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%   $   sY   € ð 
ˆ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dS )Ú	TestChirpc                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   ç      ð?ç       @Úlinear©r   r   r   r   Úmethod©Ú	waveformsÚchirpr   ©ÚselfÚws     r   Útest_linear_at_zerozTestChirp.test_linear_at_zero2   s2   € ÝŒO˜a C¨C°CÀÐIÑIÔ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 ‚d S )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˜˜2˜sÑ#Ô#ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥<°°B¸¸BÑ#?Ô#?Ñ?Ñ@Ô@ÑAÔAˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 ó  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	|	dk     sJ ‚d S )Nr+   ç      i@ç      Y@ç      $@r   r6   r7   r8   r=   s
             r   Útest_linear_freq_02zTestChirp.test_linear_freq_02A   s‘   € ØˆØˆØˆØˆÝŒK˜˜2˜sÑ#Ô#ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥<°°B¸¸BÑ#?Ô#?Ñ?Ñ@Ô@ÑAÔAˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 ó8  — 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 ‚d S )
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˜˜2˜sÑ#Ô#ˆÝ”  B¨¨B°ÀÐFÑFÔFˆÝ”O A r¨2¨r°6À4ÐHÑHÔHˆ	Ý”&˜‘.”.ˆÝ”&˜Ñ#Ô#ˆð �œ Ñ(Ô(Ñ(ˆà�TŠzˆzˆzˆzˆzˆzr   c                 óZ   — t          j        dddddd¬¦  «        }t          |d¦  «         d S )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˜a E¨c°cÀ(Ø$(ð*ñ *ô *ˆå˜˜8Ñ$Ô$Ð$Ð$Ð$r   c                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   r)   r*   Ú	quadraticr,   r.   r1   s     r   Útest_quadratic_at_zeroz TestChirp.test_quadratic_at_zerob   s2   € ÝŒO˜a C¨C°CÀÐLÑLÔLˆÝ˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 óZ   — t          j        dddddd¬¦  «        }t          |d¦  «         d S )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˜a C¨C°CÀØ(-ð/ñ /ô /ˆå˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 óZ   — t          j        dddddd¬¦  «        }t          |d¦  «         d S )	Nr   ç      ð¿r*   r)   rW   TrR   rS   rT   r1   s     r   Útest_quadratic_complex_at_zeroz(TestChirp.test_quadratic_complex_at_zerok   s;   € ÝŒ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 ‚d S )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˜˜2˜tÑ$Ô$ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 ó  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	|	dk     sJ ‚d S )NrW   ç      4@rD   r   r_   r7   r`   r=   s
             r   Útest_quadratic_freq_02z TestChirp.test_quadratic_freq_02{   s‘   € ØˆØˆØˆØˆÝŒK˜˜2˜tÑ$Ô$ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   r)   r*   Úlogarithmicr,   r.   r1   s     r   Útest_logarithmic_at_zeroz"TestChirp.test_logarithmic_at_zero†   s2   € ÝŒO˜a C¨C°CÀÐNÑNÔ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 ‚d S )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˜˜2˜uÑ%Ô%ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 ó  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	|	dk     sJ ‚d S )Nrf   rB   rC   rD   r   ri   r7   rj   r=   s
             r   Útest_logarithmic_freq_02z"TestChirp.test_logarithmic_freq_02•   ó‘   € ØˆØˆØˆØˆÝŒK˜˜2˜uÑ%Ô%ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 ó  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	|	dk     sJ ‚d S )Nrf   rC   rD   r   ri   r7   rj   r=   s
             r   Útest_logarithmic_freq_03z"TestChirp.test_logarithmic_freq_03    rn   r   c                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   rD   r)   Ú
hyperbolicr,   r.   r1   s     r   Útest_hyperbolic_at_zeroz!TestChirp.test_hyperbolic_at_zero«   s2   € ÝŒO˜a D¨S°SÀÐNÑNÔ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 ]T\  }}t          j        |||||¦  «        }t	          ||¦  «        \  }}	t          ||||¦  «        }
t          |	|
d¬	¦  «         ŒUd S )
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˜˜2˜uÑ%Ô%ˆà˜�Ø�t�Ø˜�Ø˜�ð ˆð ð 	4ð 	4‰FˆB�ÝÔ*¨1¨b°"°b¸&ÑAÔAˆEÝ% a¨Ñ/Ô/‰EˆB�Ý'¨¨B°°BÑ7Ô7ˆHÝ˜A˜x¨dÐ3Ñ3Ô3Ð3Ð3ð		4ð 	4r   c           	      óÊ   — d}d}t          j        d|d¦  «        }t          t          t          j        |d|d|¦  «         t          t          t          j        |d|d|¦  «         d S )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¾   s]   € àˆØˆÝŒK˜˜2˜qÑ!Ô!ˆÝ•j¥)¤/°1°a¸¸QÀÑGÔGÐGÝ•j¥)¤/°1°a¸¸QÀÑGÔGÐGÐGÐGr   c           	      óŠ   — d}d}d}d}t          j        d|d¦  «        }t          t          t          j        |||||¦  «         d S )NÚfoorD   rc   r)   r   é
   r{   )r2   r-   r   r   r   r   s         r   Útest_unknown_methodzTestChirp.test_unknown_methodÆ   sK   € ØˆØˆØˆØˆÝŒK˜˜2˜rÑ"Ô"ˆÝ•j¥)¤/°1°b¸"¸bÀ&ÑIÔIÐIÐIÐIr   c                 óÆ   — d}d}t          j        ddd¦  «        }d}t          j        ||||¦  «        }d}t          j        ||||¦  «        }d}t	          |||¬	¦  «         d S )
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Î   ss   € ØˆØˆÝŒK˜˜A˜rÑ"Ô"ˆØˆÝ ” q¨"¨b°"Ñ5Ô5ˆØˆÝ”_ Q¨¨B°Ñ3Ô3ˆ
Ø;ˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐBr   c                 óÆ   — d}d}t          j        ddd¦  «        }d}t          j        ||||¦  «        }d}t          j        ||||¦  «        }d}t	          |||¬	¦  «         d S )
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Ù   ós   € ØˆØˆÝŒK˜˜A˜rÑ"Ô"ˆØˆÝ ” q¨"¨b°"Ñ5Ô5ˆØˆÝ”_ Q¨¨B°Ñ3Ô3ˆ
Ø<ˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐBr   c                 óÆ   — d}d}t          j        ddd¦  «        }d}t          j        ||||¦  «        }d}t          j        ||||¦  «        }d}t	          |||¬	¦  «         d S )
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          |||¬¦  «         d S )	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ï   s€   € ØˆØˆØˆÝŒK˜˜A˜rÑ"Ô"ˆÝ ” q­%°©)¬)µU¸2±Y´YÅÀbÁ	Ä	ÑJÔJˆÝ”_ Q¨¨B°Ñ3Ô3ˆ
ØIˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐ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   sr  € € € € € ð$ð $ð $ð	ð 	ð 	ð	ð 	ð 	ðð ð ð"%ð %ð %ð
$ð $ð $ð$ð $ð $ð
#ð #ð #ð
	ð 	ð 	ð	ð 	ð 	ð$ð $ð $ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð$ð $ð $ð4ð 4ð 4ðHð Hð HðJð Jð Jð	Cð 	Cð 	Cð	Cð 	Cð 	Cð	Cð 	Cð 	CðCð Cð Cð Cð Cr   r'   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestSweepPolyc                 ó&  — t          j        g d¢¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        }t          ||¦  «        \  }} ||¦  «        }t          j        t          j        ||z
  ¦  «        ¦  «        }|dk     sJ ‚d S )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ü   sˆ   € ÝŒI�o�o�oÑ&Ô&ˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ�1�R‘5”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 ‚d S )Nr*   r   r…   ri   r7   r�   r    s           r   Útest_sweep_poly_constz#TestSweepPoly.test_sweep_poly_const  s‚   € ÝŒI�c‰NŒNˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ�1�R‘5”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 ‚d S )Nr\   rD   r   r…   ri   r7   r�   r    s           r   Útest_sweep_poly_linearz$TestSweepPoly.test_sweep_poly_linear  sˆ   € ÝŒI�t˜T�lÑ#Ô#ˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ�1�R‘5”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 ‚d S )N)r)   rœ   ç       Àr   r…   ri   r7   r�   r    s           r   Útest_sweep_poly_quad2z#TestSweepPoly.test_sweep_poly_quad2  s‹   € ÝŒIÐ&Ð&Ð&Ñ'Ô'ˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ�1�R‘5”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 ‚d S )N©r*   r)   rœ   r¨   r   r*   ri   r7   r�   r    s           r   Útest_sweep_poly_cubicz#TestSweepPoly.test_sweep_poly_cubic   s‹   € ÝŒIÐ+Ð+Ð+Ñ,Ô,ˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ�1�R‘5”5ˆÝ”�œ˜q 8™|Ñ,Ô,Ñ-Ô-ˆØ˜Š}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 óJ  — t          j        g d¢¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        }t          ||¦  «        \  }} t          j        |¦  «        |¦  «        }t          j        t          j        ||z
  ¦  «        ¦  «        }|dk     sJ ‚dS )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Ð*Ð*Ð*Ñ+Ô+ˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ•2”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 ‚dS )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  sŠ   € à!Ð!Ð!ˆÝŒK˜˜3 Ñ&Ô&ˆÝÔ+¨A¨qÑ1Ô1ˆÝ! ! UÑ+Ô+‰ˆˆAØ•2”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dS )ÚTestGaussPulsec                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )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@  sL   € Ý Ô+¨H¸Ð@Ñ@Ô@ˆÝÔ)¨(°tÐ<Ñ<Ô<ˆ
Ø>ˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐBr   c                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )Nrµ   r)   )Úbwr   z'Integer input 'bw=1' gives wrong resultr‡   r·   r¹   s       r   Útest_integer_bwzTestGaussPulse.test_integer_bwF  sL   € Ý Ô+¨H¸Ð=Ñ=Ô=ˆÝÔ)¨(°qÐ9Ñ9Ô9ˆ
Ø;ˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐBr   c                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )Nrµ   g      À)Úbwriúÿÿÿz)Integer input 'bwr=-6' gives wrong resultr‡   r·   r¹   s       r   Útest_integer_bwrzTestGaussPulse.test_integer_bwrL  sL   € Ý Ô+¨H¸$Ð?Ñ?Ô?ˆÝÔ)¨(¸Ð;Ñ;Ô;ˆ
Ø=ˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐBr   c                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )Nrµ   g      NÀ)ÚtpriÄÿÿÿz*Integer input 'tpr=-60' gives wrong resultr‡   r·   r¹   s       r   Útest_integer_tprzTestGaussPulse.test_integer_tprR  sL   € Ý Ô+¨H¸%Ð@Ñ@Ô@ˆÝÔ)¨(¸Ð<Ñ<Ô<ˆ
Ø>ˆÝ˜
 L¸'ÐBÑBÔBÐBÐBÐBr   N)r–   r—   r˜   rº   r½   rÀ   rÃ   r	   r   r   r³   r³   >  s^   € € € € € ðCð Cð CðCð Cð CðCð Cð CðCð Cð Cð Cð Cr   r³   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestUnitImpulsec           	      óì   — t          t          j        d¦  «        t          j        g d¢¦  «        ¦  «         t          t          j        d¦  «        t          j        g d¢g d¢g d¢g¦  «        ¦  «         d S )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[  sƒ   € Ý�	Ô.¨qÑ1Ô1Ýœ
Ð#:Ð#:Ð#:Ñ;Ô;ñ	=ô 	=ð 	=å�	Ô.¨vÑ6Ô6Ýœ
 K K K°°°¸I¸I¸IÐ#FÑGÔGñ	Iô 	Ið 	Ið 	Ið 	Ir   c           
      óv  — 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¦  «        ¦  «         d S )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Ô5Ýœ
Ð#CÐ#CÐ#CÑDÔDñ	Fô 	Fð 	Få�	Ô.¨v°vÑ>Ô>Ýœ
 K K K°°°¸I¸I¸IÐ#FÑGÔGñ	Iô 	Ið 	Iõ Ô$ V¨QÑ/Ô/ˆÝ˜�Rœ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¢¦  «        ¦  «         d S )NrÈ   ÚmidrÐ   rÑ   rÉ   é	   )	rœ   r   r   r   r   r   r   r   r   rÊ   rÍ   s    r   Útest_midzTestUnitImpulse.test_midn  sŠ   € Ý�	Ô.¨v°uÑ=Ô=Ýœ
 K K K°°°¸I¸I¸IÐ#FÑGÔGñ	Iô 	Ið 	Iå�	Ô.¨q°%Ñ8Ô8Ýœ
Ð#@Ð#@Ð#@ÑAÔAñ	Cô 	Cð 	Cð 	Cð 	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 ‚d S )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­¬Ñ4Ô4Ð4Ð4Ð4åÔ$ Q¨µÐ5Ñ5Ô5ˆÝŒ}˜SœY­¬
Ñ3Ô3Ð3Ð3Ð3åÔ$ V¨V½7ÐCÑCÔCˆÝŒ}˜SœY­Ô(:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;r   N)r–   r—   r˜   rÎ   rÕ   rÙ   râ   r	   r   r   rÅ   rÅ   Y  sV   € € € € € ðIð Ið Ið;ð ;ð ;ðCð Cð Cð<ð <ð <ð <ð <r   rÅ   c                   ó   — e Zd Zd„ ZdS )ÚTestSawtoothWaveformc                 ó  — 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 ‚d S )Nr   rÛ   )Úwidth)r/   Úsawtoothr   r®   Úfloat32rÜ   Úfloat64©r2   Úwaveforms     r   râ   zTestSawtoothWaveform.test_dtype€  sy   € ÝÔ%ÝŒH�Q�bœjÐ)Ñ)Ô)µ´¸A±´ð
ñ 
ô 
ˆð Œ~¥¤Ò+Ð+Ð+Ð+åÔ% aÑ(Ô(ˆØŒ~¥¤Ò+Ð+Ð+Ð+Ð+Ð+r   N©r–   r—   r˜   râ   r	   r   r   rä   rä     s#   € € € € € ð,ð ,ð ,ð ,ð ,r   rä   c                   ó   — e Zd Zd„ ZdS )ÚTestSquareWaveformc                 ó  — 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 ‚d S )Nr   rÛ   r   )Úduty)r/   Úsquarer   r®   rè   rÜ   ré   rê   s     r   râ   zTestSquareWaveform.test_dtype‹  sq   € ÝÔ#¥B¤H¨Qµb´jÐ$AÑ$AÔ$AÍÌ
ÐSVÉÌÐXÑXÔ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ð GCð GCð GCñ GCô GCð GCðTAð Að Að Að Añ Aô Að AðHCð Cð Cð Cð Cñ Cô Cð Cð6#<ð #<ð #<ð #<ð #<ñ #<ô #<ð #<ðL,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,r   