Skip to content

Commit 0394930

Browse files
committed
TEST: Add fixtures for testing interfaces with doctests
1 parent 381cb0b commit 0394930

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

nibabies/interfaces/conftest.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""py.test configuration"""
2+
from pathlib import Path
3+
import pytest
4+
from tempfile import TemporaryDirectory
5+
6+
7+
@pytest.fixture(scope="package")
8+
def data_dir():
9+
with TemporaryDirectory() as tmpdir:
10+
tmp_path = Path(tmpdir)
11+
for fname in (
12+
'functional.nii',
13+
'anatomical.nii',
14+
'epi.nii',
15+
'T1w.nii',
16+
'func_to_struct.mat',
17+
):
18+
Path.touch(tmp_path / fname)
19+
yield tmp_path
20+
21+
22+
@pytest.fixture(autouse=True)
23+
def set_namespace(doctest_namespace, data_dir):
24+
doctest_namespace["data_dir"] = data_dir

nibabies/interfaces/workbench.py

+30
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,36 @@ class VolumeAffineResampleOutputSpec(TraitedSpec):
196196
class VolumeAffineResample(WBCommand):
197197
"""
198198
Resample a volume file with an affine transformation.
199+
200+
>>> from nibabies.interfaces.workbench import VolumeAffineResample
201+
>>> resample = VolumeAffineResample()
202+
>>> resample.inputs.in_file = data_dir /'functional.nii'
203+
>>> resample.inputs.volume_space = data_dir /'anatomical.nii'
204+
>>> resample.inputs.method = 'CUBIC'
205+
>>> resample.inputs.affine = data_dir / 'func_to_struct.mat'
206+
>>> resample.cmdline #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
207+
'wb_command -volume-resample .../functional.nii .../anatomical.nii CUBIC \
208+
resampled_functional.nii.gz -affine .../func_to_struct.mat'
209+
210+
If the affine was generated with FLIRT, this should be indicated.
211+
By default, the interface will use the ``in_file`` and ``volume_space``
212+
for references.
213+
214+
>>> resample.inputs.flirt = True
215+
>>> resample.cmdline #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
216+
'wb_command -volume-resample .../functional.nii .../anatomical.nii CUBIC \
217+
resampled_functional.nii.gz -affine .../func_to_struct.mat \
218+
-flirt .../functional.nii .../anatomical.nii'
219+
220+
However, if other volumes were used to calculate the affine, they can
221+
be provided:
222+
223+
>>> resample.inputs.flirt_source_volume = data_dir / 'epi.nii'
224+
>>> resample.inputs.flirt_target_volume = data_dir /'T1w.nii'
225+
>>> resample.cmdline #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
226+
'wb_command -volume-resample .../functional.nii .../anatomical.nii CUBIC \
227+
resampled_functional.nii.gz -affine .../func_to_struct.mat \
228+
-flirt .../epi.nii .../T1w.nii'
199229
"""
200230

201231
input_spec = VolumeAffineResampleInputSpec

0 commit comments

Comments
 (0)