U
    f»{j2  ã                   @   s
  d dl mZ d dlZd dlmZ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mZ d dlmZ d dlmZmZ d d	lmZ e ejd
d�d¡Ze ed¡Ze ed¡Ze ed¡Zddd„Zej  !d¡ej"dd„ ƒƒZ#ej  !d¡ej"dd„ ƒƒZ$dd„ Z%dS )é    N)Úassert_allcloseÚassert_equal)Úread_raw_artemis123)Ú_test_raw_reader)Útesting)Ú_generate_mne_locs_fileÚ_load_mne_locs)Ú
pick_types)Úrot_to_quatÚ_angle_between_quats)ÚFIFFF)ÚdownloadZ
ARTEMIS123z<Artemis_Data_2017-04-04-15h-44m-22s_Motion_Translation-z.binzPhantom_040417_dig.posz9Artemis_Data_2017-04-14-10h-38m-59s_Phantom_1k_HPI_1s.binçœÄ °rh‘?ç      @c                 C   s°   d}| dd…df }t | dd…dd…f ƒ}|dd…df }t |dd…dd…f ƒ}t t||ƒ¡}	tj || ¡}
|
|ks”tdd|
 d| f ƒ‚|	|ks¬td|	|f ƒ‚d S )NTr   é   z%0.3f > %0.3f mm translationiè  u   %0.3f > %0.3fÂ° rotation)r
   ÚnpZrad2degr   ZlinalgZnormÚAssertionError)ÚactualZdesiredZdist_tolZ	angle_tolZ__tracebackhide__Z	trans_estZquat_estÚtransZquatZangleÚdist© r   úf/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/io/artemis123/tests/test_artemis123.pyÚ_assert_trans"   s    
ÿ

ÿr   é<   c                   C   s   t tttdd� dS )z"Test reading raw Artemis123 files.Úerror)Zinput_fnameÚ	pos_fnameÚverboseN)r   r   Úshort_hpi_1kz_fnameÚ	dig_fnamer   r   r   r   Útest_artemis_reader1   s     ÿr   c               	   C   sŒ  t tddd�} t| jddd�}t| |d  d d d dƒ t d	d
ddgddddgddddgddddgg¡}t ddddgddddgdd d!d"gddddgg¡}t d#d$d%gd&d'd(gd)d*d+gg¡}t tdd,�} t| jd- d. |ƒ t	| jd/ d0ƒ t
jtd1d2�� t tdtd3�} W 5 Q R X t| jd- d. |ƒ t d4d5„ | jd6 D ƒ¡}t||d7d8d9� t tdd,�} t| jd- d. |ƒ t	| jd/ d:ƒ d;S )<z+Test dev_head_t computation for Artemis123.TF)ZpreloadÚadd_head_trans)ZmegZeegé   r   é{   g÷g0YÍ§=g†ZÓ¼ãï?gÁÊ¡E¶óÍ?go/iŒÖQ¥¿gotß{É!?gEØðôJYÎ¿g?W[±¿ìî?gá“©‚Q¹¿gñžË2`?gßà“©‚‘?gxz¥,C»?gÆÜµ„|Ðï?gð1Xqªµ€¿g        g      ð?gÙÎ÷Sã¥ï?gáz®GáÂ?g¨©ek}‘€¿gK(3”É_@?gjÞqŠŽäÂ¿gý‡ôÛ×�ï?g~ãkÏ,	¸¿gÔI¶ºœ`?g{…÷x¿gNœÜïP¸?gB`åÐ"Ûï?g?ÆÜµ„|�¿gÝÅ$ñ,�¿g�ðuÆµ°?gRdk…Y?gý	ž)±?gû™Õ–•�Ž?gÅöA3ÛWv?gy]}De&±¿gú3“ÚQ½‘¿gºãñpñ†?)r    Z
dev_head_tr   Zsfreqg     ˆ³@zLarge difference)Úmatch)r    r   c                 S   s"   g | ]}|d  t jkr|d ‘qS )Zcoord_frameÚr)r   ZFIFFV_COORD_DEVICE)Ú.0Úpr   r   r   Ú
<listcomp>^   s    ÿz#test_dev_head_t.<locals>.<listcomp>Údigg-Cëâ6?g{®Gáz„?)ÚatolZrtolg     @�@N)r   r   r	   Úinfor   r   ÚarrayÚshort_HPI_dip_fnamer   r   ÚpytestZwarnsÚRuntimeWarningr   )ÚrawZ	meg_picksZdev_head_t_1Zdev_head_t_2Zexpected_dev_hpi_rrZ
dev_hpi_rrr   r   r   Útest_dev_head_t9   s@    ÿ


ý


ýþÿr0   c                 C   sl   t | ƒ}t |d¡}t|ƒ tƒ }t|ƒ}tt| ¡ ƒt| ¡ ƒƒ | ¡ D ]}t|| || dd� qLdS )zTest artemis123 utils.ztest_gen_mne_locs.csvgH¯¼šò×z>)r)   N)	ÚstrÚopÚjoinr   r   r   ÚsetÚkeysr   )Ztmp_pathZtmp_dirZ	tmp_fnameZinstalled_locsZgenerated_locsÚkeyr   r   r   Ú
test_utilsi   s    r7   )r   r   )&Úos.pathÚpathr2   Únumpyr   Znumpy.testingr   r   r-   Zmne.ior   Zmne.io.tests.test_rawr   Zmne.datasetsr   Zmne.io.artemis123.utilsr   r   Zmner	   Zmne.transformsr
   r   Zmne.io.constantsr   r3   Z	data_pathZartemis123_dirr,   r   r   r   ÚmarkÚtimeoutZrequires_testing_datar   r0   r7   r   r   r   r   Ú<module>   s0   ÿ


.