U
    f»{j-  ã                   @   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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 d dlmZ d dlmZ d d	lmZ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* d dl+m,Z, ej-dd�Z-e .e-d¡Z/e .e/ddd¡Z0e .e-ddd¡Z1e .e-ddd¡Z2e .e-ddd¡Z3e .e-dd¡Z4e .e 5e6¡ddddd¡Z7e .e7d¡Z8e .e7d¡Z9e .e7d ¡Z:d!d"„ Z;d#d$„ Z<d%d&„ Z=d'd(„ Z>ej?e*ƒ d)d*„ ƒƒZ@d+d,„ ZAd-d.„ ZBej?d/d0„ ƒZCejDjEej?d1d2„ ƒƒZFej?d3d4„ ƒZGd5d6„ ZHejDjEej?d7d8„ ƒƒZIdS )9é    N)Úassert_array_equal)Úread_eventsÚread_covÚread_source_spacesÚread_evokedsÚread_dipoleÚSourceEstimateÚpick_events)Úcompute_chpi_snr)Útesting)Úcreate_filter)Úread_raw_fif)Úread_inverse_operator)Úplot_bemÚplot_eventsÚplot_source_spectrogramÚplot_snr_estimateÚplot_filterÚplot_csdÚplot_chpi_snr)Ú_handle_event_colors)Ú_get_color_list)Úrequires_nibabel)ÚCrossSpectralDensityF)ÚdownloadZsubjectsÚsampleÚbemúsample-oct-6-src.fifZMEGz-sample_audvis_trunc-meg-eeg-oct-4-meg-inv.fifzsample_audvis-ave.fifzsample_audvis_trunc_set1.dipZSSSztest_move_anon_raw.fifz..ÚioZtestsÚdataztest_raw.fifztest-cov.fifztest-eve.fifc                   C   s   t tdd�S )zGet raw data.T)Zpreload)r   Ú	raw_fname© r!   r!   úV/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/viz/tests/test_misc.pyÚ_get_raw-   s    r#   c                   C   s   t tƒS )zGet events.)r   Úevent_fnamer!   r!   r!   r"   Ú_get_events2   s    r%   c               	   C   s¼  d\} }}t  d¡}dddddg}dddddg}t||| |d	d
�}t||ƒ t d¡ t||||ƒ t d¡ t||| |dd�}t||ƒ t d¡ t||||ƒ t d¡ t||| |dtdd�d�}t||||ƒ t d¡ t||||dd�}	t|	jƒdk�st	‚t d¡ t||||ddd�}	t|	jƒdk�s6t	‚t d¡ t||||dddgd�}	t|	jƒdk�slt	‚t d¡ t||||ddd�}	t|	jƒdk�sžt	‚t d¡ t||||ddd�}	t|	jƒdk�sÐt	‚t d¡ t
jtdd�� t||||dd� W 5 Q R X t d¡\}
}t||||d|d�}	t|	jƒdk�s<t	‚t d¡\}
}t||||d|d�}	t|	jƒdk�srt	‚t d¡ t d¡\}
}t
jtdd�� t||||d|d� W 5 Q R X dS ) zTest filter plotting.)g       @g      D@g     @�@iˆ  r   é   é(   é2   éô  é   Zfirwin2)Z
fir_designÚallÚiir)ÚmethodÚba)Úoutput)r-   Z
iir_paramsZlinear)Úfscaleé   )ÚtimeÚdelay)r0   ÚplotÚ	magnituder3   zInvalid value for the .plot©ÚmatchZturtles)r4   )r4   Úaxes)r5   r3   zLength of axesN)ÚnpZzerosr   r   ÚpltÚcloseÚdictÚlenr8   ÚAssertionErrorÚpytestÚraisesÚ
ValueErrorÚsubplots)Zl_freqZh_freqÚsfreqr   ÚfreqZgainÚhr,   Ziir_baÚfigÚ_r8   r!   r!   r"   Útest_plot_filter7   sv    







ÿ

ÿ
ÿ
ÿ
ÿ
ÿ

 ÿrH   c               	   C   sj   t ƒ } ttƒ}tjtdd��& |j| jd| jdd… d�\}}W 5 Q R X |j	d |d< | | j¡\}}dS )	zTest plotting of covariances.Z
