§
    ‚Øjô¦  ã                   ób  — d dl Z d dlmZmZmZmZ d dlZd dlZd dl	m
Z
 d„ Z G d„ d¦  «        Zej                             ddd	gd
dgd¬¦  «        ej                             dg d¢d¬¦  «        ej                             dg dddddfdgdddddfg d¢dddddfg dddddfg dddddfg dddddfg dddddfg dddddfg dddddfg dddddfg dddddfgg d¢d¬¦  «         G d„ d¦  «        ¦   «         ¦   «         ¦   «         Zd „ Z G d!„ d"¦  «        Z G d#„ d$¦  «        Z G d%„ d&¦  «        Zd'„ Zd(„ ZdS ))é    N)Úassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equal_nulp)Úmlabc                  óF  — t           j                             d¦  «         d} t           j                             | ¦  «        dz   }t          j        | ¦  «        }t          t          j        |¦  «        |¦  «         t          t          j        |¦  «        |¦  «         t          t          j        t          |¦  «        ¦  «        |z  t          j
        |¦  «        ¦  «         t          t          j        t          |¦  «        ¦  «        t          j
        |¦  «        ¦  «         d S )Nr   éè  éd   )ÚnpÚrandomÚseedÚstandard_normalÚonesr   r   Úwindow_noneÚhanningÚlenÚwindow_hanning)ÚnÚrandr   s      ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/tests/test_mlab.pyÚtest_windowr      sÙ   € Ý„I‡N‚N�1ÑÔÐØ€AÝŒ9×$Ò$ QÑ'Ô'¨#Ñ-€DÝŒ7�1‰:Œ:€DÝ•tÔ'¨Ñ-Ô-¨tÑ4Ô4Ð4Ý•tÔ'¨Ñ-Ô-¨tÑ4Ô4Ð4Ý•r”z¥# d¡)¤)Ñ,Ô,¨tÑ3µTÔ5HÈÑ5NÔ5NÑOÔOÐOÝ•r”z¥# d¡)¤)Ñ,Ô,­dÔ.AÀ$Ñ.GÔ.GÑHÔHÐHÐHÐHó    c                   óP   — 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S )ÚTestDetrendc                 ó  — t           j                             d¦  «         d}t          j        dd|¦  «        }t          j        |¦  «        | _        | j        dz   | _        t          j        dd|¦  «        | _        ||                     ¦   «         z
  | _	        t           j         
                    |¦  «        t          j        |dz  t           j        z  |dz  z  ¦  «        z   | _        | xj        | j                             ¦   «         z  c_        d S )	Nr   r	   ç        r
   ç      Y@g      $Àg     €V@é   )r   r   r   ÚlinspaceÚzerosÚ	sig_zerosÚsig_offÚ	sig_slopeÚmeanÚsig_slope_meanr   ÚsinÚpiÚsig_base)Úselfr   Úxs      r   Úsetup_methodzTestDetrend.setup_method   sÔ   € Ý
Œ	�Š�qÑÔÐØˆÝŒK˜˜C Ñ#Ô#ˆåœ !™œˆŒà”~¨Ñ,ˆŒÝœ T¨3°Ñ2Ô2ˆŒØ !§&¢&¡(¤(™lˆÔõ ŒI×%Ò% aÑ(Ô(­2¬6°!°A±#µb´e±)¸Q¸s¹UÑ2CÑ+DÔ+DÑDð 	ŒàˆŒ˜œ×+Ò+Ñ-Ô-Ñ-ˆŒˆˆr   c                 ó   — t          |ddiŽ d S )NÚatolç:Œ0âŽyE>)r   )r)   Úargss     r   ÚallclosezTestDetrend.allclose&   s   € Ý˜Ð) DÐ)Ð)Ð)Ð)Ð)r   c                 óZ  — t          j        d¦  «        dk    sJ ‚t          j        dd¬¦  «        dk    sJ ‚t          j        dd¬¦  «        dk    sJ ‚t          j        dt           j        ¬¦  «        dk    sJ ‚d| j        | j        | j        | j        | j        z   | j        z                        ¦   «         t          j        | j        | j        | j        z   | j        | j        z   | j        | j        z   | j        z   g¦  «        t          j        | j        | j        | j        z   | j        | j        z   | j        | j        z   | j        z   g¦  «        j	        fD ]Y}t          |t          j        ¦  «        r#t          t          j        |¦  «        |¦  «         Œ?t          j        |¦  «        |k    sJ ‚ŒZd S )Nr   é   ©ÚaxisÚnone©Úkeyç      @)r   Údetrend_noneÚdetrendr"   r#   r(   Útolistr   ÚvstackÚTÚ
isinstanceÚndarrayr   ©r)   Úsigs     r   Útest_detrend_nonezTestDetrend.test_detrend_none)   s³  € ÝÔ  Ñ$Ô$¨Ò*Ð*Ð*Ð*ÝÔ  ¨!Ð,Ñ,Ô,°Ò2Ð2Ð2Ð2ÝŒ|˜B FÐ+Ñ+Ô+¨rÒ1Ð1Ð1Ð1ÝŒ|˜B¥DÔ$5Ð6Ñ6Ô6¸"Ò<Ð<Ð<Ð<à�T”\ 4¤>°4´=Ø” ¤Ñ/°$´,Ñ>×FÒFÑHÔHÝ”	˜4œ=Øœ=¨4¬<Ñ7Øœ=¨4¬>Ñ9Øœ=¨4¬<Ñ7¸$¼.ÑHðJñ Kô Kõ ”	˜4œ=Øœ=¨4¬<Ñ7Øœ=¨4¬>Ñ9Øœ=¨4¬<Ñ7¸$¼.ÑHðJñ Kô Kô LMð
ð 	5ð 	5ˆCõ ˜#�rœzÑ*Ô*ð 5Ý"¥4Ô#4°SÑ#9Ô#9¸3Ñ?Ô?Ð?Ð?åÔ(¨Ñ-Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð 	5r   c                 ó  — dD ]^}t          j        |¦  «        dk    sJ ‚t          j        |d¬¦  «        dk    sJ ‚t          j        |t           j        ¬¦  «        dk    sJ ‚Œ_|                      t          j        | j        ¦  «        | j        ¦  «         |                      t          j        | j        ¦  «        | j        ¦  «         |                      t          j        | j        | j        z   ¦  «        | j        ¦  «         |                      t          j        | j        | j        z   ¦  «        | j        | j        z   ¦  «         |                      t          j        | j        | j        z   | j        z   ¦  «        | j        | j        z   ¦  «         d S )N)r   r8   r   r$   r6   )	r   Údetrend_meanr:   r0   r!   r(   r"   r#   r%   r@   s     r   Útest_detrend_meanzTestDetrend.test_detrend_mean?   sp  € Øð 	Bð 	BˆCÝÔ$ SÑ)Ô)¨RÒ/Ð/Ð/Ð/Ý”< ¨Ð0Ñ0Ô0°BÒ6Ð6Ð6Ð6Ý”< ­Ô):Ð;Ñ;Ô;¸rÒAÐAÐAÐAÐAà�Š•dÔ'¨¬Ñ7Ô7¸¼ÑHÔHÐHØ�Š•dÔ'¨¬Ñ6Ô6¸¼ÑFÔFÐFØ�Š•dÔ'¨¬¸¼Ñ(DÑEÔEØ”mñ	%ô 	%ð 	%à�Š•dÔ'¨¬¸¼Ñ(FÑGÔGØ”m dÔ&9Ñ9ñ	;ô 	;ð 	;à�ŠÝÔ˜dœm¨d¬nÑ<¸t¼|ÑKÑLÔLØŒM˜DÔ/Ñ/ñ	1ô 	1ð 	1ð 	1ð 	1r   c                 ó’  — | j         | j        z   | j        z   }| j         | j        z   }|                      t          j        |d¬¦  «        |¦  «         |                      t          j        |                     ¦   «         ¦  «        |¦  «         |                      t          j        |                     ¦   «         d¬¦  «        |¦  «         d S ©Nr   r3   )r(   r#   r"   r%   r0   r   rD   r;   ©r)   ÚinputÚtargets      r   Ú4test_detrend_mean_1d_base_slope_off_list_andor_axis0z@TestDetrend.test_detrend_mean_1d_base_slope_off_list_andor_axis0O   s£   € Ø” ¤Ñ.°´Ñ=ˆØ” Ô!4Ñ4ˆØ�Š•dÔ'¨°AÐ6Ñ6Ô6¸Ñ?Ô?Ð?Ø�Š•dÔ'¨¯ª©¬Ñ7Ô7¸Ñ@Ô@Ð@Ø�Š•dÔ'¨¯ª©¬¸QÐ?Ñ?Ô?ÀÑHÔHÐHÐHÐHr   c                 ó  — t          j        | j        | j        | j        z   g¦  «        }t          j        | j        | j        g¦  «        }|                      t          j        |¦  «        |¦  «         |                      t          j        |d ¬¦  «        |¦  «         |                      t          j        |j        d ¬¦  «        j        |¦  «         |                      t          j	        |¦  «        |¦  «         |                      t          j	        |d ¬¦  «        |¦  «         |                      t          j	        |j        dd ¬¦  «        |j        ¦  «         t          j        | j        | j        | j        z   | j        | j
        z   | j        | j        z   | j
        z   g¦  «        }t          j        | j        | j        | j        | j        z   | j        | j        z   g¦  «        }|                      t          j        |j        d¬¦  «        |j        ¦  «         |                      t          j        |d¬¦  «        |¦  «         |                      t          j        |d¬¦  «        |¦  «         |                      t          j	        |dd¬¦  «        |¦  «         |                      t          j	        |j        dd¬¦  «        |j        ¦  «         |                      t          j	        |j        t          j        d¬¦  «        |j        ¦  «         d S )	Nr3   Úconstant©r7   r4   r   r2   éÿÿÿÿÚdefaultr$   )r   r<   r"   r(   r!   r0   r   rD   r=   r:   r#   r%   rH   s      r   Útest_detrend_mean_2dz TestDetrend.test_detrend_mean_2dV   s±  € Ý”	˜4œ<Øœ=¨4¬<Ñ7ð9ñ :ô :ˆå”˜DœNØ œMð+ñ ,ô ,ˆà�Š•dÔ'¨Ñ.Ô.°Ñ7Ô7Ð7Ø�Š•dÔ'¨°DÐ9Ñ9Ô9¸6ÑBÔBÐBØ�Š•dÔ'¨¬°dÐ;Ñ;Ô;Ô=¸vÑFÔFÐFØ�Š•d”l 5Ñ)Ô)¨6Ñ2Ô2Ð2Ø�Š•d”l 5¨tÐ4Ñ4Ô4°fÑ=Ô=Ð=Ø�ŠÝŒL˜œ j°tÐ<Ñ<Ô<¸f¼hñ	Hô 	Hð 	Hõ ”	˜4œ=Øœ=¨4¬<Ñ7Øœ=¨4¬>Ñ9Øœ=¨4¬<Ñ7¸$¼.ÑHðJñ Kô Kˆõ ”˜DœMØ œMØ œM¨DÔ,?Ñ?Ø œM¨DÔ,?Ñ?ðAñ Bô Bˆð 	�Š•dÔ'¨¬°aÐ8Ñ8Ô8¸&¼(ÑCÔCÐCØ�Š•dÔ'¨°AÐ6Ñ6Ô6¸Ñ?Ô?Ð?Ø�Š•dÔ'¨°BÐ7Ñ7Ô7¸Ñ@Ô@Ð@Ø�Š•d”l 5¨i¸aÐ@Ñ@Ô@À&ÑIÔIÐIØ�Š•d”l 5¤7°¸QÐ?Ñ?Ô?ÀÄÑJÔJÐJØ�ŠÝŒL˜œ¥dÔ&7¸aÐ@Ñ@Ô@À&Ä(ñ	Lô 	Lð 	Lð 	Lð 	Lr   c                 óV  — | j         t          j                 ddif| j         t          j                 ddifdddif| j         ddif| j         t          j                 ddiffD ]H\  }}t          j        t
          ¦  «        5  t          j        |fi |¤Ž d d d ¦  «         n# 1 swxY w Y   ŒId S )	Nr7   Úspamé   r8   r4   r   r2   r   )r#   r   ÚnewaxisÚpytestÚraisesÚ
