§
    ¢éUgÇ.  ã                   óÐ   — d dl Zd dlmZmZmZmZmZ d dl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dS )é    N)Úassert_almost_equalÚassert_equalÚassert_Úassert_allcloseÚassert_array_equal)Úraisesc                 ó"   — |||z
  | z  |z  z   }|S ©N© ©ÚtÚf0Úf1Út1Úfs        ú`/var/www/surfInsights/venv3-11/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   g      à?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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_zero1   s2   € ÝŒO˜a C¨C°CÀÐIÑIÔIˆÝ˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )Nr,   r*   r+   r   éd   ç�íµ ÷Æ°>©	r    Úlinspacer0   Ú_chirp_phaser&   ÚmaxÚabsr   r   ©
r3   r.   r   r   r   r   Úphaser%   r   Úabserrs
             r   Útest_linear_freq_01zTestChirp.test_linear_freq_015   s˜   € ØˆØˆØˆØˆÝŒK˜˜2˜sÑ#Ô#ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥<°°B¸¸BÑ#?Ô#?Ñ?Ñ@Ô@ÑAÔAˆÝ�˜’ÑÔÐÐÐr   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )Nr,   ç      i@ç      Y@ç      $@r   r7   r8   r9   r>   s
             r   Útest_linear_freq_02zTestChirp.test_linear_freq_02@   s˜   € ØˆØˆØˆØˆÝŒK˜˜2˜sÑ#Ô#ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥<°°B¸¸BÑ#?Ô#?Ñ?Ñ@Ô@ÑAÔAˆÝ�˜’ÑÔÐÐÐr   c                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   r*   r+   Ú	quadraticr-   r/   r2   s     r   Útest_quadratic_at_zeroz TestChirp.test_quadratic_at_zeroK   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+   rH   F)r   r   r   r   r.   r   r/   r2   s     r   Útest_quadratic_at_zero2z!TestChirp.test_quadratic_at_zero2O   s;   € ÝŒO˜a C¨C°CÀØ(-ð/ñ /ô /ˆå˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )NrH   r*   r+   r   éÐ  r8   ©	r    r:   r0   r;   r&   r<   r=   r   r   r>   s
             r   Útest_quadratic_freq_01z TestChirp.test_quadratic_freq_01T   s˜   € ØˆØˆØˆØˆÝŒK˜˜2˜tÑ$Ô$ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆÝ�˜’ÑÔÐÐÐr   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )NrH   ç      4@rE   r   rM   r8   rN   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/   r2   s     r   Útest_logarithmic_at_zeroz"TestChirp.test_logarithmic_at_zeroj   s2   € ÝŒO˜a C¨C°CÀÐNÑNÔNˆÝ˜A˜sÑ#Ô#Ð#Ð#Ð#r   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )NrT   r*   r+   r   é'  r8   ©	r    r:   r0   r;   r&   r<   r=   r   r   r>   s
             r   Útest_logarithmic_freq_01z"TestChirp.test_logarithmic_freq_01n   s˜   € ØˆØˆØˆØˆÝŒK˜˜2˜uÑ%Ô%ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆÝ�˜’ÑÔÐÐÐr   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )NrT   rC   rD   rE   r   rW   r8   rX   r>   s
             r   Útest_logarithmic_freq_02z"TestChirp.test_logarithmic_freq_02y   ó˜   € ØˆØˆØˆØˆÝŒK˜˜2˜uÑ%Ô%ˆÝÔ& q¨"¨b°"°fÑ=Ô=ˆÝ! ! UÑ+Ô+‰ˆˆAÝ”�œ˜q¥?°2°r¸2¸rÑ#BÔ#BÑBÑCÔCÑDÔDˆÝ�˜’ÑÔÐÐÐr   c                 ó0  — d}d}d}d}t          j        d|d¦  «        }t          j        |||||¦  «        }t	          ||¦  «        \  }}t          j        t          j        |t          ||||¦  «        z
  ¦  «        ¦  «        }	t          |	dk     ¦  «         d S )NrT   rD   rE   r   rW   r8   rX   r>   s
             r   Útest_logarithmic_freq_03z"TestChirp.test_logarithmic_freq_03„   r\   r   c                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   rE   r*   Ú
hyperbolicr-   r/   r2   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 ]R\  }}t          j        |||||¦  «        }t	          ||¦  «        \  }}	t          ||||¦  «        }
t          |	|
¦  «         ŒSd S )Nr`   r*   r   rW   rE   g      $Àç      ð¿)r    r:   r0   r;   r&   r   r   )r3   r.   r   r   Úcasesr   r   r?   r%   r   Úexpecteds              r   Útest_hyperbolic_freq_01z!TestChirp.test_hyperbolic_freq_01“   s²   € ØˆØˆÝŒK˜˜2˜uÑ%Ô%ˆà˜�Ø�t�Ø˜�Ø˜�ð ˆð ð 	)ð 	)‰FˆB�ÝÔ*¨1¨b°"°b¸&ÑAÔAˆEÝ% a¨Ñ/Ô/‰EˆB�Ý'¨¨B°°BÑ7Ô7ˆHÝ˜A˜xÑ(Ô(Ð(Ð(ð		)ð 	)r   c           	      óÊ   — d}d}t          j        d|d¦  «        }t          t          t          j        |d|d|¦  «         t          t          t          j        |d|d|¦  «         d S )Nr`   r*   r   é   r   ©r    r:   Úassert_raisesÚ
ValueErrorr0   r1   )r3   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ÚfoorE   rQ   r*   r   é
   ri   )r3   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 )
