U
    f»{j–Z  ã                	   @   s  d dl mZ d dlZd dlmZ d dlZd dlm	Z
 d dlmZ d dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& e 'e (e)¡ddddd¡Z*e 'e*d¡Z+e 'e*d¡Z,e 'e*d¡Z-e 'e*d¡Z.e 'e*d¡Z/d\Z0Z1Z2e"j3dd�d d Z4dZ5dZ6e5fdd„Z7d d!„ Z8d"d#„ Z9ej:j;d$d%„ ƒZ<d&d'„ Z=d(d)„ Z>ej: ?d*e5dd+… d,dfe @d-d.¡d/d0fe @d-d.¡d1dfg¡d2d3„ ƒZAd4d5„ ZBd6d7„ ZCej:j;d8d9„ ƒZDd:d;„ ZEe"jFd<d=„ ƒZGdS )>é    N)Úassert_allclose)Úgridspec)Úget_cmap)ÚPolyCollection)Úread_eventsÚEpochsÚread_covÚcompute_covarianceÚmake_fixed_length_eventsÚcompute_proj_evoked)Úread_raw_fif)Úcatch_logging)Úplot_compare_evokedsÚplot_evoked_white)Ú_fake_click)Útesting)ÚFIFF)Ú_parametric_ciz..ÚioZtestsÚdataztest-ave.fifztest_raw.fifztest_chpi_raw_sss.fifztest-cov.fifztest-eve.fif)é   çš™™™™™¹¿çš™™™™™¹?F)ÚdownloadZCTFztestdata_ctf.ds)r   r   é   é   é   é   é   é=   éz   é·   éô   i1  é;  i<  i=  i>  )r   r   c              
   C   sf   t tƒ}|jg dd� ttƒ}t||dd… ttt| ddd�}|j	d |j	d	 g|j
d
< |j
 ¡  |S )zGet epochs.T)Zremove_existingNé   é
   Úerror)ÚpicksÚdecimÚverboseéûÿÿÿéÿÿÿÿÚbads)r   Ú	raw_fnameÚadd_projr   Ú
event_namer   Úevent_idÚtminÚtmaxÚch_namesÚinfoÚnormalize_proj)r'   ÚrawÚeventsÚepochs© r9   úX/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/viz/tests/test_evoked.pyÚ_get_epochs2   s     ÿþ

r;   c                  C   sJ   t tƒ} ttƒ}tdd�}t| |dd… tttt	d|dd�	}|j
 ¡  |S )zGet epochs with delayed SSP.gê-�™—‘=©ÚmagNr%   Zdelayedr&   )r'   ÚprojÚrejectr)   )r   r-   r   r/   Údictr   r0   r1   r2   Údefault_picksr4   r5   )r6   r7   r?   Zepochs_delayed_sspr9   r9   r:   Ú_get_epochs_delayed_sspA   s    
  þ
rB   c               	   C   sö   t ƒ  ¡ } ttƒ}g |d< tjtdd�� | j|dd� W 5 Q R X tjt	dd�� | jddd� W 5 Q R X tjt
dd�� | jd	dd� W 5 Q R X ttƒ}t|ƒ}t||td
�}t|ƒ}| ¡ }tjtdd�� |j|dd� W 5 Q R X t d¡ dS )z Test plot_evoked with noise_cov.ÚprojszNo average EEG reference©ÚmatchÚs)Ú	noise_covÚ	time_unitZ
Covarianceg      ð?zFile does not existznonexistent-cov.fif©r'   zrelative scalingÚallN)r;   Úaverager   Ú	cov_fnameÚpytestÚwarnsÚRuntimeWarningÚplotÚraisesÚ	TypeErrorÚFileNotFoundErrorr   Úraw_sss_fnamer
   r   rA   r	   ÚpltÚclose)ÚevokedÚcovr6   r7   r8   Ú
evoked_sssr9   r9   r:   Útest_plot_evoked_covM   s"    
rZ   c            
   	   C   sÊ  t ƒ } |  ¡ }|jdkst‚|jddgg ddd�}t|ƒ}t|ƒttƒksNt‚|jdks\t‚| ¡ d }|j	d }t
