§
    µ³Ùg¹2  ã                   óÈ   — 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dS )é    N)Úraises)Úassert_almost_equalÚxp_assert_equalÚxp_assert_closec                 ó"   — |||z
  | z  |z  z   }|S ©N© ©ÚtÚf0Úf1Út1Úfs        úW/granary/edev/quantum/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„ 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   ©
r1   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   r5   r6   r7   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   r5   F)ÚcomplexTr6   )r   r8   r.   r/   ÚvarÚreal)r1   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,   rF   ù      ð?        ©r.   r/   r   r0   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-   r0   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)   rV   F)r   r   r   r   r,   r   r-   r0   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(   rV   TrQ   rR   rS   r0   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 )NrV   r(   r)   r   éÐ  r6   ©r   r8   r.   r9   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 )NrV   ç      4@rC   r   r^   r6   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-   r0   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 )Nre   r(   r)   r   é'  r6   ©r   r8   r.   r9   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 )Nre   rA   rB   rC   r   rh   r6   ri   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 )Nre   rB   rC   r   rh   r6   ri   r<   s
             r   Útest_logarithmic_freq_03z"TestChirp.test_logarithmic_freq_03    rm   r   c                 óX   — t          j        ddddd¬¦  «        }t          |d¦  «         d S )Nr   rC   r(   Ú
hyperbolicr+   r-   r0   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 )
Nrq   r(   r   rh   rC   rP   r[   gH¯¼šò×z>)Úatol)r   r8   r.   r9   r$   r   r   )r1   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 )Nrq   r(   r   é   r   ©r   r8   Úassert_raisesÚ
ValueErrorr.   r/   )r1   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ÚfoorC   rb   r(   r   é
   rz   )r1   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 )
NrC   rb   r   r   é   ç      @é   z'Integer input 't1=3' gives wrong result©Úerr_msg©r   r8   r.   r/   r   )r1   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 )
Nrb   r„   r   r   rƒ   rC   r€   z(Integer input 'f0=10' gives wrong resultr†   rˆ   )r1   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 )
NrC   r„   r   r   rƒ   rb   é   z(Integer input 'f1=20' gives wrong resultr†   rˆ   )r1   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   r8   r.   r/   Úfloatr   )r1   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__r3   r?   rD   rN   rT   rW   rY   r\   r`   rc   rf   rj   rl   ro   rr   rw   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„   rh   r6   ©r   Úpoly1dr8   r.   Ú_sweep_poly_phaser$   r:   r;   ©r1   Úpr   r=   r#   r   rv   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„   rh   r6   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[   rC   r   r„   rh   r6   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„   rh   r6   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)   rh   r6   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)   rh   r6   N)	r   Úarrayr8   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)   rh   r6   N)r   r8   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   ©r1   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©r1   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É   ©r1   Ú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Æ   ry   r…   )Údtype)ry   r   )r…   r   )
r.   rÊ   r   Ú
issubdtyperÚ   ÚfloatingÚintÚintegerrF   Ú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Ä   )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   ú<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#<ð #<ð #<ð #<ð #<ñ #<ô #<ð #<ð #<ð #<r   