diff --git a/pyfeeds/tests/__init__.py b/pyfeeds/tests/__init__.py index db6dbb57323ea11effc3d59643923356b184c309..7feda3307a62c5d69ea0a8dbe7b06bfd32cd5bd6 100644 --- a/pyfeeds/tests/__init__.py +++ b/pyfeeds/tests/__init__.py @@ -113,6 +113,13 @@ def maketest(filename, returnCode=0, inputs=None, outputs=None, stdout=None): def makepyfeeds(**kwargs): + + # simplest way of creating a dummy pyfeeds object + if len(kwargs) == 0: + kwargs['command'] = 'compare' + kwargs['inputDir'] = os.getcwd() + kwargs['benchmarkDir'] = os.getcwd() + args = argparse.Namespace(**kwargs) cfg = argparse.Namespace() return main.Pyfeeds(args, cfg) diff --git a/pyfeeds/tests/test_evaluate.py b/pyfeeds/tests/test_evaluate.py index 96ff097c102fe24a0b236fb79fe74c29597ad5c6..c016e787f1be52fc113e7a6d095b90031be2f691 100644 --- a/pyfeeds/tests/test_evaluate.py +++ b/pyfeeds/tests/test_evaluate.py @@ -8,6 +8,9 @@ import os import os.path as op +import numpy as np +import nibabel as nib + from . import tempdir, makepaths, maketest, makepyfeeds, CaptureStdout from pyfeeds import testing, evaluate @@ -57,3 +60,41 @@ def test_evaluateTestAgainstBenchmark(): assert len(lines) == 3 for l in lines[1:]: assert 'PASS' in l + + +def test_evalVectorImage(): + + vecarr1 = -1 + 2 * np.random.random((10, 10, 10, 3)) + vecarr2 = -1 + 2 * np.random.random((10, 10, 10, 3)) + + with tempdir(): + + pyf = makepyfeeds() + fname1 = 'image1.nii.gz' + fname2 = 'image2.nii.gz' + + nib.Nifti1Image(vecarr1, np.eye(4)).to_filename(fname1) + nib.Nifti1Image(vecarr2, np.eye(4)).to_filename(fname2) + + assert evaluate.evalVectorImage(pyf, fname1, fname1) == 0 + assert evaluate.evalVectorImage(pyf, fname2, fname2) == 0 + assert evaluate.evalVectorImage(pyf, fname1, fname2) != 0 + + +def test_evalImage(): + + arr1 = -1 + 2 * np.random.random((10, 10, 10, 10)) + arr2 = -1 + 2 * np.random.random((10, 10, 10, 10)) + + with tempdir(): + + pyf = makepyfeeds() + fname1 = 'image1.nii.gz' + fname2 = 'image2.nii.gz' + + nib.Nifti1Image(arr1, np.eye(4)).to_filename(fname1) + nib.Nifti1Image(arr2, np.eye(4)).to_filename(fname2) + + assert evaluate.evalImage(pyf, fname1, fname1) == 0 + assert evaluate.evalImage(pyf, fname2, fname2) == 0 + assert evaluate.evalImage(pyf, fname1, fname2) != 0