@@ -21,123 +21,123 @@ def test_update_complex_name():
21
21
filenames with the part field if appropriate.
22
22
"""
23
23
# Standard name update
24
- fn = 'sub-X_ses-Y_task-Z_run-01_sbref'
24
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_sbref'
25
25
metadata = {'ImageType' : ['ORIGINAL' , 'PRIMARY' , 'P' , 'MB' , 'TE3' , 'ND' , 'MOSAIC' ]}
26
26
file_counter = 3 # This is the third file with the same name
27
27
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_part-phase_sbref'
28
- out_fn_test = update_complex_name (metadata , fn , file_counter )
28
+ out_fn_test = update_complex_name (metadata , base_fn , file_counter )
29
29
assert out_fn_test == out_fn_true
30
30
31
31
# Catch an unsupported type and *do not* update
32
- fn = 'sub-X_ses-Y_task-Z_run-01_phase'
33
- out_fn_test = update_complex_name (metadata , fn , file_counter )
34
- assert out_fn_test == fn
32
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_phase'
33
+ out_fn_test = update_complex_name (metadata , base_fn , file_counter )
34
+ assert out_fn_test == base_fn
35
35
36
36
# Data type is missing from metadata so use suffix
37
- fn = 'sub-X_ses-Y_task-Z_run-01_sbref'
37
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_sbref'
38
38
metadata = {'ImageType' : ['ORIGINAL' , 'PRIMARY' , 'MB' , 'TE3' , 'ND' , 'MOSAIC' ]}
39
39
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_part-3_sbref'
40
- out_fn_test = update_complex_name (metadata , fn , file_counter )
40
+ out_fn_test = update_complex_name (metadata , base_fn , file_counter )
41
41
assert out_fn_test == out_fn_true
42
42
43
43
# Catch existing field with value (part is already in the filename)
44
44
# that *does not match* metadata and raise Exception
45
- fn = 'sub-X_ses-Y_task-Z_run-01_part-mag_sbref'
45
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_part-mag_sbref'
46
46
metadata = {'ImageType' : ['ORIGINAL' , 'PRIMARY' , 'P' , 'MB' , 'TE3' , 'ND' , 'MOSAIC' ]}
47
47
file_counter = 3
48
48
with pytest .raises (BIDSError ):
49
- update_complex_name (metadata , fn , file_counter )
49
+ update_complex_name (metadata , base_fn , file_counter )
50
50
51
51
# Catch existing field with value (part is already in the filename)
52
52
# that *does match* metadata and do not update
53
- fn = 'sub-X_ses-Y_task-Z_run-01_part-phase_sbref'
53
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_part-phase_sbref'
54
54
metadata = {'ImageType' : ['ORIGINAL' , 'PRIMARY' , 'P' , 'MB' , 'TE3' , 'ND' , 'MOSAIC' ]}
55
55
file_counter = 3
56
- out_fn_test = update_complex_name (metadata , fn , file_counter )
57
- assert out_fn_test == fn
56
+ out_fn_test = update_complex_name (metadata , base_fn , file_counter )
57
+ assert out_fn_test == base_fn
58
58
59
59
60
60
def test_update_multiecho_name ():
61
61
"""Unit testing for heudiconv.convert.update_multiecho_name(), which updates
62
62
filenames with the echo field if appropriate.
63
63
"""
64
64
# Standard name update
65
- fn = 'sub-X_ses-Y_task-Z_run-01_bold'
65
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_bold'
66
66
metadata = {'EchoTime' : 0.01 ,
67
67
'EchoNumber' : 1 }
68
68
echo_times = [0.01 , 0.02 , 0.03 ]
69
69
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_echo-1_bold'
70
- out_fn_test = update_multiecho_name (metadata , fn , echo_times )
70
+ out_fn_test = update_multiecho_name (metadata , base_fn , echo_times )
71
71
assert out_fn_test == out_fn_true
72
72
73
73
# EchoNumber field is missing from metadata, so use echo_times
74
74
metadata = {'EchoTime' : 0.01 }
75
- out_fn_test = update_multiecho_name (metadata , fn , echo_times )
75
+ out_fn_test = update_multiecho_name (metadata , base_fn , echo_times )
76
76
assert out_fn_test == out_fn_true
77
77
78
78
# Catch an unsupported type and *do not* update
79
- fn = 'sub-X_ses-Y_task-Z_run-01_phasediff'
80
- out_fn_test = update_multiecho_name (metadata , fn , echo_times )
81
- assert out_fn_test == fn
79
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_phasediff'
80
+ out_fn_test = update_multiecho_name (metadata , base_fn , echo_times )
81
+ assert out_fn_test == base_fn
82
82
83
83
# EchoTime is missing, but use EchoNumber (which is the first thing it checks)
84
- fn = 'sub-X_ses-Y_task-Z_run-01_bold'
84
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_bold'
85
85
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_echo-1_bold'
86
86
metadata = {'EchoNumber' : 1 }
87
87
echo_times = [False , 0.02 , 0.03 ]
88
- out_fn_test = update_multiecho_name (metadata , fn , echo_times )
88
+ out_fn_test = update_multiecho_name (metadata , base_fn , echo_times )
89
89
assert out_fn_test == out_fn_true
90
90
91
91
# Both EchoTime and EchoNumber are missing, which raises a KeyError
92
- fn = 'sub-X_ses-Y_task-Z_run-01_bold'
92
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_bold'
93
93
metadata = {}
94
94
echo_times = [False , 0.02 , 0.03 ]
95
95
with pytest .raises (KeyError ):
96
- update_multiecho_name (metadata , fn , echo_times )
96
+ update_multiecho_name (metadata , base_fn , echo_times )
97
97
98
98
# Providing echo times as something other than a list should raise a TypeError
99
- fn = 'sub-X_ses-Y_task-Z_run-01_bold'
99
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_bold'
100
100
with pytest .raises (TypeError ):
101
- update_multiecho_name (metadata , fn , set (echo_times ))
101
+ update_multiecho_name (metadata , base_fn , set (echo_times ))
102
102
103
103
104
104
def test_update_uncombined_name ():
105
105
"""Unit testing for heudiconv.convert.update_uncombined_name(), which updates
106
106
filenames with the ch field if appropriate.
107
107
"""
108
108
# Standard name update
109
- fn = 'sub-X_ses-Y_task-Z_run-01_bold'
109
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_bold'
110
110
metadata = {'CoilString' : 'H1' }
111
111
channel_names = ['H1' , 'H2' , 'H3' , 'HEA;HEP' ]
112
112
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold'
113
- out_fn_test = update_uncombined_name (metadata , fn , channel_names )
113
+ out_fn_test = update_uncombined_name (metadata , base_fn , channel_names )
114
114
assert out_fn_test == out_fn_true
115
115
116
116
# CoilString field has no number in it, so we index the channel_names list
117
117
metadata = {'CoilString' : 'HEA;HEP' }
118
118
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-04_bold'
119
- out_fn_test = update_uncombined_name (metadata , fn , channel_names )
119
+ out_fn_test = update_uncombined_name (metadata , base_fn , channel_names )
120
120
assert out_fn_test == out_fn_true
121
121
122
122
# Extract the number from the CoilString and use that
123
123
channel_names = ['H1' , 'B1' , 'H3' , 'HEA;HEP' ]
124
124
metadata = {'CoilString' : 'H1' }
125
125
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold'
126
- out_fn_test = update_uncombined_name (metadata , fn , channel_names )
126
+ out_fn_test = update_uncombined_name (metadata , base_fn , channel_names )
127
127
assert out_fn_test == out_fn_true
128
128
129
129
# NOTE: Extracting the number does not protect against multiple coils with the same number
130
130
# (but, say, different letters)
131
131
# Note that this is still "ch-01"
132
132
metadata = {'CoilString' : 'B1' }
133
133
out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold'
134
- out_fn_test = update_uncombined_name (metadata , fn , channel_names )
134
+ out_fn_test = update_uncombined_name (metadata , base_fn , channel_names )
135
135
assert out_fn_test == out_fn_true
136
136
137
137
# Providing echo times as something other than a list should raise a TypeError
138
- fn = 'sub-X_ses-Y_task-Z_run-01_bold'
138
+ base_fn = 'sub-X_ses-Y_task-Z_run-01_bold'
139
139
with pytest .raises (TypeError ):
140
- update_uncombined_name (metadata , fn , set (channel_names ))
140
+ update_uncombined_name (metadata , base_fn , set (channel_names ))
141
141
142
142
143
143
def test_b0dwi_for_fmap (tmpdir , caplog ):
0 commit comments