ValueErrorr   r:   ©r)   ÚsignalÚkwargss      r   Útest_detrend_ValueErrorz#TestDetrend.test_detrend_ValueErrors   sú   € à”¥¤
Ô+¨e°V¨_Ð=Ø”¥¤
Ô+¨e°Q¨ZÐ8Ø�v˜q�kÐ"Ø” &¨! Ð-Ø”¥¤
Ô+¨f°a¨[Ð9ð
ð 	/ð 	/‰NˆF�Fõ ”�zÑ*Ô*ð /ð /Ý”˜VÐ.Ð. vÐ.Ð.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /øð	/ð 	/s   Á>BÂB!	Â$B!	c                 óî   — dddif| j         ddif| j         t          j                 ddiffD ]H\  }}t          j        t
          ¦  «        5  t          j        |fi |¤Ž d d d ¦  «         n# 1 swxY w Y   ŒId S )Nr8   r4   r   r2   r   )r#   r   rU   rV   rW   rX   r   rD   rY   s      r   Útest_detrend_mean_ValueErrorz(TestDetrend.test_detrend_mean_ValueError~   sÑ   € à�v˜q�kÐ"Ø” &¨! Ð-Ø”¥¤
Ô+¨f°a¨[Ð9ð
ð 	4ð 	4‰NˆF�Fõ
 ”�zÑ*Ô*ð 4ð 4ÝÔ! &Ð3Ð3¨FÐ3Ð3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4øð	4ð 	4s   Á
A)Á)A-	Á0A-	c                 óŠ  — t          j        d¦  «        dk    sJ ‚t          j        d¦  «        dk    sJ ‚t          j        dd¬¦  «        dk    sJ ‚t          j        dt           j        ¬¦  «        dk    sJ ‚| j        | j        | j        | j        z   fD ]/}|                      t          j        |¦  «        | j        ¦  «         Œ0d S )Nr   r8   Úlinearr6   )r   Údetrend_linearr:   r"   r#   r0   r!   r@   s     r   Útest_detrend_linearzTestDetrend.test_detrend_linear‡   sØ   € åÔ" 2Ñ&Ô&¨"Ò,Ð,Ð,Ð,ÝÔ" 3Ñ'Ô'¨2Ò-Ð-Ð-Ð-ÝŒ|˜C XÐ.Ñ.Ô.°"Ò4Ð4Ð4Ð4ÝŒ|˜C¥TÔ%8Ð9Ñ9Ô9¸RÒ?Ð?Ð?Ð?à”Ø”Ø” ¤Ñ-ð
ð 	Dð 	DˆCð
 �MŠM�$Ô-¨cÑ2Ô2°D´NÑCÔCÐCÐCð	Dð 	Dr   c                 ób  — | j         | j        z   }| j        }|                      t	          j        |d¬¦  «        |¦  «         |                      t	          j        |t          j        ¬¦  «        |¦  «         |                      t	          j        |                     ¦   «         ¦  «        |¦  «         d S )Nr`   r6   )r#   r"   r!   r0   r   r:   ra   r;   rH   s      r   Útest_detrend_str_linear_1dz&TestDetrend.test_detrend_str_linear_1d”   s�   € Ø” ¤Ñ-ˆØ”ˆØ�Š•d”l 5¨hÐ7Ñ7Ô7¸Ñ@Ô@Ð@Ø�Š•d”l 5­dÔ.AÐBÑBÔBÀFÑKÔKÐKØ�Š•dÔ)¨%¯,ª,©.¬.Ñ9Ô9¸6ÑBÔBÐBÐBÐBr   c                 ó  — t          j        | j        | j        | j        | j        z   g¦  «        }t          j        | j        | j        | j        g¦  «        }|                      t          j        |j        dd¬¦  «        |j        ¦  «         |                      t          j        |j        t          j	        d¬¦  «        |j        ¦  «         |                      t          j        |dd¬¦  «        |¦  «         |                      t          j        |t          j	        d¬¦  «        |¦  «         t          j        t          ¦  «        5  t          j	        | j        t           j                 ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr`   r   rN   r2   )r   r<   r"   r#   r!   r0   r   r:   r=   ra   rV   rW   rX   rU   rH   s      r   Útest_detrend_linear_2dz"TestDetrend.test_detrend_linear_2d›   s¬  € Ý”	˜4œ<Øœ>Øœ>¨D¬LÑ8ð:ñ ;ô ;ˆõ ”˜DœNØ œNØ œNð,ñ -ô -ˆð 	�ŠÝŒL˜œ h°QÐ7Ñ7Ô7¸¼ñ	Cô 	Cð 	Cà�ŠÝŒL˜œ¥dÔ&9ÀÐBÑBÔBÀFÄHñ	Nô 	Nð 	Nà�ŠÝŒL˜ H°1Ð5Ñ5Ô5°vñ	?ô 	?ð 	?à�ŠÝŒL˜¥DÔ$7¸aÐ@Ñ@Ô@À&ñ	Jô 	Jð 	Jõ Œ]�:Ñ&Ô&ð 	<ð 	<ÝÔ ¤­r¬zÔ :Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   Å*E9Å9E=Æ E=N)Ú__name__Ú
__module__Ú__qualname__r+   r0   rB   rE   rK   rQ   r\   r^   rb   rd   rf   © r   r   r   r      sÅ   € € € € € ð.ð .ð .ð*ð *ð *ð5ð 5ð 5ð,1ð 1ð 1ð Ið Ið IðLð Lð Lð:	/ð 	/ð 	/ð4ð 4ð 4ðDð Dð DðCð Cð Cð<ð <ð <ð <ð <r   r   Ú	iscomplexFTÚrealÚcomplexÚclass)ÚidsÚscopeÚsides)ÚonesidedÚtwosidedrP   )rp   zFfstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrumrO   é   )rt   rT   é
   é   i   é€   é   é!   i  éÿ   é    )ÚnosigÚFs4ÚFsAllÚnosig_noNFFTÚnosig_nopad_toÚnosig_noNFFT_no_pad_toÚ
nosig_trimÚ	nosig_oddÚnosig_oddlenÚnosig_stretchÚnosig_overlapc                   ó   — e Zd Z ej        dd¬¦  «        ed„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Z	ej
                             dd	d
g¦  «        d„ ¦   «         Zej
                             dg d¢¦  «        d„ ¦   «         Zej
                             d ej        dd	¬¦  «         ej        dej
                             ej        dk    d¬¦  «        d¬¦  «        g¦  «        d„ ¦   «         Zd„ Zd„ Zej
                             dej        ej        fej        dfej        ej        fej        dfg¦  «        d„ ¦   «         Zd„ Zd „ Zd!„ Zd"„ Zd#„ Z ej
                             d$g d%¢¦  «        d&„ ¦   «         Z!ej
                             d'i dd	idd
idd(idd)idd*idd+ig¦  «        d,„ ¦   «         Z"d-„ Z#d.„ Z$ej
                             dd	d
g¦  «        d/„ ¦   «         Z%ej
                             d0d(ej&        fd*ej'        fd+d1„ fg¦  «        d2„ ¦   «         Z(d3„ Z)dS )4ÚTestSpectralrn   T)rp   Úautousec
                 ó~  ‡#— dŠ#t          j        ddd‰#z  ¦  «        }
|�
|
d |…         }
ˆ#fd„|D ¦   «         }|€d}n|dk     rdx}}n|}|€d}n|dk     r|dz  x}}n|}|€|}nA|dk     r9t          dt          j        t          j        |¦  «        ¦  «        z  ¦  «        }|}n|}|	€t          |
¦  «        }n|	dk     rt          |
¦  «        x}}	n|	}|	€|x}}nt          |
¦  «        x}}d}|}|}|}|}|}|d	k    s|d
k    r—|s•|dz  r%t          j        d‰#dz  |d¬¦  «        d d d…         }n t          j        d‰#dz  |dz  dz   ¬¦  «        }|dz  r%t          j        d‰#dz  |d¬¦  «        d d d…         }nÁt          j        d‰#dz  |dz  dz   ¬¦  «        }n |dz  r,t          j        ‰# dz  ‰#dz  d|z  d¬¦  «        dd d…         }nt          j        ‰# dz  ‰#dz  |d¬¦  «        }|dz  r,t          j        ‰# dz  ‰#dz  d|z  d¬¦  «        dd d…         }nt          j        ‰# dz  ‰#dz  |d¬¦  «        }|}|dz  }t          |
¦  «        |dz  z
  dz   }||z
  }|