projectionr6   Té   N)ZprojÚexcludey      ð?      ð?r   )
r#   r   Ú	cov_fnamer?   ÚwarnsÚRuntimeWarningr4   ÚinfoZch_namesr   )ÚrawZcovZfig1Zfig2r!   r!   r"   Útest_plot_covn   s    *rP   c               	   C   s<  t jtdd�� tdtd� W 5 Q R X t jtdd�� tdtdd� W 5 Q R X t jtd	d�� tdtd
dgd� W 5 Q R X tdtdddgd�} t| jƒdks t‚t| jd
 j	ƒdks¸t‚tdtddd�} t| jd
 j	ƒdksàt‚tdtdddgt
d�} t| jd
 j	ƒdk�st‚t jtdd�� tdttd� W 5 Q R X dS )zTest plotting of BEM contours.zMRI file .* not foundr6   zbad-subject)ÚsubjectÚsubjects_dirz"Invalid value for the 'orientationr   zbad-ori)rQ   rR   Úorientationzsorted 1D arrayr   r)   )rQ   rR   ÚslicesZsagittalé   r(   )rQ   rR   rS   rT   r&   r1   ZcoronalÚwhite)rQ   rR   rS   Zbrain_surfacesé   )rQ   rR   rS   rT   Úsrcé   zMRI coordinates, got head)rQ   rR   rX   N)r?   r@   ÚIOErrorr   rR   rA   r=   r8   r>   ÚcollectionsÚ	src_fnameÚ	inv_fname)rF   r!   r!   r"   Útest_plot_bemz   s:    ÿ ÿ ÿ  ÿÿr^   c                  C   s�   t tƒ ddgd�} t| dd…df ƒ}td|tƒ ƒ}tƒ }|d |d ksNt‚ttddd�|tddd�d	�}|d dks|t‚|d dksŒt‚dS )
zTest color assignment.r*   r&   )ÚincludeNr   Úkz#facade)ZfooÚbar)Z
color_dictÚunique_eventsÚevent_id)r	   r%   Úsetr   r<   r   r>   )Úeventsrb   ÚcolorsZdefault_colorsr!   r!   r"   Útest_event_colors”   s    
þrg   c               	   C   s²  dddddœ} dddd	d
œ}t ƒ }tƒ }t||jd |jƒ}|jd  ¡ dk	sRt‚t||jd |jdd� t||jd� tj	t
dd�� t||jd |j| d�}W 5 Q R X |jd  ¡ dk	sÀt‚tj	t
dd�� t||jd |j|d� W 5 Q R X tj	t
dd��  t||jd |j| |d� W 5 Q R X d}tj	t
|d��$ t||jd |jddi|d� W 5 Q R X ddi}tjtdd�� t||jd |j|d� W 5 Q R X tjtdd��  t||jd |j|dd� W 5 Q R X ddd œ}tj	t
dd��  t||jd |j|d!d� W 5 Q R X tj	t
d"d��  t||jd |j|dd� W 5 Q R X ||dd…df dk }t|ƒdk�slt‚t||jd |j|dd� tjtd#d�� tt d$¡ƒ W 5 Q R X dS )%zTest plotting events.r*   r&   r1   rY   )Úaud_lZaud_rZvis_lZvis_rÚgreenÚyellowÚredÚc)r*   r&   r1   rY   rC   r   NF)Zequal_spacing)Ú
first_sampzwill be ignoredr6   )rc   zColor was not assigned)Úcolorzvent \d+ missing from event_id)rc   rn   z8event \d+ missing from event_id|in the color dict but isrh   Úmissingéo   zfrom event_id is not present inzNo usable event IDsÚignore)rc   Z
on_missing)rh   ro   Úwarnzevent 2 missingz	No events)r   r1   )r#   r%   r   rN   rm   r8   Z
get_legendr>   r?   rL   rM   r@   rA   ÚRuntimeErrorr=   r9   Úempty)Zevent_labelsrn   rO   re   rF   Z
multimatchZextra_idr!   r!   r"   Útest_plot_events¤   sr    ÿÿ ÿ ÿÿ ÿ
 ÿ ÿ ÿru   c                  C   sÊ   t t tddd¡ƒ} dd„ | D ƒ}d}tdd„ |D ƒƒ}t ||f¡}t||d	d	ƒ}t||gd	d