||| ¡ d | ¡ d gdƒ t
||| ¡ d | ¡ d gdƒ |jd	dd
� |jdgtdd�dd� tƒ  ¡ }|jddd� | ¡  tjt|jddd� |j ¡ � g |jd< W 5 Q R X tjt|jddd� tjt|jdddd� t d¡ t d¡\}}|jdd|d� t|d j	ƒt|d j	ƒ  k�rÄt|d j	ƒ  k�rÄdk�sÊn t‚|d  ¡ dk�sàt‚|d jd  ¡ dk�süt‚|d  ¡ dk�st‚|d jd  ¡ dk�s.t‚|d  ¡ dk�sDt‚|d jd  ¡ dk�s`t‚t d¡ t t¡� |jddd� W 5 Q R X | ddi¡ |j|jd	 ddddd � |jg dd!dd"� tjt|jd#dd$� t d¡ |  ¡  t d¡ | !|j"d%d&… ¡ t#ƒ �}|jddd'� W 5 Q R X d(| $¡ k�s>t‚d)d)d*gfD ]R}|jd|d+�}| ¡ D ]4}d,d-„ | %¡ D ƒ}	t|	ƒtt& '|¡ƒk�sdt‚�qd�qJtjtd.d/�� |jdd0d+�}W 5 Q R X d%S )1zTest evoked.plot.FTr   ÚfoorF   ©r>   ÚhlineÚexcludeZwindow_titlerH   r   r   r,   )r^   rH   z	femto foor<   )r]   ZunitsrH   Úinteractive©r>   rH   rC   )r>   ÚaxesrH   rJ   r   Úonly)ÚgfprH   ra   r   zEEG (3 channels)ZGFPzGradiometers (9 channels)ZRMSzMagnetometers (2 channels))rc   rH   zMEG 0133zMEG 0000Ústd)r^   Úspatial_colorsrc   ÚzorderrH   Zunsorted)r^   re   rf   rH   Zasdf)rf   rH   Nr   )r)   rH   zNeed more than one)r   r   )r   çš™™™™™É?)rH   Ú	highlightc                 S   s   g | ]}t |tƒr|‘qS r9   ©Ú
isinstancer   )Ú.0Úchildr9   r9   r:   Ú
<listcomp>³   s    
ÿz$test_plot_evoked.<locals>.<listcomp>z"must be reshapable into a 2D arrayrD   r   )(r;   rK   r>   ÚAssertionErrorrP   Ú_get_amplitudesÚlenrA   Zget_axesÚlinesr   Ú	get_xdataÚ	get_ydataZget_xlimZget_ylimr@   rB   Ú
apply_projrM   rQ   ÚRuntimeErrorr4   Ú_unlockrU   rV   ÚsubplotsÚ	get_titleZtextsZget_textÚ
ValueErrorÚrename_channelsrR   Zplot_sensorsÚpick_channelsr3   r   ÚgetvalueZget_childrenÚnpZ
atleast_2d)
r8   rW   ÚfigÚ
amplitudesÚaxÚlineZevoked_delayed_sspZlog_filerh   Zhighlighted_areasr9   r9   r:   Útest_plot_evokedb   sš    ÿ
 ÿ ÿ

 ÿ
 ÿ
  ÿ
H
 ÿ
ÿ

þ$r‚   c                  C   sh   t jdddd�\} }|  ¡ s t‚t t¡d }| |jdd… ¡ |j	|d� |  ¡ sZt‚t  
d¡ dS )	z2Test that we handle constrained layouts correctly.r   T)Zconstrained_layoutr   Nr   ©ra   rJ   )rU   rw   Zget_constrained_layoutrn   ÚmneÚread_evokedsÚevoked_fnameÚpickr3   rP   rV   )r~   r€   rW   r9   r9   r:   Útest_constrained_layout»   s    rˆ   c                 C   s(   dd„ | j D ƒ}t dd„ |D ƒ¡}|S )Nc                 S   s"   g | ]}|  ¡ D ]}| ¡ ‘qqS r9   )Ú	get_linesrs   )rk   r€   r�   r9   r9   r:   rm   Ç   s    
 ÿz#_get_amplitudes.<locals>.<listcomp>c                 S   s   g | ]}t |tjƒr|‘qS r9   )rj   r}   Zndarray)rk   r�   r9   r9   r:   rm   Ê   s      )ra   r}   Úarray)r~   r   r9   r9   r:   ro   Æ   s
    ÿro   zpicks, rlims, avg_projéüÿÿÿ)gáz®Gáâ?g…ëQ¸…ã?iT  ih  )gìQ¸…ëá?g=
×£p=â?T)gHáz®Gé?gìQ¸…ëé?c              	   C   s4  t | d� ¡ }|rH|jdd� ¡  t|jd ƒdks8t‚|jdkslt‚n$t|jd ƒdks^t‚|jdkslt‚|jddgg dd	d
�}t	|ƒ}t|ƒt| ƒksžt‚|j|ks¬t‚|jdg d�}t	|ƒ}|dkrÔt
||ƒ t| ¡  dd¡ ¡ ƒ}| |¡ t| ƒdk�rt|jd ƒdk�s$nd�s$t‚|jdg d�}t	|ƒ}|jdg d�}t	|ƒ}t|ƒt| ƒk�sft‚tj |¡}	tj |¡}
tj |¡}t | ¡ | ¡ ¡||	  }|d |  k �rÆ|d k �sÌn t‚d|
 |k �sÞt‚|�sö|
|	d k �söt‚ttƒ}tjtdd�� |j|dd� W 5 Q R X t d¡ dS )zTest proj="reconstruct".rI   T)Z
projectionrC   r   r   Fr[   rF   r\   Zreconstruct)r>   r^   Nr   r   r   gÍÌÌÌÌÌð?çÍÌÌÌÌÌì?zCannot use proj="reconstruct"rD   )rG   r>   rJ   )r;   rK   Úset_eeg_referencert   rp   r4   rn   r>   rP   ro   r   r   ÚcopyÚcropr.   r}   ÚlinalgÚnormÚdotZravelr   rL   rM   rQ   ry   rU   rV   )r'   ZrlimsZavg_projrW   r~   r   Zamplitudes_reconr>   Zamplitudes_projr‘   Z	norm_projZ
norm_reconÚrrX   r9   r9   r:   Útest_plot_evoked_reconstructÎ   sN    ÿ

.ÿ&r”   c               	      sh  t ƒ  ¡ ‰ ˆ jddd� ˆ  ¡ } tj| jdd…df< t t	| j
¡ tjdd��" t t	| j¡ t t	| j¡ W 5 Q R X ˆ jdd	gˆ jdkd
d� ˆ jdd	gddt ˆ jj¡ t¡d
d� tjtdd�� ˆ jdd	gddd
d� W 5 Q R X tjt	dd��* ˆ jˆ jdd…dd…f dkd
d� W 5 Q R X ˆ jddd
d� t d¡ tjt	dd�� ˆ jddgd
d� W 5 Q R X ˆ jdd… }‡ fdd„|D ƒ}ˆ jdd
|d� t ¡  ¡ }t||ƒD ]\}}|t|ƒk�s²t‚�q²ˆ jdd
d� ˆ jttd �tt ¡ d �d!� t d¡ d"tƒ ftƒ d"ffD ]\}}tjt	ˆ j||d!� �qtjt	d#d�� ˆ jd$d%gd&� W 5 Q R X dS )'zTest plot_evoked_image.TÚmsr`   Nr   Úignore)Úinvalidr   r   rF   )r'   ÚmaskrH   F)r'   Z	mask_cmapZcolorbarr˜   rH   znot adding contourrD   Zboth)r'   r˜   Z
mask_stylerH   zmust have the same shape)r˜   rH   r,   r_   )r^   ÚcmaprH   rJ   z
not unique)r'   rH   r   r$   c                    s   g | ]}ˆ j  |¡‘qS r9   )r3   Úindex)rk   Úch©rW   r9   r:   rm     s     z*test_plot_evoked_image.<locals>.<listcomp>)Ú
show_namesrH   r'   )r�   rH   )Úsel)Úgroup_byra   Z	somethingz`clim` must be a dict.r‹   r   )Zclim)r;   rK   Z
plot_imagerŽ   r}   Únanr   rM   rQ   ry   rP   ZerrstateÚ
plot_jointZonesÚshapeZastypeÚboolrN   rO   rU   rV   r3   ZgcaZget_yticklabelsÚzipÚstrrn   r@   rž   ra   )Z
evoked_nanr3   r'   ZyticklabelsZtick_targetZtick_observedrŸ   ra   r9   rœ   r:   Útest_plot_evoked_imageÿ   sL    
þÿ.