|||…         }|dz  r|d‰#z  dz  z  }t          |¦  «        dk    rt          j        |d‰#z  z  g¦  «        }t          j        |d‰#z  z  g¦  «        }|}t          j        |
¦  «        } t          |¦  «        D ]5\  }!}"| t          j
        |"|
z  t           j        z  dz  ¦  «        d|!z  z  z  } Œ6|r|                      d¦  «        } ‰#| _        || _        || _        || _        || _        || _        || _        || _        |	| _        || _        || _        || _        || _        || _        || _        | | _        || _        || _        || _        || _         d S )Nr   r   ru   r2   c                 ó   •— g | ]}‰|z  ‘ŒS rj   rj   )Ú.0ÚfstimÚFss     €r   ú
<listcomp>z%TestSpectral.stim.<locals>.<listcomp>Ü   s   ø€ Ð1Ð1Ð1 �"�u‘*Ð1Ð1Ð1r   rx   r
   r   rr   rP   F)ÚnumÚendpoint©r�   rm   )!r   ÚarangeÚintÚceilÚlog2r   r   ÚarrayÚ
zeros_likeÚ	enumerater&   r'   ÚastyperŽ   rq   ÚfstimsÚNFFT_densityÚnover_densityÚpad_to_densityÚNFFT_spectrumÚnover_spectrumÚpad_to_spectrumÚNFFT_specgramÚnover_specgramÚpad_to_specgramÚ
t_specgramÚ	t_densityÚ
t_spectrumÚyÚfreqs_densityÚfreqs_spectrumÚfreqs_specgramÚNFFT_density_real)$ÚclsÚrequestr›   rk   rq   Úlen_xrœ   r�   rž   r¡   r*   r¬   Únover_density_realÚpad_to_density_realÚpad_to_spectrum_realÚNFFT_spectrum_realrŸ   r    r¢   r£   r¤   ÚNFFT_specgram_realÚnover_specgram_realr©   rª   r«   Út_startÚt_stopÚt_stepr¥   r§   r¦   r¨   Úir�   rŽ   s$                                      @r   ÚstimzTestSpectral.stimÑ   sA  ø€ ð ˆåŒI�a˜˜Q ™VÑ$Ô$ˆØÐØ�&�5�&”	ˆAð 2Ð1Ð1Ð1¨&Ð1Ñ1Ô1ˆð ÐØ #ÐÐØ˜AÒÐØ/2Ð2Ð  à ,ÐàÐ Ø!"ÐÐØ˜QÒÐØ1BÀaÑ1GÐGÐ  à!.ÐàÐ!Ø"3ÐÐØ˜aÒÐÝ  ¥B¤G­B¬GÐ4EÑ,FÔ,FÑ$GÔ$GÑ!GÑHÔHˆNØ"0ÐÐà"0ÐàÐ"Ý#& q¡6¤6Ð Ð Ø˜qÒ Ð Ý58¸±V´VÐ;Ð  ? ?à#2Ð àÐ"Ø1EÐEÐ  å14°Q±´Ð7Ð Øˆà$ˆØ&ˆØ(ˆØ.ÐØ0Ðà�JÒÐ 5¨IÒ#5Ð#5¸iÐ#5ð # QÑ&ð NÝ "¤¨A¨r°A©vØ0CØ5:ð!<ñ !<ô !<à<?¸C¸a¸Cô!A��õ !#¤¨A¨r°A©vØ0CÀqÑ0HÈ1Ñ0Lð!Nñ !Nô !N�ð
 $ aÑ'ð PÝ!#¤¨Q°°Q±Ø1EØ6;ð"=ñ "=ô "=à=@¸S¸q¸Sô"B��õ "$¤¨Q°°Q±Ø1EÈÑ1JÈQÑ1Nð"Pñ "Pô "P��ð
 # QÑ&ð <Ý "¤¨R¨C°!©G°R¸!±VØ01Ð4GÑ0GØ5:ð!<ñ !<ô !<à<=¸D¸q¸Dô!B��õ !#¤¨R¨C°!©G°R¸!±VØ0CØ5:ð!<ñ !<ô !<�ð $ aÑ'ð =Ý!#¤¨b¨S°1©W°b¸1±fØ12Ð5IÑ1IØ6;ð"=ñ "=ô "=à=>¸TÀ¸Tô"C��õ "$¤¨b¨S°1©W°b¸1±fØ1EØ6;ð"=ñ "=ô "=�ð 'ˆà$¨Ñ)ˆÝ�Q‘”Ð,°Ñ1Ñ1°AÑ5ˆØ#Ð&9Ñ9ˆØ�w˜v fÐ,Ô-ˆ
Ø Ñ!ð 	%Ø˜!˜b™& 1™*Ñ$ˆJÝˆz‰?Œ?˜aÒÐÝœÐ#5¸¸R¹Ñ#@Ð"AÑBÔBˆJÝ”XÐ1°Q¸±VÑ<Ð=Ñ>Ô>ˆ
Øˆ	åŒM˜!ÑÔˆÝ! &Ñ)Ô)ð 	7ð 	7‰HˆAˆuØ•”˜ ™	¥B¤EÑ)¨AÑ-Ñ.Ô.°°Q±Ñ6Ñ6ˆAˆAàð 	$Ø—’˜Ñ#Ô#ˆAàˆŒØˆŒ	ØˆŒ
à'ˆÔØ)ˆÔØ+ˆÔà)ˆÔØ+ˆÔØ-ˆÔà)ˆÔØ+ˆÔØ-ˆÔà#ˆŒØ!ˆŒØ#ˆŒØˆŒà)ˆÔØ+ˆÔØ+ˆÔà 1ˆÔÐÐr   c                 ój  — |                      ¦   «         dk    sJ ‚|                     ¦   «         t          |¦  «        dz
  k    sJ ‚t          ||d¬¦  «         |D ]Y}t	          j        ||z
  ¦  «                              ¦   «         }||         ||dz            k    sJ ‚||         ||dz
           k    sJ ‚ŒZd S )Nr   r2   ç�íµ ÷Æ°>©r-   r   )ÚargminÚargmaxr   r   r   Úabs)r)   ÚvalsÚ	targfreqsÚresfreqsr›   r�   r¹   s          r   Úcheck_freqszTestSpectral.check_freqsb  sÍ   € Ø�ŠÑ Ô  AÒ%Ð%Ð%Ð%Ø�ŠÑ Ô ¥C¨¡M¤M°!¡OÒ3Ð3Ð3Ð3Ý˜ )°%Ð8Ñ8Ô8Ð8Øð 	'ð 	'ˆEÝ”�x %Ñ'Ñ(Ô(×/Ò/Ñ1Ô1ˆAØ˜”7˜T ! A¡#œYÒ&Ð&Ð&Ð&Ø˜”7˜T ! A¡#œYÒ&Ð&Ð&Ð&Ð&ð	'ð 	'r   c                 ó  — t          |¦  «        dk    rd S |                     ¦   «         dk     rxt          j        |¦  «        }|                     ¦   «         }|                      |d |…         |d |…         |¦  «         |                      ||d …         ||d …         |¦  «         d S |d d …         }|                     ¦   «         }|rF|                     ¦   «         }||         }	t          |	|d         ¦  «         |d= d||dz
  |dz   …<   |°Dd S d S )Nr   rO   rT   )	r   Úminr   rÀ   r¾   Úcheck_maxfreqÚcopyr¿   r   )
r)   ÚspecÚfspr›   ÚfspaÚzeroindÚfstimstÚspectÚmaxindÚmaxfreqs
             r   rÇ   zTestSpectral.check_maxfreqk  s$  € åˆv‰;Œ;˜!ÒÐØˆFð �7Š7‰9Œ9�qŠ=ˆ=Ý”6˜#‘;”;ˆDØ—k’k‘m”mˆGØ×Ò˜t H W Hœ~¨t°H°W°H¬~¸vÑFÔFÐFØ×Ò˜t G H Hœ~¨t°G°H°H¬~¸vÑFÔFÐFØˆFà˜˜˜”)ˆØ—	’	‘”ˆð ð 	)Ø—\’\‘^”^ˆFØ˜&”kˆGÝ ¨°¬Ñ5Ô5Ð5Ø˜�Ø'(ˆE�&˜‘(˜6 !™8Ð#Ñ$ð ð 	)ð 	)ð 	)ð 	)ð 	)r   c                 ón  — | j         dz   ddœ| j         dz   ddœ| j         dz   ddœ| j         dz   ddœddi| j         d	d
œ| j         dddœdddœ| j         dt          j        d¦  «        dœf	D ]K}t          j        t
          ¦  «        5  t          j        dd| j         i|¤Ž d d d ¦  «         n# 1 swxY w Y   ŒLd S )Nr2   rm   )r¨   ÚmodeÚ	magnitudeÚangleÚphaserÒ   rS   Úeggs)r¨   rq   ru   é   )r¨   ÚNFFTÚnoverlap)rØ   rÙ   é	   )r¨   rØ   Úwindowr*   rj   )r¨   r   r   rV   rW   rX   r   Ú_spectral_helper)r)   r[   s     r   Útest_spectral_helper_raisesz(TestSpectral.test_spectral_helper_raisesƒ  s4  € ð ”&˜‘( IÐ.Ð.Ø”&˜‘( KÐ0Ð0Ø”&˜‘( GÐ,Ð,Ø”&˜‘( GÐ,Ð,Ø�VÐØ”& 6Ð*Ð*Ø”& "°"Ð5Ð5Ø RÐ(Ð(Ø”& "Ý”w˜q‘z”zð#ð #ð