gddggƒ t	 
ttg g ¡ t	j
tt||gd	d
gddggdd� t	j
tt||gd	d
gddggdd� dS )z$Test plotting of source spectrogram.r   r   r   c                 S   s   g | ]}|d  ‘qS )Zvertnor!   )Ú.0Úsr!   r!   r"   Ú
<listcomp>Ú   s     z0test_plot_source_spectrogram.<locals>.<listcomp>rW   c                 s   s   | ]}t |ƒV  qd S )N)r=   )rv   Úvr!   r!   r"   Ú	<genexpr>Ü   s     z/test_plot_source_spectrogram.<locals>.<genexpr>r*   r&   r1   rY   r   )Útminé   )ÚtmaxN)r   ÚopÚjoinrR   Úsumr9   Zonesr   r   r?   r@   rA   )Z
sample_srcZverticesZn_timesZn_vertsZstc_dataZstcr!   r!   r"   Útest_plot_source_spectrogramÓ   s&    
 ÿ ÿ ÿr�   c                  C   s&   t tƒ} ttdd�d }t|| ƒ dS )zTest plotting SNR estimate.)Nr   )Zbaseliner   N)r   r]   r   Úevoked_fnamer   )ÚinvZevokedr!   r!   r"   Útest_plot_snrç   s    r„   c                  C   s   t tƒ} | jdd� dS )z Test plotting dipole amplitudes.F)ÚshowN)r   Ú	dip_fnameZplot_amplitudes)Zdipolesr!   r!   r"   Útest_plot_dipole_amplitudesð   s    r‡   c                  C   s<   t dddgddgdgdddd�} t| d	d
� t| dd
� dS )zTest plotting of CSD matrices.r*   r&   r1   ZCH1ZCH2)é
   é   r   )ZfrequenciesZn_fftr{   r}   Úcsd)ÚmodeZcohN)r   r   )rŠ   r!   r!   r"   Útest_plot_csd÷   s      þrŒ   c               	   C   s  t tdd�} t| ƒ}t|ƒ}t|jƒt|ƒd ks6t‚t|jd jƒt|d ƒksVt‚t|jƒdksht‚dd„ |jd  	¡ D ƒ}t|ƒt|d ƒks˜t‚d	d„ |D ƒ}t
||d ƒ t dd
¡\}}t|| ¡ d�}t d¡\}}tjtdd�� t|| ¡ d�}W 5 Q R X dS )zTest plotting cHPI SNRs.Úyes)Zallow_maxshieldr&   r   Úfreqsr*   c                 S   s   g | ]}|  ¡ ‘qS r!   )Zget_text)rv   Úentryr!   r!   r"   rx     s     z&test_plot_chpi_snr.<locals>.<listcomp>c                 S   s   g | ]}t | ¡ d  ƒ‘qS )r   )ÚfloatÚsplit)rv   Útextr!   r!   r"   rx     s     r1   )r8   rW   za list of 6 axes, got length 5r6   N)r   Úchpi_fif_fnamer
   r   r=   r8   r>   ÚlinesZlegendsZ	get_textsr   r:   rB   Zravelr?   r@   rA   )rO   ÚresultrF   ZtextsrŽ   rG   Zaxsr!   r!   r"   Útest_plot_chpi_snr   s     r–   )JÚos.pathÚpathr~   Únumpyr9   Znumpy.testingr   r?   Zmatplotlib.pyplotZpyplotr:   Zmner   r   r   r   r   r   r	   Zmne.chpir
   Zmne.datasetsr   Z
mne.filterr   Zmne.ior   Zmne.minimum_normr   Zmne.vizr   r   r   r   r   r   r   Zmne.viz.miscr   Zmne.viz.utilsr   Z	mne.utilsr   Zmne.time_frequencyr   Z	data_pathr   rR   r\   r]   r‚   r†   r“   ÚdirnameÚ__file__Úbase_dirr    rK   r$   r#   r%   rH   rP   Zrequires_testing_datar^   rg   ru   r�   ÚmarkZslowtestr„   r‡   rŒ   r–   r!   r!   r!   r"   Ú<module>
   s`   $$
ÿ7/

	