§
    ‡ÛgB°  ã                   óx  — d dl mZmZmZmZ d dlZd dlZd dlm	Z	m
Z
  G d„ d¦  «        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 )+é    )Úassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equal_nulpN)ÚmlabÚ_apic                   óî  — e Zd Zd„ Z ej        d¬¦  «        d„ ¦   «         Zdd„Zej         	                    ddd	gd
dg¬¦  «        d„ ¦   «         Z
ej         	                    dg d¢g d¢¬¦  «        d„ ¦   «         Zej         	                    dddgddg¬¦  «        ej         	                    dg d¢g d¢¬¦  «        d„ ¦   «         ¦   «         Zej         	                    dddgddg¬¦  «        d„ ¦   «         ZdS )Ú
TestStridec                 ó4   — |}|j         �|j         }|j         ­|S ©N)Úbase)ÚselfÚxÚys      úP/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_mlab.pyÚget_basezTestStride.get_base
   s%   € ØˆØŒfÐ Ø”ˆAð ŒfÐ àˆó    T)Úautousec              #   ój   K  — t          j        ¦   «         5  d V — d d d ¦  «         d S # 1 swxY w Y   d S r   )r   Ú'suppress_matplotlib_deprecation_warning©r   s    r   Ústride_is_deprecatedzTestStride.stride_is_deprecated   s‚   è è € åÔ9Ñ;Ô;ð 	ð 	ØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   –(¨,¯,r   c                 ó*  — ||z
  }t          j        dt          |¦  «        |z
  dz   |¦  «        }t          |¦  «        }t          j        ||f¦  «        }t	          |¦  «        D ]"}	|||	         ||	         |z   …         |dd…|	f<   Œ#|dk    r|j        }|S )z²
        This is an adaptation of the original window extraction algorithm.
        This is here to test to make sure the new implementation has the same
        result.
        r   é   N)ÚnpÚarangeÚlenÚzerosÚrangeÚT)
r   r   ÚNFFTÚnoverlapÚaxisÚstepÚindÚnÚresultÚis
             r   Úcalc_window_targetzTestStride.calc_window_target   s¢   € ð �h‰ˆÝŒi˜�3˜q™6œ6 D™=¨1Ñ,¨dÑ3Ô3ˆÝ�‰HŒHˆÝ”˜4 ˜)Ñ$Ô$ˆõ �q‘”ð 	1ð 	1ˆAØ˜S œV C¨¤F¨4¡KÐ/Ô0ˆF�1�1�1�a�4‰LˆLØ�1Š9ˆ9Ø”XˆFØˆr   Úshape© )é
   r   Ú0DÚ2D)Úidsc                 ó  — t          j        t          j        |¦  «        ¦  «                             |¦  «        }t	          j        t          ¦  «        5  t          j        |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   )	r   r   ÚprodÚreshapeÚpytestÚraisesÚ