ð 	:ð 	:ˆFõ ”�zÑ*Ô*ð :ð :ÝÔ%Ð9Ð9¨¬Ð9°&Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :øð	:ð 	:s   ÂB)Â)B-	Â0B-	rÒ   rP   Úpsdc                 ó    — t          j        t          ¦  «        5  t          j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r*   rÒ   )rV   rW   rX   r   Ú_single_spectrum_helperr¨   )r)   rÒ   s     r   Ú-test_single_spectrum_helper_unsupported_modesz:TestSpectral.test_single_spectrum_helper_unsupported_modes”  sŽ   € åŒ]�:Ñ&Ô&ð 	>ð 	>ÝÔ(¨4¬6¸Ð=Ñ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s   šAÁAÁ
Az
mode, case))rÞ   Údensity)rÓ   Úspecgram)rÓ   Úspectrumc                 óþ  — t          | d|› �¦  «        }t          j        | j        | j        t          | d|› �¦  «        | j        t          | d|› �¦  «        t          | d|› �¦  «        | j        |¬¦  «        \  }}}t          ||d¬¦  «         t          |t          | d|› �¦  «        d¬¦  «         |j        d	         |j        d	         k    sJ ‚|j        d
         t          | d|› �¦  «        j        d	         k    sJ ‚d S )NÚfreqs_ÚNFFT_Únover_Úpad_to_)r*   r¨   rØ   rŽ   rÙ   Úpad_torq   rÒ   r¼   r½   Út_r   r2   )Úgetattrr   rÜ   r¨   rŽ   rq   r   Úshape)r)   rÒ   ÚcaseÚfreqsrÉ   rÊ   Úts          r   Útest_spectral_helper_psdz%TestSpectral.test_spectral_helper_psd™  s  € õ ˜˜o t˜o˜oÑ.Ô.ˆÝÔ,ØŒf˜œÝ˜˜~ t˜~˜~Ñ.Ô.ØŒwÝ˜T ?¨D ? ?Ñ3Ô3Ý˜4Ð!1¨4Ð!1Ð!1Ñ2Ô2Ø”*Øðñ ô ‰ˆˆc�1õ 	˜˜U¨Ð/Ñ/Ô/Ð/Ý˜�7 4¨¨d¨¨Ñ5Ô5¸EÐBÑBÔBÐBØŒz˜!Œ} ¤¨A¤Ò.Ð.Ð.Ð.ØŒz˜!Œ}¥¨¨k°4¨k¨kÑ :Ô :Ô @ÀÔ CÒCÐCÐCÐCÐCÐCr   ÚbitsizeN)Úidr{   l        zSystem is already 32-bit©Úreasonz32-bit)Úmarksró   c           	      ó&  — |�|                      t          dd|z  ¦  «         | j        }t          j        | j        | j        dz   | j        | j        | j        | j	        | j
        ¬¦  «        \  }}t          ||d¬¦  «         |j        |j        k    sJ ‚d S )NÚmaxsizer   r2   ©r*   r¨   rØ   rŽ   rÙ   rê   rq   r¼   r½   )ÚsetattrÚsysr©   r   Úcsdr¨   rœ   rŽ   r�   rž   rq   r   rí   )r)   rò   Úmonkeypatchrï   rÉ   rÊ   s         r   Útest_csdzTestSpectral.test_csd®  s¢   € ð ÐØ×Ò¥ Y°°7±
Ñ;Ô;Ð;ØÔ"ˆÝ”H˜tœv¨¬°©Ø"&Ô"3Ø $¤Ø&*Ô&8Ø$(Ô$7Ø#'¤:ð/ñ /ô /‰	ˆˆcõ 	˜˜U¨Ð/Ñ/Ô/Ð/ØŒz˜Uœ[Ò(Ð(Ð(Ð(Ð(Ð(r   c           	      óÐ  — | j         €dS t          | j        | j        dz   | j        t          j        | j        ¬¦  «        }t	          j        dd| j         i|¤Ž\  }}t	          j        dd| j         dz  i|¤Ž\  }}t          t          j
        t          j        |¦  «        |z  ¦  «        j        t          j
        t          j        |dz  ¦  «        |z  dz  ¦  «        j        ¦  «         dS )zTest zero padding of csd().Nr2   )r*   r¨   rŽ   rÛ   rq   rØ   r   rj   )rœ   Údictr¨   rŽ   r   r   rq   rü   r   r   ÚsumÚ	conjugaterl   )r)   ÚsargsÚspec0Ú_Úspec1s        r   Útest_csd_paddingzTestSpectral.test_csd_paddingÂ  sî   € àÔÐ$ØˆFÝ�t”v ¤¨¡¨d¬g½dÔ>NØœ:ð'ñ 'ô 'ˆõ ”8Ð<Ð< Ô!2Ð<°eÐ<Ð<‰ˆˆqÝ”8Ð>Ð> Ô!2°1Ñ!4Ð>¸Ð>Ð>‰ˆˆqÝ�BœF¥2¤<°Ñ#6Ô#6°uÑ#<Ñ=Ô=ÔBÝœF¥2¤<°°a±Ñ#8Ô#8¸Ñ#>¸qÑ#@ÑAÔAÔFñ	Hô 	Hð 	Hð 	Hð 	Hr   c                 óè   — | j         }t          j        | j        | j        | j        | j        | j        | j        ¬¦  «        \  }}|j	        |j	        k    sJ ‚|  
                    |||| j        ¦  «         d S )N©r*   rØ   rŽ   rÙ   rê   rq   )r©   r   rÞ   r¨   rœ   rŽ   r�   rž   rq   rí   rÄ   r›   ©r)   rï   rÉ   rÊ   s       r   Útest_psdzTestSpectral.test_psdÎ  s}   € ØÔ"ˆÝ”H˜tœvØ"&Ô"3Ø $¤Ø&*Ô&8Ø$(Ô$7Ø#'¤:ð/ñ /ô /‰	ˆˆcð Œz˜Uœ[Ò(Ð(Ð(Ð(Ø×Ò˜˜u c¨4¬;Ñ7Ô7Ð7Ð7Ð7r   zmake_data, detrendr$   r`   c                 ó  — | j         €d S  || j         ¦  «        }|dz   }|dz   }t          j        ||g¦  «        }t          j        |d¦  «        }|j                             ¦   «         }|                     ¦   «         }t          j        |¦  «        }t          j        || j         | j	        d| j
        |¬¦  «        \  }}	t          j        || j         | j	        d| j
        |¬¦  «        \  }
}t          j        || j         | j	        d| j
        ¬¦  «        \  }}t          |	|¦  «         t          ||¦  «         t          ||d¬¦  «         t          j        t          ¦  «        5  t          |
|d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrT   çffffff
@©r×   r2   r   )r*   rØ   rŽ   rÙ   rq   r:   )r*   rØ   rŽ   rÙ   rq   r.   r½   )rœ   r   r<   Útiler=   Úflattenr˜   r   rÞ   rŽ   rq   r   r   rV   rW   ÚAssertionError)r)   Ú	make_datar:   ÚydataÚydata1Úydata2ÚydatabÚycontrolÚspec_gÚfsp_gÚspec_bÚfsp_bÚspec_cÚfsp_cs                 r   Útest_psd_detrendzTestSpectral.test_psd_detrendÙ  sß  € ð
 ÔÐ$ØˆFØ�	˜$Ô+Ñ,Ô,ˆØ�q‘ˆØ�s‘ˆÝ”	˜6 6Ð*Ñ+Ô+ˆÝ”˜˜wÑ'Ô'ˆØ”—’Ñ"Ô"ˆØ—’‘”ˆÝ”= Ñ'Ô'ˆÝœ 5Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zØ)0ð2ñ 2ô 2‰ˆ�õ œ 6Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zØ)0ð2ñ 2ô 2‰ˆ�õ œ 8Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zð	3ñ 3ô 3‰ˆ�õ
 	˜5 %Ñ(Ô(Ð(Ý˜5 %Ñ(Ô(Ð(Ý˜ ¨UÐ3Ñ3Ô3Ð3åŒ]�>Ñ*Ô*ð 	8ð 	8Ý˜F F°Ð7Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   ÅE>Å>FÆFc                 óŽ  — | j         €d S t          j        | j         ¦  «        }|dz   }|dz   }t          j        t          j        |¦  «        ¦  «        }||z  }t          j        |¦  «        }t          j        ||g¦  «        }t          j        ||g¦  «        }t          j        |d¦  «        }t          j        |d¦  «        }|j         	                    ¦   «         }| 	                    ¦   «         }	| 	                    ¦   «         }t          j
        |	| j         | j        d| j        t          j        ¬¦  «        \  }
}t          j
        || j         | j        d| j        t          j        ¬¦  «        \  }}t          j
        || j         | j        d| j        t          j        ¬¦  «        \  }}|t          |¦  «        |dz                       ¦   «         z  z  }t!          ||¦  «         t!          ||¦  «         t#          |