NrE   rQ   r   r   é   ç      @é   z'Integer input 't1=3' gives wrong result©Úerr_msg©r    r:   r0   r1   r   )r3   r   r   r   r   Úfloat_resultÚ
int_resultrv   s           r   Útest_integer_t1zTestChirp.test_integer_t1²   ss   € ØˆØˆÝŒK˜˜A˜rÑ"Ô"ˆØˆÝ ” q¨"¨b°"Ñ5Ô5ˆØˆÝ”_ Q¨¨B°Ñ3Ô3ˆ
Ø;ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   c                 óÆ   — d}d}t          j        ddd¦  «        }d}t          j        ||||¦  «        }d}t          j        ||||¦  «        }d}t	          |||¬	¦  «         d S )
NrQ   rs   r   r   rr   rE   ro   z(Integer input 'f0=10' gives wrong resultru   rw   )r3   r   r   r   r   rx   ry   rv   s           r   Útest_integer_f0zTestChirp.test_integer_f0½   ós   € ØˆØˆÝŒK˜˜A˜rÑ"Ô"ˆØˆÝ ” q¨"¨b°"Ñ5Ô5ˆØˆÝ”_ Q¨¨B°Ñ3Ô3ˆ
Ø<ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   c                 óÆ   — d}d}t          j        ddd¦  «        }d}t          j        ||||¦  «        }d}t          j        ||||¦  «        }d}t	          |||¬	¦  «         d S )
NrE   rs   r   r   rr   rQ   é   z(Integer input 'f1=20' gives wrong resultru   rw   )r3   r   r   r   r   rx   ry   rv   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 )	Nro   rt   r   r   r   rr   z5Integer input 'f0=10, t1=3, f1=20' gives wrong resultru   )r    r:   r0   r1   Úfloatr   )r3   r   r   r   r   rx   ry   rv   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ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   N)Ú__name__Ú
__module__Ú__qualname__r5   rA   rF   rI   rK   rO   rR   rU   rY   r[   r^   ra   rf   rl   rp   rz   r|   r€   rƒ   r   r   r   r(   r(   /   sE  € € € € € ð$ð $ð $ð	ð 	ð 	ð	ð 	ð 	ð$ð $ð $ð$ð $ð $ð
	ð 	ð 	ð	ð 	ð 	ð$ð $ð $ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð$ð $ð $ð)ð )ð )ðHð Hð HðJð Jð Jð	@ð 	@ð 	@ð	@ð 	@ð 	@ð	@ð 	@ð 	@ð@ð @ð @ð @ð @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
  ¦  «        ¦  «        }t          |dk     ¦  «         d S )N)r*   ç        r*   r   rs   rW   r8   ©	r    Úpoly1dr:   r0   Ú_sweep_poly_phaser&   r<   r=   r   ©r3   Úpr   r?   r%   r   re   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                 ó8  — t          j        d¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        }t          ||¦  «        \  }} ||¦  «        }t          j        t          j        ||z
  ¦  «        ¦  «        }t          |dk     ¦  «         d S )Nr+   r   rs   rW   r8   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
  ¦  «        ¦  «        }t          |dk     ¦  «         d S )Nrc   rE   r   rs   rW   r8   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
  ¦  «        ¦  «        }t          |dk     ¦  «         d S )N)r*   rŠ   ç       Àr   rs   rW   r8   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
  ¦  «        ¦  «        }t          |dk     ¦  «         d S )N©r+   r*   rŠ   r–   r   r+   rW   r8   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                 ó`  — t          j        g d¢¦  «        }t          j        ddd¦  «        }t          j        ||¦  «        }t          ||¦  «        \  }} t          j        |¦  «        |¦  «        }t          j        t          j        ||z
  ¦  «        ¦  «        }t          |dk     ¦  «         dS )z1Use an array of coefficients instead of a poly1d.r™   r   r+   rW   r8   N)
r    Úarrayr:   r0   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
  ¦  «        ¦  «        }t          |dk     ¦  «         dS )z/Use a list of coefficients instead of a poly1d.r™   r   r+   rW   r8   N)	r    r:   r0   r�   r&   rŒ   r<   r=   r   rŽ   s           r   Útest_sweep_poly_cubic3z$TestSweepPoly.test_sweep_poly_cubic3  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 resultru   ©r0   Ú
gausspulser   ©r3   rx   ry   rv   s       r   Útest_integer_fczTestGaussPulse.test_integer_fc$  sL   € Ý Ô+¨H¸Ð@Ñ@Ô@ˆÝÔ)¨(°tÐ<Ñ<Ô<ˆ
Ø>ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   c                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )Nr£   r*   )Úbwr   z'Integer input 'bw=1' gives wrong resultru   r¥   r§   s       r   Útest_integer_bwzTestGaussPulse.test_integer_bw*  sL   € Ý Ô+¨H¸Ð=Ñ=Ô=ˆÝÔ)¨(°qÐ9Ñ9Ô9ˆ
Ø;ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   c                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )Nr£   g      À)Úbwriúÿÿÿz)Integer input 'bwr=-6' gives wrong resultru   r¥   r§   s       r   Útest_integer_bwrzTestGaussPulse.test_integer_bwr0  sL   € Ý Ô+¨H¸$Ð?Ñ?Ô?ˆÝÔ)¨(¸Ð;Ñ;Ô;ˆ
Ø=ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   c                 ó†   — t          j        dd¬¦  «        }t          j        dd¬¦  «        }d}t          |||¬¦  «         d S )Nr£   g      NÀ)ÚtpriÄÿÿÿz*Integer input 'tpr=-60' gives wrong resultru   r¥   r§   s       r   Útest_integer_tprzTestGaussPulse.test_integer_tpr6  sL   € Ý Ô+¨H¸%Ð@Ñ@Ô@ˆÝÔ)¨(¸Ð<Ñ<Ô<ˆ
Ø>ˆÝ�Z °wÐ?Ñ?Ô?Ð?Ð?Ð?r   N)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 )ÚTestUnitImpulsec                 ó¤   — t          t          j        d¦  «        g d¢¦  «         t          t          j        d¦  «        g d¢g d¢g d¢g¦  «         d S )Né   )r   r   r   r   r   r   r   ©rt   rt   )r   r   r   ©r   r   r   ©r   r0   Úunit_impulse©r3   s    r   Útest_no_indexzTestUnitImpulse.test_no_index?  sc   € Ý�9Ô1°!Ñ4Ô4Ð6KÐ6KÐ6KÑLÔLÐLÝ�9Ô1°&Ñ9Ô9Ø%˜I˜I y y y°)°)°)Ð<ñ	>ô 	>ð 	>ð 	>ð 	>r   c           
      ó.  — t          t          j        dd¦  «        g d¢¦  «         t          t          j        dd¦  «        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 )Nro   rt   )
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   r0   r¹   r    rœ   ©r3   Úimps     r   Ú
test_indexzTestUnitImpulse.test_indexD  sÃ   € Ý�9Ô1°"°aÑ8Ô8Ø9Ð9Ð9ñ	;ô 	;ð 	;å�9Ô1°&¸&ÑAÔAØ%˜I˜I y y y°)°)°)Ð<ñ	>ô 	>ð 	>õ Ô$ V¨QÑ/Ô/ˆÝ˜3¥¤¨,¨,¨,Ø*6¨,¨,Ø*6¨,¨,Ø*6¨,¨,ð*8ñ !9ô !9ñ 	:ô 	:ð 	:ð 	:ð 	:r   c                 ó¨   — t          t          j        dd¦  «        g d¢g d¢g d¢g¦  «         t          t          j        dd¦  «        g d¢¦  «         d S )Nr¶   Úmidr·   r½   é	   )	r   r   r   r   r   r   r   r   r   r¸   rº   s    r   Útest_midzTestUnitImpulse.test_midQ  sm   € Ý�9Ô1°&¸%Ñ@Ô@Ø%˜I˜I y y y°)°)°)Ð<ñ	>ô 	>ð 	>å�9Ô1°!°UÑ;Ô;Ø6Ð6Ð6ñ	8ô 	8ð 	8ð 	8ð 	8r   c                 óÄ  — t          j        d¦  «        }t          t          j        |j        t          j        ¦  «        ¦  «         t          j        ddt          ¬¦  «        }t          t          j        |j        t          j        ¦  «        ¦  «         t          j        ddt          ¬¦  «        }t          t          j        |j        t          j
        ¦  «        ¦  «         d S )Nrµ   rh   rt   )Údtype)rh   r   )rt   r   )r0   r¹   r   r    Ú
issubdtyperÇ   ÚfloatingÚintÚintegerÚcomplexÚcomplexfloatingr¿   s     r   Ú
test_dtypezTestUnitImpulse.test_dtypeW  s¡   € ÝÔ$ QÑ'Ô'ˆÝ•”˜cœi­¬Ñ5Ô5Ñ6Ô6Ð6åÔ$ Q¨µÐ5Ñ5Ô5ˆÝ•”˜cœi­¬Ñ4Ô4Ñ5Ô5Ð5åÔ$ V¨V½7ÐCÑCÔCˆÝ•”˜cœi­Ô);Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=r   N)r„   r…   r†   r»   rÁ   rÅ   rÎ   r   r   r   r³   r³   =  sP   € € € € € ð>ð >ð >ð
:ð :ð :ð8ð 8ð 8ð>ð >ð >ð >ð >r   r³   )T)Únumpyr    Únumpy.testingr   r   r   r   r   Úpytestr   rj   Úscipy.signal._waveformsÚsignalÚ
_waveformsr0   r   r   r   r   r&   r(   rˆ   r¡   r³   r   r   r   ú<module>rÕ      s®  ðØ Ð Ð Ð ðIð Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ià *Ð *Ð *Ð *Ð *Ð *à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +ðð ð ð
ð ð ð ðð ð ð
ð ð ð
	ð 	ð 	ðl@ð l@ð l@ð l@ð l@ñ l@ô l@ð l@ð^Að Að Að Að Añ Aô Að AðH@ð @ð @ð @ð @ñ @ô @ð @ð6">ð ">ð ">ð ">ð ">ñ ">ô ">ð ">ð ">ð ">r   