ÿ
r¦   c               	   C   s8  t tƒ} d| d< g | d< tƒ  ¡ }| d¡ tjtdd�� |j| ddid	� W 5 Q R X |j| d
dddœdd� |j| dd
idd�}|j| ddid|j	d� tjtdd�� |j| |j	dd… d� W 5 Q R X tjtdd�� |j| ddid	� W 5 Q R X |j| | gdd� t
 d¡ t|| | gƒ}t|j	ƒdk�s8t‚t |j	¡ dd¡}t|| | g|d� tjtdd��( t|| | g|dd…dd
…f d� W 5 Q R X tdd� ¡ }ttdt d¡d�d �}|j ¡ � t|d!�g|jd"< W 5 Q R X |j| dd#id	� tjtd$d�� |j| dd%id	� W 5 Q R X |j| dd� dS )&zTest plot_white.Z	empiricalÚmethodrC   rK   ZexceedsrD   r=   r%   )Úrankr   é   r   )r=   ÚgradÚeegrF   )r¨   rH   rª   )r¨   rH   ra   z must have shape \(4,\), got \(2,Nrƒ   zWhen not using SSSÚmegi2  )rH   rJ   r   r   zhave shape \(3, 2\), gotrI   éP   )Zin_orderÚ
components)Zsss_info)Zmax_infoZproc_historyé@   zWhen using SSSéÉ   )r   rL   r;   rK   r�   rM   rQ   ry   Z
plot_whitera   rU   rV   r   rp   rn   r}   rŠ   Zreshaper@   Úaranger4   rv   )rX   rW   r~   ra   rY   Zsssr9   r9   r:   Útest_plot_white1  s<    