|d¬¦  «         t%          j        t(          ¦  «        5  t#          ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrT   r  r  r   ©r*   rØ   rŽ   rÙ   rq   rÛ   r   r.   r½   )rœ   r   r“   r   r   Ú	ones_liker<   r  r=   r  rÞ   rŽ   rq   r   r   r  r   r   rV   rW   r  )r)   r  r  r  Ú
windowValsÚ	ycontrol1Ú	ycontrol2r  r  Úydatafr  r  r  r  r  r  s                   r   Útest_psd_window_hanningz$TestSpectral.test_psd_window_hanning   si  € ØÔÐ$ØˆFÝ”	˜$Ô+Ñ,Ô,ˆØ�q‘ˆØ�s‘ˆÝÔ(­¬°fÑ)=Ô)=Ñ>Ô>ˆ
Ø˜ZÑ'ˆ	ÝÔ'¨Ñ/Ô/ˆ	Ý”	˜6 6Ð*Ñ+Ô+ˆÝ”9˜i¨Ð3Ñ4Ô4ˆÝ”˜˜wÑ'Ô'ˆÝ”7˜8 WÑ-Ô-ˆØ”—’Ñ"Ô"ˆØ—’‘”ˆØ×#Ò#Ñ%Ô%ˆÝœ 6Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zÝ(,Ô(;ð=ñ =ô =‰ˆ�õ œ 6Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zÝ(,Ô(;ð=ñ =ô =‰ˆ�õ œ 8Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zÝ(,Ô(8ð:ñ :ô :‰ˆ�ð 	•#�i‘.”. *¨a¡-×!4Ò!4Ñ!6Ô!6Ñ6Ñ6ˆÝ˜5 %Ñ(Ô(Ð(Ý˜5 %Ñ(Ô(Ð(Ý˜ ¨UÐ3Ñ3Ô3Ð3åŒ]�>Ñ*Ô*ð 	8ð 	8Ý˜F F°Ð7Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   ÈH:È:H>ÉH>c           	      óô  — | j         €d S t          j        | j         ¦  «        }t          j        | j         ¦  «        }|dz   }|dz   }|}|}t	          j        t          j        |¦  «        ¦  «        }||z  }t	          j        |¦  «        }t          j        ||g¦  «        }t          j        ||g¦  «        }t          j        |d¦  «        }t          j        |d¦  «        }|j	         
                    ¦   «         }| 
                    ¦   «         }	| 
                    ¦   «         }t	          j        |	| j         | j        d| j        t          j        t          j        ¬¦  «        \  }
}t	          j        || j         | j        d| j        t          j        t          j        ¬¦  «        \  }}t	          j        || j         | j        d| j        t          j        ¬¦  «        \  }}|t!          |¦  «        |dz                       ¦   «         z  z  }t%          ||¦  «         t%          ||¦  «         t'          |
|d¬	¦  «         t)          j        t,          ¦  «        5  t'          ||d¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrT   r  r  r   )r*   rØ   rŽ   rÙ   rq   r:   rÛ   r   r   r.   r½   )rœ   r   r“   r    r   r   r!  r<   r  r=   r  rÞ   rŽ   rq   ra   r   r   r  r   r   rV   rW   r  )r)   r  r  r  r  r#  r$  r"  r  r%  r  r  r  r  r  r  s                   r   Ú&test_psd_window_hanning_detrend_linearz3TestSpectral.test_psd_window_hanning_detrend_linear*  s‘  € ØÔÐ$ØˆFÝ”	˜$Ô+Ñ,Ô,ˆÝ”8˜DÔ-Ñ.Ô.ˆØ�q‘ˆØ�s‘ˆØˆ	Øˆ	ÝÔ(­¬°iÑ)@Ô)@ÑAÔAˆ
Ø 
Ñ*ˆ	ÝÔ'¨	Ñ2Ô2ˆ	Ý”	˜6 6Ð*Ñ+Ô+ˆÝ”9˜i¨Ð3Ñ4Ô4ˆÝ”˜˜wÑ'Ô'ˆÝ”7˜8 WÑ-Ô-ˆØ”—’Ñ"Ô"ˆØ—’‘”ˆØ×#Ò#Ñ%Ô%ˆÝœ 6Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zÝ)-Ô)<Ý(,Ô(;ð=ñ =ô =‰ˆ�õ œ 6Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zÝ)-Ô)<Ý(,Ô(;ð=ñ =ô =‰ˆ�õ œ 8Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zÝ(,Ô(8ð:ñ :ô :‰ˆ�ð 	•#�i‘.”. *¨a¡-×!4Ò!4Ñ!6Ô!6Ñ6Ñ6ˆÝ˜5 %Ñ(Ô(Ð(Ý˜5 %Ñ(Ô(Ð(Ý˜ ¨UÐ3Ñ3Ô3Ð3åŒ]�>Ñ*Ô*ð 	8ð 	8Ý˜F F°Ð7Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   ÉI-É-I1É4I1c           	      ó~  — g d¢}t          j        t           j         t           j        | j        ¦  «        }t          j        | j        ¦  «        }t          t          |¦  «        ¦  «        D ]%}|||         t          j        ||z  ¦  «        z  z  }Œ&t          j	        | j
        | j        | j        d| j        |d¬¦  «        \  }}t          j	        | j
        | j        | j        d| j        |¬¦  «        \  }}t          ||                     ¦   «         dz  z  || j        z  |dz                       ¦   «         z  d¬¦  «         d S )	N)gÖ^úM˜Ë?gô+¥€ªÚ?g<¹ÿø­¾Ñ?g'Æÿneµ?gµ§å×t|?r   F)r*   rØ   rŽ   rÙ   rq   rÛ   Úscale_by_freqr   r   r.   r½   )r   r   r'   r¬   r    Úranger   Úcosr   rÞ   r¨   rœ   rŽ   rq   r   r  )	r)   ÚaÚfacÚwinÚkrÉ   rÊ   Úspec_aÚfsp_as	            r   Útest_psd_window_flattopz$TestSpectral.test_psd_window_flattopY  s:  € ð LÐKÐKˆÝŒk�2œ5˜&¥"¤%¨Ô)?Ñ@Ô@ˆÝŒh�tÔ-Ñ.Ô.ˆÝ•s˜1‘v”v‘”ð 	*ð 	*ˆAØ�1�Q”4�"œ&  S¡™/œ/Ñ)Ñ)ˆCˆCå”H˜tœvØ"&Ô"3Ø $¤Ø&'Ø#'¤:Ø$'Ø+0ð2ñ 2ô 2‰	ˆˆcõ œ 4¤6Ø&*Ô&7Ø$(¤GØ*+Ø'+¤zØ(+ð-ñ -ô -‰ˆ�õ 	˜˜SŸWšW™YœY¨™\Ñ)Ø˜tœw™¨¨Q©§|¢|¡~¤~Ñ5Ø"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r   c                 ó  — | j         }t          j        | j        | j        | j        | j        | j        | j        t          j
        | j        ¦  «        ¬¦  «        \  }}t          ||d¬¦  «         |j        |j        k    sJ ‚d S )N©r*   rØ   rŽ   rÙ   rê   rq   rÛ   r¼   r½   )r©   r   rÞ   r¨   rœ   rŽ   r�   rž   rq   r   r   r¬   r   rí   r
  s       r   Útest_psd_windowarrayz!TestSpectral.test_psd_windowarrayt  s‰   € ØÔ"ˆÝ”H˜tœvØ"&Ô"3Ø $¤Ø&*Ô&8Ø$(Ô$7Ø#'¤:Ý$&¤G¨DÔ,BÑ$CÔ$CðEñ Eô E‰	ˆˆcõ 	˜˜U¨Ð/Ñ/Ô/Ð/ØŒz˜Uœ[Ò(Ð(Ð(Ð(Ð(Ð(r   c           
      óø  — t          j        t          j        | j        ¦  «        ¦  «        }t          j        | j        | j        | j        | j	        | j
        | j        t           j        ¬¦  «        \  }}t          j        | j        | j        | j        | j	        | j
        | j        t           j        d¬¦  «        \  }}t          j        | j        | j        | j        | j	        | j
        | j        t           j        d¬¦  «        \  }}t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||dz                       ¦   «         z  || j        z  |                     ¦   «         dz  z  d¬¦  «         d S )Nr5  T)r*   rØ   rŽ   rÙ   rê   rq   rÛ   r*  Fr   r.   r½   )r   r   r   r   r¬   rÞ   r¨   rœ   rŽ   r�   rž   rq   r   r   r  )r)   r/  rÉ   rÊ   Úspec_sÚfsp_sÚspec_nÚfsp_ns           r   Ú"test_psd_windowarray_scale_by_freqz/TestSpectral.test_psd_windowarray_scale_by_freq€  sl  € ÝÔ!¥"¤'¨$Ô*@Ñ"AÔ"AÑBÔBˆå”H˜tœvØ"&Ô"3Ø $¤Ø&*Ô&8Ø$(Ô$7Ø#'¤:Ý$(Ô$7ð9ñ 9ô 9‰	ˆˆcõ œ 4¤6Ø&*Ô&7Ø$(¤GØ*.Ô*<Ø(,Ô(;Ø'+¤zÝ(,Ô(;Ø/3ð5ñ 5ô 5‰ˆ�õ œ 4¤6Ø&*Ô&7Ø$(¤GØ*.Ô*<Ø(,Ô(;Ø'+¤zÝ(,Ô(;Ø/4ð6ñ 6ô 6‰ˆ�õ 	˜3 Ñ&Ô&Ð&Ý˜3 Ñ&Ô&Ð&Ý˜4 Ñ(Ô(Ð(Ý˜  Q¡Ÿ|š|™~œ~Ñ-Ø˜tœw™ s§w¢w¡y¤y°!¡|Ñ3Ø"ð	$ñ 	$ô 	$ð 	$ð 	$ð 	$r   Úkind)rm   rÓ   rÔ   rÕ   c                 óV  — | j         } t          t          |› d�¦  «        | j        | j        | j        | j        ¬¦  «        \  }}t          ||d¬¦  «         |j        |j        k    sJ ‚|dk    r;|  	                    ||| j
        ¦  «         |                      |||| j
        ¦  «         d S d S )NÚ	_spectrum)r*   rŽ   rq   rê   r¼   r½   rÓ   )rª   rì   r   r¨   rŽ   rq   r¡   r   rí   rÇ   r›   rÄ   )r)   r=  rï   rÉ   rÊ   s        r   Útest_spectrumzTestSpectral.test_spectrum¡  sÊ   € ð Ô#ˆØ5•G�D TÐ"4Ð"4Ð"4Ñ5Ô5ØŒfØŒw˜dœj°Ô1EðGñ Gô G‰	ˆˆcõ 	˜˜U¨Ð/Ñ/Ô/Ð/ØŒz˜Uœ[Ò(Ð(Ð(Ð(Ø�;ÒÐØ×Ò˜t S¨$¬+Ñ6Ô6Ð6Ø×Ò˜T 5¨#¨t¬{Ñ;Ô;Ð;Ð;Ð;ð Ðr   r[   rÓ   rm   rÔ   rÕ   c           
      óŽ  — | j         }t          j        d| j        | j        | j        | j        | j        | j        dœ|¤Ž\  }}}| 	                    d¦  «        dk    rt          j        |¦  «        }t          j        |d¬¦  «        }t          ||d¬¦  «         t          || j        d¬¦  «         |j        d         |j        d         k    sJ ‚|j        d         | j        j        d         k    sJ ‚| 	                    d¦  «        d	vr‰t          j        |                     ¦   «         ¦  «        dk    r_t          t          j        |d¬¦  «                             ¦   «         t          j        |                     ¦   «         ¦  «        z  dd