ValueErrorr   Ústride_windows)r   r*   r   s      r   Ú'test_stride_windows_invalid_input_shapez2TestStride.test_stride_windows_invalid_input_shape'   s®   € åŒI•b”g˜e‘n”nÑ%Ô%×-Ò-¨eÑ4Ô4ˆÝŒ]�:Ñ&Ô&ð 	&ð 	&ÝÔ  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ÁA6Á6A:Á=A:zn, noverlap))r   N)é   N)é   r:   )r:   é   )zn less than 1zn greater than inputznoverlap greater than nznoverlap equal to nc                 ó¾   — t          j        d¦  «        }t          j        t          ¦  «        5  t          j        |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr,   )r   r   r4   r5   r6   r   r7   )r   r&   r"   r   s       r   Ú"test_stride_windows_invalid_paramsz-TestStride.test_stride_windows_invalid_params-   sš   € õ ŒI�b‰MŒMˆÝŒ]�:Ñ&Ô&ð 	0ð 	0ÝÔ  1 hÑ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s   ®AÁAÁAr#   r   Úaxis0Úaxis1))r   r   )r1   r   )é   r:   )é   éýÿÿÿ)zn1-noverlap0zn5-noverlap0zn15-noverlap2zn13-noverlapn3c                 óh  — t          j        d¦  «        }t          j        ||||¬¦  «        }ddg}|||<   d||z
  z  |d|z
  <   |                      ||||¬¦  «        }|j        |j        k    sJ ‚t          ||¦  «         t          |¦  «        |j        k    sJ ‚|                      |¦  «        |u sJ ‚d S )Néd   )r"   r#   r   r   )	r   r   r   r7   r)   r*   r   Útupler   )r   r&   r"   r#   r   r   Úexpected_shapeÚyts           r   Útest_stride_windowszTestStride.test_stride_windows7   sÓ   € õ ŒI�c‰NŒNˆÝÔ  1¨x¸dÐCÑCÔCˆà˜Q˜ˆØ ˆ�tÑØ#&¨1¨x©<Ñ#8ˆ�q˜4‘xÑ Ø×$Ò$ Q¨°HÀ4Ð$ÑHÔHˆàŒx˜1œ7Ò"Ð"Ð"Ð"Ý˜2˜qÑ!Ô!Ð!Ý�^Ñ$Ô$¨¬Ò/Ð/Ð/Ð/Ø�}Š}˜QÑÔ 1Ð$Ð$Ð$Ð$Ð$Ð$r   c                 ó0  — d}t          j        |¦  «        t           j                 }t          j        |d¦  «        }|                     ¦   «         }t          j        |||¬¦  «        }|dk    r|j        }|j        |j        k    sJ ‚t          ||¦  «         d S )Né    )é   r   ©r#   r   )
r   r   ÚnewaxisÚtileÚflattenr   r7   r    r*   r   )r   r#   r&   r   Úx1Úx2r   s          r   Ú+test_stride_windows_n32_noverlap0_unflattenz6TestStride.test_stride_windows_n32_noverlap0_unflattenJ   s‹   € àˆÝŒI�a‰LŒL�œÔ$ˆÝŒW�Q˜Ñ Ô ˆØ�ZŠZ‰\Œ\ˆÝÔ  A¨DÐ1Ñ1Ô1ˆà�1Š9ˆ9Ø”ˆBØŒw˜"œ(Ò"Ð"Ð"Ð"Ý˜1˜bÑ!Ô!Ð!Ð!Ð!r   N)r   r   )Ú__name__Ú
__module__Ú__qualname__r   r4   Úfixturer   r)   ÚmarkÚparametrizer8   r=   rH   rR   r+   r   r   r
   r
   	   s¬  € € € € € ðð ð ð €V„^˜DÐ!Ñ!Ô!ðð ñ "Ô!ððð ð ð ð$ „[×Ò˜W r¨7 m¸$À¸ÐÑFÔFð&ð &ñ GÔFð&ð
 „[×Ò˜]ØDÐDÐDð"9ð "9ð "9ð ñ :ô :ð
0ð 0ñ:ô :ð
0ð
 „[×Ò˜V a¨ V°'¸7Ð1CÐÑDÔDØ„[×Ò˜]Ø@Ð@Ð@ð"Eð "Eð "Eð ñ Fô Fð%ð %ñ	Fô Fñ EÔDð
%ð „[×Ò˜V a¨ V°'¸7Ð1CÐÑDÔDð
"ð 
"ñ EÔDð
"ð 
"ð 
"r   r
   c                  ó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   éè  rD   )r   ÚrandomÚseedÚstandard_normalÚonesr   r   Úwindow_noneÚhanningr   Úwindow_hanning)r&   Úrandr^   s      r   Útest_windowrc   X   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ÐHr   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   rZ   ç        rD   ç      Y@g      $Àg     €V@r:   )r   r[   r\   Úlinspacer   Ú	sig_zerosÚsig_offÚ	sig_slopeÚmeanÚsig_slope_meanr]   ÚsinÚpiÚsig_base)r   r&   r   s      r   Úsetup_methodzTestDetrend.setup_methodd   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.allcloses   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 )Nrg   r   rL   Únone©Úkeyç      @)r   Údetrend_noneÚdetrendrk   rl   rq   Útolistr   Úvstackr    Ú
