U
    f»{j:  ã                   @   sà   d dl mZ d dlZd dlmZmZmZ d dl	Z	d dl
mZ d dl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 e e e¡d
d
dd¡Z e e d¡Z!dd„ Z"dd„ Z#e	j$j%dd„ ƒZ&dS )é    N)Úassert_array_almost_equalÚassert_allcloseÚassert_equal)Úfind_eventsÚEpochsÚ
pick_types)Úread_raw_fif)ÚRawArray)Ú_test_raw_reader)Úcreate_info)Úget_channel_type_constants)Úmake_dig_montagez..ZtestsÚdataztest_raw.fifc                  C   s®   t ddgddd�} t d¡}t|| ƒ}|jddgks8t‚|jdd„ |jD ƒd	dd
� |jddgksft‚t dgd ddd�} t d¡}t|| ƒ}|jdd„ tdƒD ƒksªt‚dS )zTest long name support.ZaaaaaaaaaaaaaaabÚaaaaaaaaaaaaaaaaç     @�@Úerror)Úverbose)é   éè  c                 S   s   i | ]}||d d… “qS )Né   © )Ú.0Úkr   r   ú\/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/io/array/tests/test_array.pyÚ
<dictcomp>    s      z#test_long_names.<locals>.<dictcomp>T)Zallow_duplicatesr   zaaaaaaaaaaaaa-0zaaaaaaaaaaaaa-1é   )r   r   c                 S   s   g | ]}d d|  ‘qS )r   z-%sr   )r   Úiir   r   r   Ú
<listcomp>&   s     z#test_long_names.<locals>.<listcomp>N)r   ÚnpÚzerosr	   Úch_namesÚAssertionErrorZrename_channelsÚrange©Úinfor   Úrawr   r   r   Útest_long_names   s    

 ÿ

r&   c               	   C   s²  t ddƒ} t d¡}t|| ƒ}|j|ks,t‚|j| k	s:t‚t| tj¡| ƒ}|j|k	sZt‚|j| k	sht‚t|| dd�}|j|ks„t‚|j| k	s’t‚t	j
tdd�� t| tj¡| dd� W 5 Q R X t|| dd�}|j|k	sÞt‚|j| ksìt‚t|| d	d�}|j|k	�s
t‚|j| k	�st‚t| tj¡| d	d�}|j|k	�s@t‚|j| k	�sPt‚t|| d
d�}|j|k�snt‚|j| k�s~t‚t	j
tdd�� t| tj¡| d
d� W 5 Q R X d
S )z!Test copying during construction.é   r   )r'   r   r$   )Úcopyz"data copying was not .* copy='info)Úmatchr   ZbothNz!data copying was not .* copy=None)r   r   r   r	   Ú_datar!   r$   ZastypeZfloat32ÚpytestÚraisesÚ
ValueErrorr#   r   r   r   Útest_array_copy)   s6    


 r.   c                	   C   s‚  t tƒ dd¡} | dd…dd…f \}}| jd }dd„ | jd D ƒ}tƒ }tdƒD ]}| d	¡ qT| d
ddg¡ | dgd ¡ | dg¡ | dgd ¡ t t	| jdd�ddd… t	| jddd�t	| jddd�ddd… g¡}~ || }t 
|¡|  ¡ }t 
|¡|  ¡ }| d¡ t tt|||¡ | d¡ t tt|||¡ d|d< t||ƒ}t|d d d tƒ d d ƒ t|||ƒ}ttd||d|jd  d �}	|	dd…dd…f \}
}t||
ƒ t||ƒ d!t|	ƒk�sät‚t tt||¡ t	|	jddd"d#�dd$… }tt|ƒd$ƒ |	 ¡ }td%|d&�}|jdDd(d'i|—Ž |	 ¡ }|jdEd*d'i|—Ž |	 ¡ }|jdFd'd'd-œ|—Ž |	 ¡ }|jdGd'd'd-œ|—Ž |	|dd…f \}}||dd…f \}}||dd…f \}}||dd…f \}}||dd…f \}}d.}t ||| | |ƒ t ||| |ƒ |	 !¡  |	j"d/dd0dd1� t# $d2¡ t%|	d3d4�}d|dd…df< t|ƒdk�szt‚t&|	|dd5d6dd7�}| '¡ }t|j(t|ƒd ƒ tj) *d¡}| +dd8¡d9| +dd8¡  }t|tdd:dƒƒ} t| j,|ƒ d;}d<}d=}d>d„ t|ƒD ƒ}tj)j-d|d?fd@� ¡ }tj) .||¡}t/tt0||ƒƒdAdB�}t||d
ƒ}t||ƒ} |  1|¡ | j"ddC� |  2¡  dS )HzTest creating raw from array.r   é   NÚsfreqc                 S   s$   g | ]}d |kr|dd… n|‘qS )ZSTIé   Nr   )r   Úchr   r   r   r   T   s   ÿz"test_array_raw.<locals>.<listcomp>r    ée   )Úgradr4   ÚmagZecogZseegZhboÚstimé	   ZdbsÚeegé<   T)Úmegé   F)r:   r6   )r:   r8   éÿÿÿÿZfooZeogZchsr   ÚkindÚmiscr'   )Ztest_preloadingr   r$   Z
first_sampr	   Zbads)r:   r>   Úexcluder1   Zfirwin)Z
fir_designÚpicksç      @Úh_trans_bandwidthç      0@Úl_trans_bandwidthç       @ç      (@)rD   rB   é   g       @i   )ZtmaxÚaverageZn_fftZspatial_colorsÚallzSTI 014)Zstim_channelgš™™™™™É¿gš™™™™™Ù?)Zpreloadéd   y              ð?r   é
   i'  g      €@c                 S   s   g | ]}t |ƒ‘qS r   )Ústr)r   Úir   r   r   r   ¨   s     é   )ÚsizeÚhead)Zch_posZcoord_frame)rH   )NrA   )rC   N)rE   rF   )rC   rA   )3r   Ú	fif_fnameÚcropr$   Úlistr"   Úextendr   Zconcatenater   ÚarrayÚtolistÚpopr+   r,   r-   r   ÚappendÚKeyErrorr   r   r
   r	   Úshaper   Úreprr!   Ú	TypeErrorÚlenr(   ÚdictÚfilterr   ZplotZplot_psdÚpltÚcloser   r   rH   ZnaveÚrandomZRandomStateZrandnr*   ÚrandintZrandr   ÚzipZset_montageZplot_psd_topo) r%   r   Útimesr0   r    ÚtypesÚcir@   r$   Zraw2Zdata2Ztimes2Zraw_lpÚkwargsZraw_hpZraw_bpZraw_bsÚ_Zlp_dataZhp_dataZbp_dataZbs_dataZsig_decÚeventsZepochsZevokedÚrngZn_elecZts_sizeZFsZ
ch_pos_locZmontager   r   r   Útest_array_rawM   s¼    
ÿþ


ÿ  ÿ

ÿÿ
ÿ
þ

rl   )'Úos.pathÚpathÚopÚnumpyr   Znumpy.testingr   r   r   r+   Zmatplotlib.pyplotZpyplotr`   Zmner   r   r   Zmne.ior   Zmne.io.arrayr	   Zmne.io.tests.test_rawr
   Zmne.io.meas_infor   Zmne.io.pickr   Zmne.channelsr   ÚjoinÚdirnameÚ__file__Úbase_dirrQ   r&   r.   ÚmarkZslowtestrl   r   r   r   r   Ú<module>   s"   $