¬¦  «         | 	                    d¦  «        dvr|                      |||| j        ¦  «         d S d S )Nr	  rÒ   rm   r2   r3   r¼   r½   r   )rm   rÔ   rÕ   g{®Gáz„?)rÔ   rÕ   rj   )r«   r   rã   r¨   r¢   rŽ   r£   r¤   rq   Úgetr   rÀ   r$   r   r¥   rí   ÚmaxÚdiffrÄ   r›   )r)   r[   rï   rÉ   rÊ   rð   Úspecms          r   Útest_specgramzTestSpectral.test_specgram®  sÅ  € ð
 Ô#ˆÝ”}ð / t¤vØ*.Ô*<Ø(,¬Ø.2Ô.AØ,0Ô,@Ø+/¬:ð/ð /ð (.ð/ð /‰ˆˆc�1ð �:Š:�fÑÔ Ò*Ð*Ý”6˜$‘<”<ˆDÝ”˜ 1Ð%Ñ%Ô%ˆå˜˜U¨Ð/Ñ/Ô/Ð/Ý˜˜4œ?°Ð7Ñ7Ô7Ð7àŒz˜!Œ} ¤¨A¤Ò.Ð.Ð.Ð.ØŒz˜!Œ} ¤Ô 5°aÔ 8Ò8Ð8Ð8Ð8à�:Š:�fÑÔÐ%BÐBÐBåŒv�d—h’h‘j”jÑ!Ô! QÒ&Ð&ÝÝ”G˜D qÐ)Ñ)Ô)×-Ò-Ñ/Ô/µ"´&¸¿º¹¼Ñ2DÔ2DÑDÀaØð ñ  ô  ð  ð �:Š:�fÑÔÐ%7Ð7Ð7Ø×Ò˜U E¨3°´Ñ<Ô<Ð<Ð<Ð<ð 8Ð7r   c                 óÔ   — t          j        t          d¬¦  «        5  t          j        | j        t          | j        ¦  «        | j        ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z+Warning should be raised if len(x) <= NFFT.zOnly one segment is calculated)Úmatch)r*   rØ   rŽ   N)rV   ÚwarnsÚUserWarningr   rã   r¨   r   rŽ   ©r)   s    r   Útest_specgram_warn_only1segz(TestSpectral.test_specgram_warn_only1segÎ  s³   € åŒ\�+Ð-MÐNÑNÔNð 	Bð 	BÝŒM˜DœF­¨T¬V©¬¸¼ÐAÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bs   œ4AÁA!Á$A!c           	      ó>  — t          j        | j        | j        | j        | j        | j        | j        ¬¦  «        \  }}t          j        | j        | j        | j        | j        | j        | j        | j        ¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Nr	  rù   )r   rÞ   r¨   rœ   rŽ   r�   rž   rq   rü   r   r   )r)   ÚPxxÚfreqsxxÚPxyÚfreqsxys        r   Útest_psd_csd_equalzTestSpectral.test_psd_csd_equalÓ  s¤   € Ý”x $¤&Ø%)Ô%6Ø#'¤7Ø)-Ô);Ø'+Ô':Ø&*¤jð2ñ 2ô 2‰ˆˆWõ ”x $¤&¨D¬FØ%)Ô%6Ø#'¤7Ø)-Ô);Ø'+Ô':Ø&*¤jð2ñ 2ô 2‰ˆˆWõ 	' s¨CÑ0Ô0Ð0Ý˜7 GÑ,Ô,Ð,Ð,Ð,r   c           	      óX  — t          j        | j        | j        | j        | j        | j        | j        ¬¦  «        \  }}}t          j        | j        | j        | j        | j        | j        | j        |¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         t          ||¦  «         dS )zr
        Test that mlab.specgram without mode and with mode 'default' and 'psd'
        are all the same.
        r	  ©r*   rØ   rŽ   rÙ   rê   rq   rÒ   N)	r   rã   r¨   r¢   rŽ   r£   r¤   rq   r   )r)   rÒ   ÚspecaÚ	freqspecaÚtaÚspecbÚ	freqspecbÚtbs           r   Ú$test_specgram_auto_default_psd_equalz1TestSpectral.test_specgram_auto_default_psd_equalã  s»   € õ  $œ}¨t¬vØ26Ô2DØ04´Ø6:Ô6IØ48Ô4HØ37´:ð ?ñ  ?ô  ?Ñˆˆy˜"õ  $œ}¨t¬vØ26Ô2DØ04´Ø6:Ô6IØ48Ô4HØ37´:Ø26ð 8ñ  8ô  8Ñˆˆy˜"õ 	˜5 %Ñ(Ô(Ð(Ý˜9 iÑ0Ô0Ð0Ý˜2˜rÑ"Ô"Ð"Ð"Ð"r   z
mode, convc                 óR   — t          j        t          j        | ¦  «        d¬¦  «        S rG   )r   ÚunwraprÔ   ©r*   s    r   ú<lambda>zTestSpectral.<lambda>þ  s   € ¥¤	­"¬(°1©+¬+¸AÐ >Ñ >Ô >€ r   c           	      óp  — t          j        | j        | j        | j        | j        | j        | j        d¬¦  «        \  }}}t          j        | j        | j        | j        | j        | j        | j        |¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         t           ||¦  «        |d¬¦  «         d S )Nrm   rT  r¼   r½   )
r   rã   r¨   r¢   rŽ   r£   r¤   rq   r   r   )	r)   rÒ   ÚconvÚspeccÚ	freqspeccÚtcrE  Ú	freqspecmÚtms	            r   Ú test_specgram_complex_equivalentz-TestSpectral.test_specgram_complex_equivalentú  sË   € õ  $œ}¨t¬vØ26Ô2DØ04´Ø6:Ô6IØ48Ô4HØ37´:Ø2;ð =ñ  =ô  =Ñˆˆy˜"õ  $œ}¨t¬vØ26Ô2DØ04´Ø6:Ô6IØ48Ô4HØ37´:Ø26ð 8ñ  8ô  8Ñˆˆy˜"õ 	˜9 iÑ0Ô0Ð0Ý˜2˜rÑ"Ô"Ð"Ý˜˜˜U™œ U°Ð7Ñ7Ô7Ð7Ð7Ð7r   c           	      óŽ  — t          j        t          j        | j        ¦  «        ¦  «        }t          j        | j        | j        | j        | j	        | j
        | j        |¬¦  «        \  }}t          j        | j        | j        | j        | j	        | j
        | j        ¬¦  «        \  }}t          ||¦  «         t          ||d¬¦  «         d S )Nr5  r	  r.   r½   )r   r   r   r   r¬   rÞ   r¨   rœ   rŽ   r�   rž   rq   r   r   )r)   r/  rU  rË   rX  Úfspbs         r   Útest_psd_windowarray_equalz'TestSpectral.test_psd_windowarray_equal  sÅ   € ÝÔ!¥"¤'¨$Ô*@Ñ"AÔ"AÑBÔBˆÝ”h ¤Ø$(Ô$5Ø"&¤'Ø(,Ô(:Ø&*Ô&9Ø%)¤ZØ&)ð+ñ +ô +‰ˆˆtõ ”h ¤Ø$(Ô$5Ø"&¤'Ø(,Ô(:Ø&*Ô&9Ø%)¤Zð1ñ 1ô 1‰ˆˆtõ 	˜4 Ñ&Ô&Ð&Ý˜˜u¨5Ð1Ñ1Ô1Ð1Ð1Ð1r   )*rg   rh   ri   rV   ÚfixtureÚclassmethodrº   rÄ   rÇ   rÝ   ÚmarkÚparametrizerá   rñ   ÚparamÚskipifrû   rø   rþ   r  r  r   r    r   rD   r“   ra   r  r&  r(  r3  r6  r<  r@  rF  rL  rR  r[  rÀ   rÔ   rg  rj  rj   r   r   rˆ   rˆ   ¯   s¼  € € € € € ðD €V„^˜'¨4Ð0Ñ0Ô0ØðM2ð M2ñ „[ñ 1Ô0ðM2ð^'ð 'ð 'ð)ð )ð )ð0:ð :ð :ð" „[×Ò˜V i°Ð%7Ñ8Ô8ð>ð >ñ 9Ô8ð>ð „[×Ò˜\ð ,ð ,ð ,ñ ô ð
Dð Dñô ð
Dð  „[×Ò˜YØˆŒ�T˜iÐ(Ñ(Ô(ØˆŒ�RØ!œ;×-Ò-¨c¬k¸UÒ.BØ5Oð .ñ Qô Qà ð	"ñ 	"ô 	"ð)ñ ô ð)ð )ñô ð)ð
Hð 
Hð 
Hð	8ð 	8ð 	8ð „[×ÒØØ
Œ(�DÔ%Ð	&¨¬°6Ð(:Ø
Œ)�TÔ(Ð	)¨B¬I°xÐ+@ð	BñCô Cð!8ð !8ñ	Cô Cð!8ðF(8ð (8ð (8ðT-8ð -8ð -8ð^$ð $ð $ð6
)ð 
)ð 
)ð$ð $ð $ðB „[×ÒØÐ:Ð:Ð:ñ<ô <ð	<ð 	<ñ<ô <ð	<ð „[×ÒØØ	ˆf�iÐ  6¨5 /°F¸KÐ3HØ
�)Ð	˜v wÐ/°&¸'Ð1Bð	DñEô Eð=ð =ñ	Eô Eð=ð8Bð Bð Bð
-ð -ð -ð  „[×Ò˜V i°Ð%7Ñ8Ô8ð#ð #ñ 9Ô8ð#ð, „[×ÒØØ˜"œ&Ð!Ø�b”hÐØÐ>Ð>Ð?ð
ñô ð8ð 8ñô ð8ð(2ð 2ð 2ð 2ð 2r   rˆ   c                  óØ  — d} t           j                             d¦  «         t           j                             | ¦  «        }t          j        |d¦  «        }t          j        |t          j        d¦  «        dz  d¬¦  «        }t          j        ||ddd	¬
¦  «        \  }}t          t          j
        |¦  «        dd¬¦  «         t          j        t          j
        |¦  «        ¦  «        sJ ‚d S )Nrv   i!N,r×   g      4@Úsame)rÒ   rx   r   rw   )rØ   rŽ   rÙ   gbX9´Èê?gü©ñÒMbP?r½   )r   r   r   ÚrandnÚrollÚconvolver   r   Úcoherer   r$   Úisreal)ÚNr*   r¨   ÚcohsqÚfs        r   Útest_coherer{  (  s¿   € Ø€AÝ„I‡N‚N�8ÑÔÐÝ
Œ	�Š˜ÑÔ€Aå
Œ��2‰Œ€Aå
Œ�A•r”w˜r‘{”{ SÑ(¨vÐ6Ñ6Ô6€AÝŒ{˜1˜a c¨a¸#Ð>Ñ>Ô>�H€Eˆ1Ý•B”G˜E‘N”N E°Ð6Ñ6Ô6Ð6ÝŒ9•R”W˜U‘^”^Ñ$Ô$Ð$Ð$Ð$Ð$Ð$r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestGaussianKDEc                 ó´   — t          j        d¦  «        }t          j        |¦  «        }g d¢}t           j                              ||¦  «        |d¬¦  «         dS )zRegression test for #1181.rT   )çB…×\AÁ?ç­±øESÇ?gÔö
f§úÈ?r€  r  é   ©ÚdecimalN)r   r“   r   ÚGaussianKDEÚtestingÚassert_array_almost_equal)r)   Úx1ÚkdeÚ
y_expecteds       r   Útest_kde_integer_inputz&TestGaussianKDE.test_kde_integer_input=  s[   € åŒY�q‰\Œ\ˆÝÔ˜rÑ"Ô"ˆð"ð "ð "ˆ
å
Œ
×,Ò,¨S¨S°©W¬W°jÈ!Ð,ÑLÔLÐLÐLÐLr   c                 óú   — t          j        g d¢t          ¬¦  «        }t          j        ddd¬¦  «        }g d¢}t	          j        |d¦  «        } ||¦  «        }t           j                             ||d	¬
¦  «         d S )N©éùÿÿÿéûÿÿÿr2   rt   rT   )Údtypeiöÿÿÿru   rT   r’   )g>L\ž9™?gp4=¨?gùHŒ–êŸ«?g8(H	MT«?gÄ²™CR‘?Úscotté   r‚  )r   r—   Úfloatr   r   r„  r…  r†  )r)   r‡  Úxsr‰  Úkde2Úy2s         r   Ú$test_gaussian_kde_covariance_cachingz4TestGaussianKDE.test_gaussian_kde_covariance_cachingE  sˆ   € ÝŒXÐ'Ð'Ð'­uÐ5Ñ5Ô5ˆÝŒ[˜˜b aÐ(Ñ(Ô(ˆð"ð "ð "ˆ
õ Ô  GÑ,Ô,ˆØˆT�"‰XŒXˆå
Œ
×,Ò,¨Z¸ÀQÐ,ÑGÔGÐGÐGÐGr   c                 óh  — t           j                             d¦  «         d}t           j                             |¦  «        }t	          j        |¦  «        }t	          j        |d¦  «        }t	          j        ||j        ¬¦  «        }t          j        ddd¦  «        }|                     |¦  «        }|                     |¦  «        }| 	                    ¦   «         | 	                    ¦   «         k    sJ ‚|                     |¦  «        }	| 	                    ¦   «         |	 	                    ¦   «         k    sJ ‚d S )NéîÀ… é2   r�  ©Ú	bw_methodr�  r‘  é3   )
r   r   r   rs  r   r„  Úfactorr   ÚevaluateÚall)
r)   Ún_basesampleÚxnÚgkdeÚgkde2Úgkde3r“  ÚkdepdfÚkdepdf2Úkdepdf3s
             r   Útest_kde_bandwidth_methodz)TestGaussianKDE.test_kde_bandwidth_methodS  s÷   € å