isinstanceÚndarrayr   ©r   Úsigs     r   Útest_detrend_nonezTestDetrend.test_detrend_nonev   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)rg   r|   rg   rm   rz   )	r   Údetrend_meanr~   rw   rj   rq   rk   rl   rn   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   rL   )rq   rl   rk   rn   rw   r   r‡   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_axis0œ   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 )	NrL   Úconstant©r{   r#   r   r   éÿÿÿÿÚdefaultrm   )r   r€   rk   rq   rj   rw   r   r‡   r    r~   rl   rn   r‹   s      r   Útest_detrend_mean_2dz TestDetrend.test_detrend_mean_2d£   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 )	Nr{   Úspamr1   r|   r#   r   r   r:   )rl   r   rM   r4   r5   r6   r   r~   ©r   ÚsignalÚkwargss      r   Útest_detrend_ValueErrorz#TestDetrend.test_detrend_ValueErrorÀ   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 )Nr|   r#   r   r   r:   )rl   r   rM   r4   r5   r6   r   r‡   r—   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 )Nrg   r|   Úlinearrz   )r   Údetrend_linearr~   rk   rl   rw   rj   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ž   rz   )rl   rk   rj   rw   r   r~   rŸ   r   r‹   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   r‘   r   )r   r€   rk   rl   rj   rw   r   r~   r    rŸ   r4   r5   r6   rM   r‹   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)rS   rT   rU   rr   rw   r…   rˆ   rŽ   r”   rš   rœ   r    r¢   r¤   r+   r   r   re   re   c   sÅ   € € € € € ð.ð .ð .ð*ð *ð *ð5ð 5ð 5ð,1ð 1ð 1ð Ið Ið IðLð Lð Lð:	/ð 	/ð 	/ð4ð 4ð 4ðDð Dð DðCð Cð Cð<ð <ð <ð <ð <r   re   Ú	iscomplexFTÚrealÚcomplexÚclass)r/   ÚscopeÚsides)ÚonesidedÚtwosidedr“   )r©   zFfstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrumr’   é   )r­   r1   r,   é   i   é€   é   é!   i  éÿ   rJ   )ÚnosigÚFs4ÚFsAllÚnosig_noNFFTÚnosig_nopad_toÚnosig_noNFFT_no_pad_toÚ
nosig_trimÚ	nosig_oddÚnosig_oddlenÚnosig_stretchÚnosig_overlapc                   óB  — e Zd Z ej        dd¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zej	         
                    dd	d
g¦  «        d„ ¦   «         Zej	         
                    dg d¢¦  «        d„ ¦   «         Z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	         
                    d'dej!        fd!ej"        fd"d(„ fg¦  «        d)„ ¦   «         Z#d*„ Z$d+S ),ÚTestSpectralr¨   T)r©   r   c
                 óŒ  ‡$— 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¦  «        } |j        }#‰$|#_        ||#_        ||#_        ||#_        ||#_        ||#_        ||#_        ||#_        |	|#_        ||#_        ||#_        ||#_        ||#_        ||#_        ||#_        | |#_        ||#_        ||#_        ||#_         ||#_!        d S )Nrh   r   r,   r   c                 ó   •— g | ]}‰|z  ‘ŒS r+   r+   )Ú.0ÚfstimÚFss     €r   ú