"
,r²   c               
   C   s¶  t ƒ  ¡ } t| ƒ}t|ƒdks"t‚ddgdddgg  ddgg }dd	gg gdd
g  }dddddd„ g}dddddg}t||||ƒD ]8\}}}}	t| |||d�}
|
d jd  ¡  |	¡s†t‚q†|  	¡ |  	¡  }}| j
d9  _
| j
d  _
||| dœ}dd„ t| gd ƒD ƒ}t|ƒ t|| g|| ggƒ td||| giƒ}|D ]¬}
|
jd jd  ¡ d  ¡ }| ¡ j\}}t || jddg ¡�sŽt‚|
jd jd }| ¡ }t || j¡�sºt‚| ¡ }||d k  ¡ �sØt‚||d k ¡ �sDt‚�qDt d¡ dd„ }ddd|f}|D ]T}td||| gi|d �d }
||dd… k�rt d!d"„ |
jd jD ƒ¡�st‚�qt| d#|d$�d }
t d%d"„ |
jd jD ƒ¡�sžt‚tjtd&d'�� t| d(d � W 5 Q R X t|d)d*d+ddd,� t| td-d.�d)d/� t d¡ t|d0d1d2gd3d4d5gd)d6� ttd7d8�tdd9d:�d;�}t||d<d1itd=d>�dd?� t|tt dƒƒd@� t d¡ t!dAƒ}t||tdBdCd;�dD� t||tddd;�dD� t|dEd4d3d5gdF� t d¡ dG}tjt|d'�� t| ddHgdI� W 5 Q R X t d¡ tj"t#dJd'�� t| dgdKdL� W 5 Q R X t d¡ tjtdMd'�� td(ƒ W 5 Q R X tjt$dNd'�� t|td(dOdP�dQ� W 5 Q R X tjt$dRd'�� t|dd@� W 5 Q R X tjtdSd'�� t|dTd(dOdUdœdD� W 5 Q R X t d¡ tddgd@�td4d3gdV�fD ]0}dW}tjt$|d'�� t|f|Ž W 5 Q R X �qðtd(d@�td(dV�fD ]0}dX}tjt|d'�� t|f|Ž W 5 Q R X �q6ttdYdZ�d@�ttdYdZ�dV�fD ]0}d[}tjt$|d'�� t|f|Ž W 5 Q R X �qˆtd(d\�td(d]�fD ],}tjt$d^d'�� t|f|Ž W 5 Q R X �qÎtjtd_d'�� t|d(d`� W 5 Q R X tjt$dad'�� t|d(db� W 5 Q R X t d¡ t|dcd)dd�}|D ]$}
t|
jd jƒt|ƒk�sdt‚�qdt t %dedf¡dg� ¡ }|j&dh D ]}t'j(|di< t'j)|dj< �qªt|dkdcdl� d|j&dh d dm dd…< t||gdgdnd„ d$� tt| *¡ ƒgdgt+d$� | ,dod¡ t|jƒdk�s@t‚t|ƒ t -|j
¡|_
t|ƒ | ,dpdp¡ t|jƒdk�s~t‚t|ƒ tjt$dqd'�� t|ƒ W 5 Q R X t d¡ dS )rzTest plot_compare_evokeds.r   zMEG 0113r=   r   zMEG 0112r   r   r   rg   ÚautoNÚmeanrd   c                 S   s   t j| dd�S )Nr   ©Úaxis)r}   Úmin©Úxr9   r9   r:   Ú<lambda>b  ó    z+test_plot_compare_evokeds.<locals>.<lambda>z(mean)z(std. dev.)z(GFP))r'   ÚvlinesÚcombineç      ø?)zaud/lúaud/rÚvisc                 S   s   i | ]\}}d   |¡|“qS )zcond{})Úformat)rk   ÚiZevr9   r9   r:   Ú
<dictcomp>l  s      z-test_plot_compare_evokeds.<locals>.<dictcomp>é   Zcondr+   rJ   c                 S   s    | j ddd�t dgdgg¡ S )Nr   T)r¶   Zkeepdimsç      à?r¾   )r´   r}   rŠ   )rŠ   r9   r9   r:   Úci_func~  s    z*test_plot_compare_evokeds.<locals>.ci_funcFrÅ   )Úcic                 S   s   g | ]}t |tƒ‘qS r9   ri   ©rk   Zcollr9   r9   r:   rm   …  s   ÿz-test_plot_compare_evokeds.<locals>.<listcomp>r«   )r'   rÇ   c                 S   s   g | ]}t |tƒ‘qS r9   ri   rÈ   r9   r9   r:   rm   ‰  s   ÿz!"ci" must be None, bool, float orrD   r[   Tz
upper leftÚcenter)Zinvert_yÚlegendÚshow_sensorsZtruncate_xaxisÚtruncate_yaxis)iÎÿÿÿé2   r<   )ÚylimrÌ   Úbr“   Úgú:ú-z--)ÚcolorsÚ
linestylesZsplit_legendç333333Ó?)ÚalphaÚk)Z	linewidthÚc)ZaudrÀ   r¿   Zdotted)rÀ   )ÚstylesrÓ   rÔ   rÇ   )rÓ   Zviridisgš™™™™™Ù?rŒ   )r™   rÓ   )z
cmap titleZinferno)r™   rÔ   z5combine must be an instance of None, callable, or strrc   )r½   zin "picks"; cannot combineZmedian)r'   r½   z"evokeds" must be a dict, listzkeys in "styles" \(.*\) must Úbar)r[   rÚ   )rÙ   z!colors in the default color cyclez""cmap" is specified, then "colors"ZRedsZbaz)rÔ   z:but there are only \d* (colors|linestyles). Please specifyz9"(colors|linestyles)" must be a dict, list, or None; got Úf)r[   z8If "(colors|linestyles)" is a dict its keys \(.*\) must )rÊ   )rË   znot a legal MPL loc, pleasezan instance of list or tuple)r¼   z!"truncate_yaxis" must be bool or )rÌ   Ztopo)ra   rÊ   r#   i@  rI   ÚchsÚ	coil_typeÚunitÚcsd)r'   ra   Úlocc                 S   s   | j dd�| j dd� gS )Nr   rµ   )rd   r¸   r9   r9   r:   rº   Ù  r»   g{®Gáz„?g{®Gáz”?z"not contain the same time instants).r;   rK   r   rp   rn   r¤   ra   rx   ÚendswithrŽ   r   Ú	enumerateÚcollectionsÚ	get_pathsZget_extentsZ
get_pointsÚTr}   ZallcloseÚtimesrq   rr   rs   rJ   rU   rV   ÚanyrM   rQ   rR   r@   ÚlistÚranger   rN   rO   ry   r±   r4   r   ZFIFFV_COIL_EEG_CSDZFIFF_UNIT_V_M2Úvaluesr   r�   Z
zeros_like)rW   Zfigsr'   r¼   r½   ÚtitleÚ_pÚ_vZ_cZ_tr~   ÚredÚblueZevoked_dictZ	huge_dictZextentsZxlimrÎ   r�   ZxvalsZyvalsrÆ   Zci_typesZ_ciZ
style_dictr™   rE   Úkwargsrß   Úentryr9   r9   r:   Útest_plot_compare_evokedsX  s
   
 