Œ	�Š�wÑÔÐØˆÝŒY�_Š_˜\Ñ*Ô*ˆõ Ô Ñ#Ô#ˆåÔ   WÑ-Ô-ˆåÔ  ¨t¬{Ð;Ñ;Ô;ˆåŒ[˜˜Q Ñ#Ô#ˆØ—’˜rÑ"Ô"ˆØ—.’. Ñ$Ô$ˆØ�zŠz‰|Œ|˜wŸ{š{™}œ}Ò,Ð,Ð,Ð,Ø—.’. Ñ$Ô$ˆØ�zŠz‰|Œ|˜wŸ{š{™}œ}Ò,Ð,Ð,Ð,Ð,Ð,r   N)rg   rh   ri   rŠ  r–  r¨  rj   r   r   r}  r}  ;  sG   € € € € € ðMð Mð MðHð Hð Hð-ð -ð -ð -ð -r   r}  c                   óü   — e Zd Zd„ Zd„ Zej                             ej	        dk    d¬¦  «        d„ ¦   «         Z
d„ Zej                             ej	        dk    d¬¦  «        d„ ¦   «         Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestGaussianKDECustomc                 ó’   — t          j        t          ¦  «        5  t          j        g ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z(Pass no data into the GaussianKDE class.N©rV   rW   rX   r   r„  rK  s    r   Útest_no_dataz"TestGaussianKDECustom.test_no_datai  s‡   € åŒ]�:Ñ&Ô&ð 	!ð 	!ÝÔ˜RÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   š<¼A ÁA c                 ó”   — t          j        t          ¦  «        5  t          j        dg¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z9Pass a single dataset element into the GaussianKDE class.é*   Nr¬  rK  s    r   Útest_single_dataset_elementz1TestGaussianKDECustom.test_single_dataset_elementn  s‰   € åŒ]�:Ñ&Ô&ð 	#ð 	#ÝÔ˜b˜TÑ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   š=½AÁAÚ
emscriptenz.WASM doesn't support floating-point exceptionsrô   c                 óâ   — t          j        g d¢g d¢g d¢g¦  «        }t          j        t           j        j        ¦  «        5  t          j        |d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z/Test silverman's for a multi-dimensional array.©r2   r   é   ©rt   rT   r�  ©r‘  é   rÚ   Ú	silvermanN©r   r—   rV   rW   ÚlinalgÚLinAlgErrorr   r„  ©r)   r‡  s     r   Útest_silverman_multidim_datasetz5TestGaussianKDECustom.test_silverman_multidim_datasets  s²   € õ ŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8ˆÝŒ]�2œ9Ô0Ñ1Ô1ð 	.ð 	.ÝÔ˜R Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ó   ÁA$Á$A(Á+A(c                 ó¦   — t          j        g d¢¦  «        }t          j        |d¦  «        }d}t	          |                     ¦   «         |d¦  «         dS )z4Test silverman's output for a single dimension list.rŒ  r¸  g/²ŒÄ‘è?r‘  N©r   r—   r   r„  r   Úcovariance_factor©r)   r‡  Úmygaussr‰  s       r   Ú test_silverman_singledim_datasetz6TestGaussianKDECustom.test_silverman_singledim_dataset{  sS   € åŒXÐ'Ð'Ð'Ñ(Ô(ˆÝÔ" 2 {Ñ3Ô3ˆØ(ˆ
Ý˜G×5Ò5Ñ7Ô7¸ÀQÑGÔGÐGÐGÐGr   c                 óâ   — t          j        g d¢g d¢g d¢g¦  «        }t          j        t           j        j        ¦  «        5  t          j        |d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z2Test scott's output for a multi-dimensional array.r³  rµ  r¶  r�  Nr¹  r¼  s     r   Útest_scott_multidim_datasetz1TestGaussianKDECustom.test_scott_multidim_dataset‚  s²   € õ ŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8ˆÝŒ]�2œ9Ô0Ñ1Ô1ð 	*ð 	*ÝÔ˜R Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*r¾  c                 ó¦   — t          j        g d¢¦  «        }t          j        |d¦  «        }d}t	          |                     ¦   «         |d¦  «         dS )z/Test scott's output a single-dimensional array.rŒ  r�  gŽ¦	e1ç?r‘  NrÀ  rÂ  s       r   Útest_scott_singledim_datasetz2TestGaussianKDECustom.test_scott_singledim_datasetŠ  sS   € åŒXÐ'Ð'Ð'Ñ(Ô(ˆÝÔ" 2 wÑ/Ô/ˆØ(ˆ
Ý˜G×5Ò5Ñ7Ô7¸ÀQÑGÔGÐGÐGÐGr   c                 ó–   — t          j        t          ¦  «        5  t          j        g d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z0Test the scalar's cov factor for an empty array.rT   rš  Nr¬  rK  s    r   Útest_scalar_empty_datasetz/TestGaussianKDECustom.test_scalar_empty_dataset‘  sŒ   € åŒ]�:Ñ&Ô&ð 	.ð 	.ÝÔ˜R¨1Ð-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   š>¾AÁAc                 óà   ‡— t           j                             d¦  «         dŠˆfd„t          d¦  «        D ¦   «         }t	          j        |d¬¦  «        }|                     ¦   «         dk    sJ ‚dS )zTest a scalar's cov factor.r˜  r™  c                 óN   •— g | ]!}t           j                             ‰¦  «        ‘Œ"S rj   ©r   r   rs  ©rŒ   r¹   r   s     €r   r�   zHTestGaussianKDECustom.test_scalar_covariance_dataset.<locals>.<listcomp>š  ó'   ø€ ÐIÐIÐI¸1�œŸš¨Ñ6Ô6ÐIÐIÐIr   rT   g      à?rš  N©r   r   r   r+  r   r„  rÁ  )r)   Úmultidim_datarˆ  r   s      @r   Útest_scalar_covariance_datasetz4TestGaussianKDECustom.test_scalar_covariance_dataset–  ss   ø€ å
Œ	�Š�wÑÔÐØˆØIÐIÐIÐIÅÀaÁÄÐIÑIÔIˆåÔ˜}¸Ð<Ñ<Ô<ˆØ×$Ò$Ñ&Ô&¨#Ò-Ð-Ð-Ð-Ð-Ð-r   c                 óæ   ‡— t           j                             d¦  «         dŠˆfd„t          d¦  «        D ¦   «         }d„ }t	          j        ||¬¦  «        }|                     ¦   «         dk    sJ ‚dS )	z=Test the callable's cov factor for a multi-dimensional array.r˜  r™  c                 óN   •— g | ]!}t           j                             ‰¦  «        ‘Œ"S rj   rÍ  rÎ  s     €r   r�   zJTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.<listcomp>£  rÏ  r   rT   c                 ó   — dS )Nçš™™™™™á?rj   r^  s    r   Úcallable_funzLTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.callable_fun¥  s   € Ø�4r   rš  rÖ  NrÐ  )r)   rÑ  r×  rˆ  r   s       @r   Ú test_callable_covariance_datasetz6TestGaussianKDECustom.test_callable_covariance_datasetŸ  s‚   ø€ å
Œ	�Š�wÑÔÐØˆØIÐIÐIÐIÅÀaÁÄÐIÑIÔIˆð	ð 	ð 	åÔ˜}¸ÐEÑEÔEˆØ×$Ò$Ñ&Ô&¨$Ò.Ð.Ð.Ð.Ð.Ð.r   c                 óü   — t           j                             d¦  «         d}t           j                             |¦  «        }t	          j        |d¬¦  «        }d}t          |                     ¦   «         |d¦  «         dS )z>Test the callable's cov factor for a single-dimensional array.r˜  r™  r¸  rš  g}ÇB8 ß?r‘  N)r   r   r   rs  r   r„  r   rÁ  )r)   r   rÑ  rˆ  r‰  s        r   Útest_callable_singledim_datasetz5TestGaussianKDECustom.test_callable_singledim_datasetª  sl   € å
Œ	�Š�wÑÔÐØˆÝœ	Ÿš¨Ñ5Ô5ˆåÔ˜}¸ÐDÑDÔDˆØ(ˆ
Ý˜C×1Ò1Ñ3Ô3°ZÀÑCÔCÐCÐCÐCr   c                 ó  — t           j                             d¦  «         d}t           j                             |¦  «        }t	          j        t          ¦  «        5  t          j        |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z@Test the error message that should be called when bw is invalid.r˜  r™  Úinvalidrš  N)	r   r   r   rs  rV   rW   rX   r   r„  )r)   r   Údatas      r   Útest_wrong_bw_methodz*TestGaussianKDECustom.test_wrong_bw_method´  s¸   € å
Œ	�Š�wÑÔÐØˆÝŒy�Š˜|Ñ,Ô,ˆÝŒ]�:Ñ&Ô&ð 	8ð 	8ÝÔ˜T¨YÐ7Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   ÁA>Á>BÂBN)rg   rh   ri   r­  r°  rV   rm  rp  rû   Úplatformr½  rÄ  rÆ  rÈ  rÊ  rÒ  rØ  rÚ  rÞ  rj   r   r   rª  rª  h  s.  € € € € € ð!ð !ð !ð
#ð #ð #ð
 „[×Ò˜œ¨Ò4ØOð ñ Qô Qð.ð .ñQô Qð.ðHð Hð Hð „[×Ò˜œ¨Ò4ØOð ñ Qô Qð*ð *ñQô Qð*ðHð Hð Hð.ð .ð .ð
.ð .ð .ð	/ð 	/ð 	/ðDð Dð Dð8ð 8ð 8ð 8ð 8r   rª  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestGaussianKDEEvaluatec                 óú   — t          j        ddd¦  «        }t          j        |¦  «        }t          j        ddd¦  «        }g d¢}|                     |¦  «        }t           j                             ||d¦  «         dS )zr
        Test the evaluate method when the dim's of dataset and points have
        different dimensions.
        r´  ru   r   é   )ç¸ÁXø]…¶?çAò²G$¾?rå  rä  gä;ç]«ó¢?r‘  N©r   r“   r   r„  rž  r…  r†  )r)   r‡  rˆ  Úx2r‰  r¨   s         r   Útest_evaluate_diff_dimz.TestGaussianKDEEvaluate.test_evaluate_diff_dim¿  s~   € õ
 ŒY�q˜"˜aÑ Ô ˆÝÔ˜rÑ"Ô"ˆÝŒY�q˜"˜aÑ Ô ˆð