<listcomp>z%TestSpectral.stim.<locals>.<listcomp>(  s   ø€ Ð1Ð1Ð1 �"�u‘*Ð1Ð1Ð1r   r°   rD   r:   r«   r“   F)ÚnumÚendpoint©rÆ   r§   )"r   r   ÚintÚceilÚlog2r   ri   ÚarrayÚ
zeros_likeÚ	enumeratero   rp   ÚastypeÚclsrÄ   rª   Ú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_spectrumr   Úfreqs_densityÚfreqs_spectrumÚfreqs_specgramÚNFFT_density_real)%r   ÚrequestrÑ   r¥   rª   Ú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   r(   rÃ   rÐ   rÄ   s%                                       @r   ÚstimzTestSpectral.stim  sJ  ø€ ð ˆåŒ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ð
 ŒkˆàˆŒØˆŒ	ØˆŒ
à'ˆÔØ)ˆÔØ+ˆÔà)ˆÔØ+ˆÔØ-ˆÔà)ˆÔØ+ˆÔØ-ˆÔà#ˆŒØ!ˆŒØ#ˆŒØˆŒà)ˆÔØ+ˆÔØ+ˆÔà 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   r   ç�íµ ÷Æ°>©rt   r:   )ÚargminÚargmaxr   r   r   Úabs)r   ÚvalsÚ	targfreqsÚresfreqsrÑ   rÃ   r(   s          r   Úcheck_freqszTestSpectral.check_freqs³  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   r’   r1   )	r   Úminr   ró   rñ   Úcheck_maxfreqÚcopyrò   r   )
r   ÚspecÚfsprÑ   ÚfspaÚzeroindÚfstimstÚspectÚmaxindÚmaxfreqs
             r   rú   zTestSpectral.check_maxfreq¼  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 )Nr   r§   )r   ÚmodeÚ	magnitudeÚangleÚphaser  r–   Úeggs)r   rª   r,   é   )r   r!   r"   )r!   r"   é	   )r   r!   Úwindowr   r+   )r   r   r^   r4   r5   r6   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  r“   Ú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  )r4   r5   r6   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_torª   r  rï   rð   Út_r   r   )Úgetattrr   r  r   rÄ   rª   r   r*   )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   c           	      óä   — | j         }t          j        | j        | j        dz   | j        | j        | j        | j        | j        ¬¦  «        \  }}t          ||d¬¦  «         |j
        |j
        k    sJ ‚d S )Nr   ©r   r   r!   rÄ   r"   r  rª   rï   rð   )rÞ   r   Úcsdr   rÒ   rÄ   rÓ   rÔ   rª   r   r*   ©r   r  rü   rý   s       r   Útest_csdzTestSpectral.test_csdÿ  s~   € ØÔ"ˆÝ”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().Nr   )r   r   rÄ   r  rª   r!   r:   r+   )rÒ   Údictr   rÄ   r   r_   rª   r$  r   r   ÚsumÚ	conjugater¦   )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  rª   )rÞ   r   r  r   rÒ   rÄ   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, detrendrm   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 )	Nr1   çffffff
@©r
  r   r   )r   r!   rÄ   r"   rª   r~   )r   r!   rÄ   r"   rª   ru   rð   )rÒ   r   r€   rN   r    rO   rÍ   r   r  rÄ   rª   r   r   r4   r5   Ú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 )	Nr1   r4  r5  r   ©r   r!   rÄ   r"   rª   r  r:   ru   rð   )rÒ   r   r   r   ra   Ú	ones_liker€   rN   r    rO   r  rÄ   rª   r_   r   r)  r   r   r4   r5   r6  )r   r8  r9  r:  Ú
windowValsÚ	ycontrol1Ú	ycontrol2r<  r;  Úydatafr=  r>  r?  r@  rA  rB  s                   r   Útest_psd_window_hanningz$TestSpectral.test_psd_window_hanningH  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 )
Nr1   r4  r5  r   )r   r!   rÄ   r"   rª   r~   r  rE  r:   ru   rð   )rÒ   r   r   r   r   ra   rF  r€   rN   r    rO   r  rÄ   rª   rŸ   r_   r   r)  r   r   r4   r5   r6  )r   r8  r<  r9  r:  rH  rI  rG  r;  rJ  r=  r>  r?  r@  rA  rB  s                   r   Ú&test_psd_window_hanning_detrend_linearz3TestSpectral.test_psd_window_hanning_detrend_linearr  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"   rª   r  Úscale_by_freqrE  r:   ru   rð   )r   ri   rp   rá   r   r   r   Úcosr   r  r   rÒ   rÄ   rª   r   r)  )	r   ÚaÚfacÚwinÚkrü   rý   Úspec_aÚfsp_as	            r   Útest_psd_window_flattopz$TestSpectral.test_psd_window_flattop¡  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  rª   r  rï   rð   )rÞ   r   r  r   rÒ   rÄ   rÓ   rÔ   rª   r   r^   rá   r   r*   r%  s       r   Útest_psd_windowarrayz!TestSpectral.test_psd_windowarray¼  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 )NrY  T)r   r!   rÄ   r"   r  rª   r  rO  Fr:   ru   rð   )r   ra   r   r^   rá   r  r   rÒ   rÄ   rÓ   rÔ   rª   r   r   r)  )r   rS  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)r§   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Ä   rª   r  rï   rð   r  )rß   r  r   r   rÄ   rª   r×   r   r*   rú   rÑ   r÷   )r   ra  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  r§   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 )Nr1  r  r§   r   rL   rï   rð   r   )r§   r  r  g{®Gáz„?)r  r  r+   )rà   r   r  r   rØ   rÄ   rÙ   rÚ   rª   Úgetr   ró   rm   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)r4   Ú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 )Nr1  r#  )r   r  r   rÒ   rÄ   rÓ   rÔ   rª   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.
        r1  ©r   r!   rÄ   r"   r  rª   r  N)	r   r  r   rØ   rÄ   rÙ   rÚ   rª   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 rŠ   )r   Úunwrapr  ©r   s    r   ú<lambda>zTestSpectral.<lambda>F  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 )Nr§   rw  rï   rð   )
