Skip to content

Commit a42eef3

Browse files
bpinsardeffigies
authored andcommitted
add tests for B0Field cases
1 parent c825243 commit a42eef3

File tree

1 file changed

+152
-10
lines changed

1 file changed

+152
-10
lines changed

sdcflows/utils/tests/test_wrangler.py

Lines changed: 152 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,146 @@ def gen_layout(bids_dir, database_dir=None):
202202
}
203203

204204

205+
pepolar_b0ids = {
206+
'01': [
207+
{
208+
'session': '01',
209+
'anat': [{'suffix': 'T1w', 'metadata': {'EchoTime': 1}}],
210+
'func': [
211+
{
212+
'task': 'rest',
213+
'run': 1,
214+
'suffix': 'bold',
215+
'metadata': {
216+
'RepetitionTime': 0.8,
217+
'TotalReadoutTime': 0.5,
218+
'PhaseEncodingDirection': 'j',
219+
'B0FieldIdentifier': 'b0_pepolar',
220+
'B0FieldSource': 'b0_pepolar',
221+
},
222+
},
223+
{
224+
'task': 'rest',
225+
'run': 2,
226+
'suffix': 'bold',
227+
'metadata': {
228+
'RepetitionTime': 0.8,
229+
'TotalReadoutTime': 0.5,
230+
'PhaseEncodingDirection': 'j-',
231+
'B0FieldIdentifier': 'b0_pepolar',
232+
'B0FieldSource': 'b0_pepolar',
233+
},
234+
},
235+
],
236+
},
237+
{
238+
'session': '02',
239+
'anat': [{'suffix': 'T1w', 'metadata': {'EchoTime': 1}}],
240+
'func': [
241+
{
242+
'task': 'rest',
243+
'run': 1,
244+
'suffix': 'bold',
245+
'metadata': {
246+
'RepetitionTime': 0.8,
247+
'TotalReadoutTime': 0.5,
248+
'PhaseEncodingDirection': 'j',
249+
'B0FieldSource': 'b0_pepolar',
250+
},
251+
},
252+
{
253+
'task': 'rest',
254+
'run': 2,
255+
'suffix': 'bold',
256+
'metadata': {
257+
'RepetitionTime': 0.8,
258+
'TotalReadoutTime': 0.5,
259+
'PhaseEncodingDirection': 'j-',
260+
'B0FieldSource': 'b0_pepolar',
261+
},
262+
},
263+
{
264+
'task': 'rest',
265+
'run': 1,
266+
'suffix': 'sbref',
267+
'metadata': {
268+
'RepetitionTime': 0.8,
269+
'TotalReadoutTime': 0.5,
270+
'PhaseEncodingDirection': 'j',
271+
'B0FieldIdentifier': 'b0_pepolar',
272+
'B0FieldSource': 'b0_pepolar',
273+
},
274+
},
275+
{
276+
'task': 'rest',
277+
'run': 2,
278+
'suffix': 'sbref',
279+
'metadata': {
280+
'RepetitionTime': 0.8,
281+
'TotalReadoutTime': 0.5,
282+
'PhaseEncodingDirection': 'j-',
283+
'B0FieldIdentifier': 'b0_pepolar',
284+
'B0FieldSource': 'b0_pepolar',
285+
},
286+
},
287+
],
288+
},
289+
{
290+
'session': '03',
291+
'anat': [{'suffix': 'T1w', 'metadata': {'EchoTime': 1}}],
292+
'func': [
293+
{
294+
'task': 'rest',
295+
'run': 1,
296+
'suffix': 'bold',
297+
'metadata': {
298+
'RepetitionTime': 0.8,
299+
'TotalReadoutTime': 0.5,
300+
'PhaseEncodingDirection': 'j',
301+
'B0FieldSource': 'b0_pepolar',
302+
},
303+
},
304+
{
305+
'task': 'rest',
306+
'run': 2,
307+
'suffix': 'bold',
308+
'metadata': {
309+
'RepetitionTime': 0.8,
310+
'TotalReadoutTime': 0.5,
311+
'PhaseEncodingDirection': 'j-',
312+
'B0FieldSource': 'b0_pepolar',
313+
},
314+
},
315+
{
316+
'task': 'rest',
317+
'run': 1,
318+
'suffix': 'sbref',
319+
'metadata': {
320+
'RepetitionTime': 0.8,
321+
'TotalReadoutTime': 0.5,
322+
'PhaseEncodingDirection': 'j',
323+
'B0FieldIdentifier': ['b0_pepolar', 'b0_pepolar_dup'],
324+
'B0FieldSource': 'b0_pepolar',
325+
},
326+
},
327+
{
328+
'task': 'rest',
329+
'run': 2,
330+
'suffix': 'sbref',
331+
'metadata': {
332+
'RepetitionTime': 0.8,
333+
'TotalReadoutTime': 0.5,
334+
'PhaseEncodingDirection': 'j-',
335+
'B0FieldIdentifier': ['b0_pepolar', 'b0_pepolar_dup'],
336+
'B0FieldSource': 'b0_pepolar',
337+
},
338+
},
339+
],
340+
},
341+
]
342+
}
343+
344+
205345
phasediff = {
206346
'01': [
207347
{
@@ -304,26 +444,28 @@ def gen_layout(bids_dir, database_dir=None):
304444

305445

306446
@pytest.mark.parametrize(
307-
'name,skeleton,estimations',
447+
'name,skeleton,estimations,bids_filters',
308448
[
309-
('pepolar', pepolar, 1),
310-
('phasediff', phasediff, 1),
449+
('pepolar', pepolar, 1, 'fmap'),
450+
('pepolar_b0ids', pepolar_b0ids, 1, 'bold'),
451+
('phasediff', phasediff, 1, 'fmap'),
311452
],
312453
)
313-
def test_wrangler_filter(tmpdir, name, skeleton, estimations):
454+
def test_wrangler_filter(tmpdir, name, skeleton, estimations, bids_filters):
314455
bids_dir = str(tmpdir / name)
315456
generate_bids_skeleton(bids_dir, skeleton)
316457
layout = gen_layout(bids_dir)
317-
est = find_estimators(layout=layout, subject='01', bids_filters=filters['fmap'])
458+
est = find_estimators(layout=layout, subject='01', bids_filters=filters[bids_filters])
318459
assert len(est) == estimations
319460
clear_registry()
320461

321462

322463
@pytest.mark.parametrize(
323-
'name,skeleton,total_estimations',
464+
'name,skeleton,total_estimations,test_auto',
324465
[
325-
('pepolar', pepolar, 5),
326-
('phasediff', phasediff, 3),
466+
('pepolar', pepolar, 5, True),
467+
('pepolar_b0ids', pepolar_b0ids, 2, False),
468+
('phasediff', phasediff, 3, True),
327469
],
328470
)
329471
@pytest.mark.parametrize(
@@ -335,7 +477,7 @@ def test_wrangler_filter(tmpdir, name, skeleton, estimations):
335477
(None, None),
336478
],
337479
)
338-
def test_wrangler_URIs(tmpdir, name, skeleton, session, estimations, total_estimations):
480+
def test_wrangler_URIs(tmpdir, name, skeleton, session, estimations, total_estimations, test_auto):
339481
bids_dir = str(tmpdir / name)
340482
generate_bids_skeleton(bids_dir, skeleton)
341483
layout = gen_layout(bids_dir)
@@ -345,7 +487,7 @@ def test_wrangler_URIs(tmpdir, name, skeleton, session, estimations, total_estim
345487
sessions=[session] if session else None,
346488
)
347489
assert len(est) == estimations or total_estimations
348-
if session:
490+
if session and test_auto:
349491
bold = layout.get(session=session, suffix='bold', extension='.nii.gz')[0]
350492
intended_rel = re.sub(r'^sub-[a-zA-Z0-9]*/', '', str(Path(bold).relative_to(layout.root)))
351493
b0_id = get_identifier(intended_rel)

0 commit comments

Comments
 (0)