3
Yd                 @   s   d dl Z d dlZd dlZd dlmZ d dljjj	Zd dl
mZ d dljjZd dlmZ d dlmZ ejje jdd dd	 Zd
Zesejje dddd Zdd Zdd Zejje dddd Zdd Zdd Zdd Zdd Z dd Z!dS )    N)create_files_in_directory)no_spm)SPMCommandInputSpec)traitsZ	MATLABCMDmatlabc             C   sB   | \}}t j|dd}|d |d ks*t|d |d ks>td S )NT)keep4dr      )spmscans_for_fnamesAssertionError)r   filelistoutdirnames r   W/var/www/html/virt/lib/python3.6/site-packages/nipype/interfaces/spm/tests/test_base.pytest_scan_for_fnames   s    r   Fzspm is not installed)reasonc              C   s8   t jj } | d k	r4t| ttfs$td| j ks4td S )Nr	   )r	   ZInfopath
isinstancestrbytesr   lower)Zspm_pathr   r   r   test_spm_path   s    
r   c              C   s(   G dd dt j} |  }|jjs$td S )Nc               @   s   e Zd ZejZdS )z!test_use_mfile.<locals>.TestClassN)__name__
__module____qualname__r	   r   
input_specr   r   r   r   	TestClass&   s   r   )r	   
SPMCommandinputsZmfiler   )r   dcr   r   r   test_use_mfile%   s    r!   c              C   s   t tj} G dd dtj}x.dD ]&}ytj|= W q" tk
rF   Y q"X q"W | }|jd ks`t|jd ksntdtjd< | }|jst|jd kstdtjd< | }|jst|jdksttjj	  tjj
|  d S )Nc               @   s   e Zd ZdS )z.test_find_mlab_cmd_defaults.<locals>.TestClassN)r   r   r   r   r   r   r   r   0   s   r   FORCE_SPMMCR	SPMMCRCMD1Zspmcmd)r"   r#   )dictosenvironr	   r   KeyErrorZ_use_mcrr   Z_matlab_cmdclearupdate)Z	saved_envr   varnamer    r   r   r   test_find_mlab_cmd_defaults-   s(    







r,   c              C   s4   G dd dt j} |  }d|j_|jjdks0td S )Nc               @   s   e Zd ZejZdS )z"test_cmd_update.<locals>.TestClassN)r   r   r   r	   r   r   r   r   r   r   r   M   s   r   foo)r	   r   r   Z
matlab_cmdmlabZ_cmdr   )r   r    r   r   r   test_cmd_updateK   s    r/   c              C   s8   G dd dt j} |  }|jdks&t|jdks4td S )Nc               @   s   e Zd ZdZdZejZdS )z#test_cmd_update2.<locals>.TestClassjobtypejobnameN)r   r   r   _jobtype_jobnamer	   r   r   r   r   r   r   r   V   s   r   r0   r1   )r	   r   r0   r   r1   )r   r    r   r   r   test_cmd_update2U   s    r4   c              C   sP   G dd dt j} |  }|jdddg iii}|dddg igigigksLtd S )Nc               @   s   e Zd ZejZdS )z1test_reformat_dict_for_savemat.<locals>.TestClassN)r   r   r   r	   r   r   r   r   r   r   r   a   s   r   abc)r	   r   Z_reformat_dict_for_savematr   )r   r    outr   r   r   test_reformat_dict_for_savemat`   s    r9   c             C   s   G dd dt j}| }|j }|dks,tdddddgi}|j|d	}|d
ksTt| \}}t j|dd}d|i}|jd|d}|dkstd}|jd|d}|dkstdtjdtdi}ddddg|d d< |jd|d}|dkstd S )Nc               @   s   e Zd ZejZdS )z$test_generate_job.<locals>.TestClassN)r   r   r   r	   r   r   r   r   r   r   r   j   s   r    contentsr            )r;   zH.contents(1) = 1;
.contents(2) = 2;
.contents(3) = 3;
.contents(4) = 4;
T)r   filestest)prefixr;   z-test.files = {...
'a.nii';...
'b.nii';...
};
r-   ztest = 'foo';
Zonsets)Zdtyper   z'test.onsets = {...
[1, 2, 3, 4];...
};
)r   )r	   r   Z_generate_jobr   r
   nparrayobject)r   r   r    r8   r;   r   r   r   r   r   r   test_generate_jobi   s(    
rE   c                 s   G dd dt  G  fdddtj} |  }d|j_|j|j }|jddksXtdd	|j_	|j|j }|jd
dkstdd S )Nc               @   s   e Zd Zejdd ZZdS )z%test_bool.<locals>.TestClassInputSpecZ	testfield)fieldN)r   r   r   r   ZBooltest_inZinclude_interceptr   r   r   r   TestClassInputSpec   s   rH   c                   s   e Zd Z ZdZdZdS )ztest_bool.<locals>.TestClassr0   r1   N)r   r   r   r   r2   r3   r   )rH   r   r   r      s   r   Tz*jobs{1}.spm.jobtype.jobname.testfield = 1;r   r   Fz,jobs{1}.jobtype{1}.jobname{1}.testfield = 1;)
r   r	   r   r   rG   _make_matlab_commandZ_parse_inputsfindr   use_v8struct)r   r    r8   r   )rH   r   	test_bool   s    rL   c             C   sl   G dd dt j}| }| \}}dddddgi}|j|g}d|ksHtd	|j_|j|g}d
|kshtd S )Nc               @   s   e Zd ZdZdZejZdS )z+test_make_matlab_command.<locals>.TestClassr0   r1   N)r   r   r   r2   r3   r	   r   r   r   r   r   r   r      s   r   r;   r   r<   r=   r>   z,jobs{1}.spm.jobtype.jobname.contents(3) = 3;Fz.jobs{1}.jobtype{1}.jobname{1}.contents(3) = 3;)r	   r   rI   r   r   rK   )r   r   r    r   r   r;   scriptr   r   r   test_make_matlab_command   s    rN   )"r&   ZnumpyrB   ZpytestZnipype.testing.fixturesr   Znipype.interfaces.spm.baseZ
interfacesr	   baseZnipype.interfaces.spmr   Znipype.interfaces.matlabr   r.   r   Znipype.interfaces.baser   ZMatlabCommandZset_default_matlab_cmdgetenvr   Z	save_timemarkZskipifr   r!   r,   r/   r4   r9   rE   rL   rN   r   r   r   r   <module>   s*   
	