r   r  r   rØ   rÄ   rÙ   rÚ   rª   r   r   )	r   r  ÚconvÚspeccÚ	freqspeccÚtcri  Ú	freqspecmÚtms	            r   Ú test_specgram_complex_equivalentz-TestSpectral.test_specgram_complex_equivalentB  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 )NrY  r1  ru   rð   )r   ra   r   r^   rá   r  r   rÒ   rÄ   rÓ   rÔ   rª   r   r   )r   rS  rx  rþ   r{  Ú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   N)%rS   rT   rU   r4   rV   rí   r÷   rú   r  rW   rX   r  r!  r&  r/  r2  r   r   r   r‡   r   rŸ   rC  rK  rM  rW  rZ  r`  rd  rj  ro  ru  r~  ró   r  rŠ  r�  r+   r   r   r¿   r¿   ü   s3  € € € € € ðD €V„^˜'¨4Ð0Ñ0Ô0ðR2ð R2ñ 1Ô0ðR2ðh'ð 'ð 'ð)ð )ð )ð0:ð :ð :ð" „[×Ò˜V i°Ð%7Ñ8Ô8ð>ð >ñ 9Ô8ð>ð „[×Ò˜\ð ,ð ,ð ,ñ ô ð
Dð Dñô ð
Dð 	)ð 	)ð 	)ð
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 )Nr®   i!N,r
  g      4@Úsame)r  r°   r:   r¯   )r!   rÄ   r"   gbX9´Èê?gü©ñÒMbP?rð   )r   r[   r\   ÚrandnÚrollÚconvolver^   r   Úcoherer   rm   Úisreal)ÚNr   r   ÚcohsqÚfs        r   Útest_coherer˜  p  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.r1   )çB…×\AÁ?ç­±øESÇ?gÔö
f§úÈ?r�  rœ  é   ©ÚdecimalN)r   r   r   ÚGaussianKDEÚtestingÚassert_array_almost_equal)r   rP   Ú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©éùÿÿÿéûÿÿÿr   r­   r1   )Údtypeiöÿÿÿr,   r1   rÈ   )g>L\ž9™?gp4=¨?gùHŒ–êŸ«?g8(H	MT«?gÄ²™CR‘?Úscotté   rŸ  )r   rÌ   Úfloatri   r   r¡  r¢  r£  )r   rP   Úxsr¥  Úkde2Úy2s         r   Ú$test_gaussian_kde_covariance_cachingz4TestGaussianKDE.test_gaussian_kde_covariance_caching�  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\   r�  r   r¡  Úfactorri   ÚevaluateÚall)
r   Ún_basesampleÚxnÚgkdeÚgkde2Úgkde3r¯  ÚkdepdfÚkdepdf2Úkdepdf3s
             r   Útest_kde_bandwidth_methodz)TestGaussianKDE.test_kde_bandwidth_method›  s÷   € å
Œ	�Š�wÑÔÐØˆÝŒY�_Š_˜\Ñ*Ô*ˆõ Ô Ñ#Ô#ˆåÔ   WÑ-Ô-ˆåÔ  ¨t¬{Ð;Ñ;Ô;ˆåŒ[˜˜Q Ñ#Ô#ˆØ—’˜rÑ"Ô"ˆØ—.’. Ñ$Ô$ˆØ�zŠz‰|Œ|˜wŸ{š{™}œ}Ò,Ð,Ð,Ð,Ø—.’. Ñ$Ô$ˆØ�zŠz‰|Œ|˜wŸ{š{™}œ}Ò,Ð,Ð,Ð,Ð,Ð,r   N)rS   rT   rU   r¦  r²  rÄ  r+   r   r   rš  rš  ƒ  sG   € € € € € ðMð Mð MðHð Hð Hð-ð -ð -ð -ð -r   rš  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 )Ú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©r4   r5   r6   r   r¡  r   s    r   Útest_no_dataz"TestGaussianKDECustom.test_no_data±  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È  r   s    r   Útest_single_dataset_elementz1TestGaussianKDECustom.test_single_dataset_element¶  s‰   € åŒ]�:Ñ&Ô&ð 	#ð 	#ÝÔ˜b˜TÑ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   š=½AÁA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.©r   r:   r;   ©r­   r1   rž  ©r­  é   r  Ú	silvermanN©r   rÌ   r4   r5   ÚlinalgÚLinAlgErrorr   r¡  ©r   rP   s     r   Útest_silverman_multidim_datasetz5TestGaussianKDECustom.test_silverman_multidim_dataset»  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   rP   Ú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.r1   r¶  NrÈ  r   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 r+   ©r   r[   r�  ©rÂ   r(   r¼  s     €r   rÅ   zHTestGaussianKDECustom.test_scalar_covariance_dataset.<locals>.<listcomp>Þ  ó'   ø€ ÐIÐIÐI¸1�œŸš¨Ñ6Ô6ÐIÐIÐIr   r1   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 r+   rç  rè  s     €r   rÅ   zJTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.<listcomp>ç  ré  r   r1   c                 ó   — dS )Nçš™™™™™á?r+   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\   r�  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\   r�  r4   r5   r6   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)rS   rT   rU   rÉ  rÌ  r×  rÞ  rà  râ  rä  rì  rò  rô  rø  r+   r   r   rÆ  rÆ  °  sÂ   € € € € € ð!ð !ð !ð
#ð #ð #ð
.ð .ð .ðHð Hð Hð*ð *ð *ð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;   r,   r:   é   )ç¸ÁXø]…¶?çAò²G$¾?rþ  rý  gä;ç]«ó¢?r­  N©r   r   r   r¡  rº  r¢  r£  )r   rP   r¤  rQ   r¥  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µ  r   r:   r;   N)
r   r[   r\   r�  r   r¡  r4   r5   r6   rº  )r   r¼  rë  r¤  rQ   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;   r,   r:   rý  r­  N)r   r   rÌ   r   r¡  rº  r¢  r£  ©r   rP   rQ   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;   r,   r:   )r   r   r   r¡  r4   r5   r6   rº  )r   rP   rQ   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;   r,   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)rS   rT   rU   r   r  r  r  r	  r+   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   r   r:   r;   r   r:   r   ç      ð?r:   r   r   r«   ©r!   rÄ   r  r~   r"   r  rO  rª   r­   r’   rï   rð   )r   rÌ   ró   ÚfftÚsizer   r  r_   r}   Úappendr   ©ÚuÚdtÚSuÚPr—  ÚSu_1sides         r   Útest_psd_onesided_normr  7  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:   r   r   Nr«   r  r­   r’   )r   rÌ   ró   r  r  r   r  r_   r}   r  r   r)  r  s         r   Útest_psd_oversamplingr  C  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   )Únumpy.testingr   r   r   r   Únumpyr   r4   Ú
matplotlibr   r   r
   rc   re   rW   rX   r¿   r˜  rš  rÆ  rú  r  r  r+   r   r   ú<module>r     s>  ððOð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oð Oà Ð Ð Ð Ø €€€à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ðL"ð L"ð L"ð L"ð L"ñ L"ô L"ð L"ð^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 ñ ô ð:O	2ð O	2ð O	2ð O	2ð O	2ñ O	2ô O	2ñ;ô ñ(ô (ñAô AðBO	2ðf
%ð 
%ð 
%ð&*-ð *-ð *-ð *-ð *-ñ *-ô *-ð *-ðZN8ð N8ð N8ð N8ð N8ñ N8ô N8ð N8ðb3?ð 3?ð 3?ð 3?ð 3?ñ 3?ô 3?ð 3?ðl	-ð 	-ð 	-ð
5ð 
5ð 
5ð 
5ð 
5r   