ð 
ð 
ˆ
ð �LŠL˜ÑÔˆÝ
Œ
×,Ò,¨Q°
¸AÑ>Ô>Ð>Ð>Ð>r   c                 óL  — t           j                             d¦  «         d}t           j                             |¦  «        }t	          j        |¦  «        }dgdgdgg}t          j        t          ¦  «        5  | 	                    |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z—
        Invert the dimensions; i.e., for a dataset of dimension 1 [3, 2, 4],
        the points should have a dimension of 3 [[3], [2], [4]].
        r˜  r™  r2   r   r´  N)
r   r   r   rs  r   r„  rV   rW   rX   rž  )r)   r   rÑ  rˆ  rç  s        r   Útest_evaluate_inv_dimz-TestGaussianKDEEvaluate.test_evaluate_inv_dimÍ  s×   € õ
 	Œ	�Š�wÑÔÐØˆÝœ	Ÿš¨Ñ5Ô5ˆÝÔ˜}Ñ-Ô-ˆØˆc�A�3˜˜ˆ_ˆÝŒ]�:Ñ&Ô&ð 	ð 	Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á6BÂBÂ Bc                 óö   — t          j        ddd¦  «        }t          j        dg¦  «        }t          j        |¦  «        }dg}|                     |¦  «        }t           j                             ||d¦  «         dS )z-Tests if evaluated against a one by one arrayr´  ru   r   rä  r‘  N)r   r“   r—   r   r„  rž  r…  r†  ©r)   r‡  rç  rˆ  r‰  r¨   s         r   Útest_evaluate_dim_and_numz1TestGaussianKDEEvaluate.test_evaluate_dim_and_numÚ  sl   € åŒY�q˜"˜aÑ Ô ˆÝŒX�q�c‰]Œ]ˆÝÔ˜rÑ"Ô"ˆØ �\ˆ
Ø�LŠL˜ÑÔˆÝ
Œ
×,Ò,¨Q°
¸AÑ>Ô>Ð>Ð>Ð>r   c                 ó@  — t          j        ddd¦  «        }t          j        ddd¦  «        t          j        ddd¦  «        g}t          j        |¦  «        }t	          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr´  ru   r   )r   r“   r   r„  rV   rW   rX   rž  )r)   r‡  rç  rˆ  s       r   Útest_evaluate_point_dim_not_onez7TestGaussianKDEEvaluate.test_evaluate_point_dim_not_oneã  sÑ   € ÝŒY�q˜"˜aÑ Ô ˆÝŒi˜˜2˜qÑ!Ô!¥2¤9¨Q°°AÑ#6Ô#6Ð7ˆÝÔ˜rÑ"Ô"ˆÝŒ]�:Ñ&Ô&ð 	ð 	Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á0BÂBÂBc                 óú   — t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        |¦  «        }g d¢}|                     |¦  «        }t           j                             ||d¦  «         d S )Nr´  ru   r   r·  )rä  rå  rå  r‘  ræ  rì  s         r   Ú"test_evaluate_equal_dim_and_num_ltz:TestGaussianKDEEvaluate.test_evaluate_equal_dim_and_num_ltê  st   € ÝŒY�q˜"˜aÑ Ô ˆÝŒY�q˜!˜QÑÔˆÝÔ˜rÑ"Ô"ˆØ9Ð9Ð9ˆ
Ø�LŠL˜ÑÔˆÝ
Œ
×,Ò,¨Q°
¸AÑ>Ô>Ð>Ð>Ð>r   N)rg   rh   ri   rè  rê  rí  rï  rñ  rj   r   r   rá  rá  ½  s_   € € € € € ð?ð ?ð ?ðð ð ð?ð ?ð ?ðð ð ð?ð ?ð ?ð ?ð ?r   rá  c                  óÆ  — t          j        g d¢¦  «        } d}t          j        t           j                             | ¦  «        |z  ¦  «        dz  || j        z  z  }t          j        | | j        d|z  t
          j        t
          j        dd d d¬¦	  «	        \  }}t          j	        |d         g|dd…         |dd …         d d d	…         z   ¦  «        }t          ||d
¬¦  «         d S )N©r   r2   r   r´  r2   r   r2   ç      ð?r   r2   r   rr   ©rØ   rŽ   rÛ   r:   rÙ   rê   r*  rq   rt   rO   r¼   r½   )r   r—   rÀ   ÚfftÚsizer   rÞ   r   r9   Úappendr   ©ÚuÚdtÚSuÚPrz  ÚSu_1sides         r   Útest_psd_onesided_normrÿ  ó  sÛ   € Ý
ŒÐ&Ð&Ð&Ñ'Ô'€AØ	€BÝ	Œ•”—
’
˜1‘” Ñ"Ñ	#Ô	# QÑ	&¨"¨q¬v©+Ñ	6€BÝŒ8�A˜AœF q¨¡tµDÔ4DÝ Ô-¸À$Ø"&Ø$ð&ñ &ô &�D€A€qõ Œy˜"˜Qœ%˜ " Q q S¤'¨B¨q¨r¨r¬F°4°4°R°4¬LÑ"8Ñ9Ô9€HÝ�A�x eÐ,Ñ,Ô,Ð,Ð,Ð,r   c                  ó  — t          j        g d¢¦  «        } d}t          j        t           j                             | ¦  «        |z  ¦  «        dz  || j        z  z  }t          j        | | j        dz  d|z  t
          j        t
          j        dddd¬¦	  «	        \  }}t          j	        |d         g|dd	…         |d	d…         ddd
…         z   ¦  «        }t          t          j        |¦  «        t          j        |¦  «        ¦  «         dS )z&Test the case len(x) < NFFT for psd().ró  rô  r   r2   r   Nrr   rõ  rt   rO   )r   r—   rÀ   rö  r÷  r   rÞ   r   r9   rø  r   r  rù  s         r   Útest_psd_oversamplingr  ÿ  sì   € å
ŒÐ&Ð&Ð&Ñ'Ô'€AØ	€BÝ	Œ•”—
’
˜1‘” Ñ"Ñ	#Ô	# QÑ	&¨"¨q¬v©+Ñ	6€BÝŒ8�A˜AœF 1™H¨¨2©µdÔ6FÝ Ô-¸À$Ø"&Ø$ð&ñ &ô &�D€A€qõ Œy˜"˜Qœ%˜ " Q q S¤'¨B¨q¨r¨r¬F°4°4°R°4¬LÑ"8Ñ9Ô9€HÝ�œ˜q™	œ	¥2¤6¨(Ñ#3Ô#3Ñ4Ô4Ð4Ð4Ð4r   )rû   Únumpy.testingr   r   r   r   Únumpyr   rV   Ú
matplotlibr   r   r   rm  rn  rˆ   r{  r}  rª  rá  rÿ  r  rj   r   r   ú<module>r     s  ðØ 
€
€
€
ðOð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oà Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð ðIð Ið IðV<ð V<ð V<ð V<ð V<ñ V<ô V<ð V<ðr „×Ò˜ u¨d mØ$ iÐ0¸ð ñ Aô Aà„×Ò˜Ð"EÐ"EÐ"EØ&ð ñ (ô (à„×ÒØLà	ˆT�2�r˜2˜rÐ"Ø
ˆˆd�B˜˜B Ð#Ø	ˆˆ�T˜2˜r 2 rÐ*Ø	ˆT�4˜˜R Ð&Ø	ˆT�2�r˜4 Ð&Ø	ˆT�4˜˜T 4Ð(Ø	ˆT�3˜˜B Ð$Ø	ˆS�"�b˜"˜cÐ"Ø	ˆS�"�b˜"˜dÐ#Ø	ˆS�#�r˜3 Ð$Ø	ˆT�2�r˜2˜rÐ"ðð	ð 	ð 	ð ð9 ñ ô ð:T	2ð T	2ð T	2ð T	2ð T	2ñ T	2ô T	2ñ;ô ñ(ô (ñAô AðBT	2ðp
%ð 
%ð 
%ð&*-ð *-ð *-ð *-ð *-ñ *-ô *-ð *-ðZR8ð R8ð R8ð R8ð R8ñ R8ô R8ð R8ðj3?ð 3?ð 3?ð 3?ð 3?ñ 3?ô 3?ð 3?ðl	-ð 	-ð 	-ð
5ð 
5ð 
5ð 
5ð 
5r   