ÿ

ÿ þ
 ÿ ÿ
ÿ


þ
 $
"
ÿÿrò   c                  C   sŽ   t jtddd�} | jdd� |  | jdd… ¡ dd	„ td
dƒD ƒ}| jd D ]}tj	|d< qN|  
dd„ t| j|ƒD ƒ¡ t j | | g¡ dS )zTest topomap plotting.zLeft Auditory)Nr   )Zbaselinerª   )r¬   Nr    c                 S   s   g | ]}d | ‘qS )zMEG %03dr9   )rk   r×   r9   r9   r:   rm   ó  s     z9test_plot_compare_evokeds_neuromag122.<locals>.<listcomp>r   é{   rÜ   rÝ   c                 S   s   i | ]\}}||“qS r9   r9   )rk   Zc_oldZc_newr9   r9   r:   rÃ   ö  s      z9test_plot_compare_evokeds_neuromag122.<locals>.<dictcomp>)r„   r…   r†   Ú
pick_typesr{   r3   ré   r4   r   ZFIFFV_COIL_NM_122rz   r¤   Úvizr   )rW   r3   rØ   r9   r9   r:   Ú%test_plot_compare_evokeds_neuromag122í  s    ÿ

ÿrö   c                     sV  t jjtdd�} t dddgg¡}d}d\}}t j| jdddddd�d	d	d
… }t j| ||||d|dddd�
}| 	¡ }|j
dgd� t j ||g¡ dddg}t ¡ ‰ tjddddd�‰‡ ‡fdd„tt|ƒƒD ƒ}	|	 ˆ  ˆd ¡¡ ˆ  ˆdd	…dd…f ¡}
dd„ }||	ƒ}|j
|d|
id|	id	d� ||	ƒ}tj || ¡dk  ¡ �sRt‚d	S )zTest plotting of CTF evoked.T)ÚpreloadéÈ   r   r   )r   rÅ   r,   )r¬   ZstimZeogZref_megr^   Né   r%   r&   )r>   r'   r÷   r(   r)   r   )ræ   rg   rÕ   r   r   rÅ   gš™™™™™é?)ZhspaceÚtopc              	      s.   g | ]&}ˆ   ˆd |d |d d …f ¡‘qS )r   r   r   )Úadd_subplot)rk   Úidx©r~   Úgsr9   r:   rm     s   ÿz!test_plot_ctf.<locals>.<listcomp>)r   r+   r+   c                 S   sP   t ƒ }| d d… D ]2}| ¡ }| |j|jd  |j|jd  g¡ qt |¡S )Nr+   rÅ   )	rè   Zget_positionÚappendZx0ÚwidthZy0Úheightr}   rŠ   )ra   Z	midpointsr€   Úposr9   r9   r:   Úget_axes_midpoints  s    ÿz)test_plot_ctf.<locals>.get_axes_midpointsra   )ræ   Zts_argsZtopomap_argsrë   )r„   r   Zread_raw_ctfÚ	ctf_fnamer}   rŠ   rô   r4   r   rK   r¡   rõ   r   rU   Zfigurer   ZGridSpecré   rp   rÿ   rû   r�   r‘   rJ   rn   )r6   r7   r0   r1   r2   r'   r8   rW   ræ   Z	topo_axesZts_axisr  Zmidpoints_beforeZmidpoints_afterr9   rý   r:   Útest_plot_ctfû  sF     ÿÿ   ÿ

ÿ ÿr  )HÚos.pathÚpathÚopÚnumpyr}   Znumpy.testingr   rM   Zmatplotlib.pyplotZpyplotrU   Z
matplotlibr   Zmatplotlib.cmr   Zmatplotlib.collectionsr   r„   r   r   r   r	   r
   r   Zmne.ior   Z	mne.utilsr   Zmne.vizr   r   Zmne.viz.utilsr   Zmne.datasetsr   Zmne.io.constantsr   Zmne.stats.parametricr   ÚjoinÚdirnameÚ__file__Úbase_dirr†   r-   rT   rL   r/   r0   r1   r2   Z	data_pathr  rA   rž   r;   rB   rZ   ÚmarkZslowtestr‚   rˆ   ro   Zparametrizer±   r”   r¦   r²   rò   rö   Zrequires_testing_datar  r9   r9   r9   r:   Ú<module>   s^    

Xý
,2'
 