Skip to content
Snippets Groups Projects
Commit bb5d2df9 authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

TEST: Tests are useful it turns out. Use pyfeeds.common.tempdir instead of pyfeeds.tests.tempdir

parent 596657c7
No related branches found
No related tags found
1 merge request!41BF,RF: Fix a few bugs, adjust `evalHeader` routine
...@@ -9,8 +9,6 @@ ...@@ -9,8 +9,6 @@
import os import os
import sys import sys
import os.path as op import os.path as op
import contextlib
import tempfile
from io import StringIO from io import StringIO
...@@ -61,17 +59,6 @@ class CaptureStdout(object): ...@@ -61,17 +59,6 @@ class CaptureStdout(object):
return self.__mock_stderr.read() return self.__mock_stderr.read()
@contextlib.contextmanager
def tempdir():
prevdir = os.getcwd()
with tempfile.TemporaryDirectory() as td:
try:
os.chdir(td)
yield td
finally:
os.chdir(prevdir)
def makepaths(paths): def makepaths(paths):
for path in paths: for path in paths:
dirname = op.dirname(path) dirname = op.dirname(path)
......
...@@ -13,7 +13,7 @@ from unittest import mock ...@@ -13,7 +13,7 @@ from unittest import mock
import pyfeeds.main as main import pyfeeds.main as main
from pyfeeds.tests import tempdir from pyfeeds.common import tempdir
def test_loadPyfeedsConfig(): def test_loadPyfeedsConfig():
......
...@@ -11,9 +11,10 @@ import os.path as op ...@@ -11,9 +11,10 @@ import os.path as op
import numpy as np import numpy as np
import nibabel as nib import nibabel as nib
from . import tempdir, makepaths, maketest, makepyfeeds, CaptureStdout from . import makepaths, maketest, makepyfeeds, CaptureStdout
from pyfeeds import testing, evaluate from pyfeeds import testing, evaluate
from pyfeeds.common import tempdir
def test_evaluateTestAgainstBenchmark(): def test_evaluateTestAgainstBenchmark():
...@@ -79,6 +80,9 @@ def test_evalVectorImage(): ...@@ -79,6 +80,9 @@ def test_evalVectorImage():
assert evaluate.evalVectorImage(fname1, fname1, pyf=pyf) == 0 assert evaluate.evalVectorImage(fname1, fname1, pyf=pyf) == 0
assert evaluate.evalVectorImage(fname2, fname2, pyf=pyf) == 0 assert evaluate.evalVectorImage(fname2, fname2, pyf=pyf) == 0
assert evaluate.evalVectorImage(fname1, fname2, pyf=pyf) != 0 assert evaluate.evalVectorImage(fname1, fname2, pyf=pyf) != 0
assert evaluate.evalVectorImage(fname1, fname1) == 0
assert evaluate.evalVectorImage(fname2, fname2) == 0
assert evaluate.evalVectorImage(fname1, fname2) != 0
def test_evalImage(): def test_evalImage():
...@@ -98,3 +102,102 @@ def test_evalImage(): ...@@ -98,3 +102,102 @@ def test_evalImage():
assert evaluate.evalImage(fname1, fname1, pyf=pyf) == 0 assert evaluate.evalImage(fname1, fname1, pyf=pyf) == 0
assert evaluate.evalImage(fname2, fname2, pyf=pyf) == 0 assert evaluate.evalImage(fname2, fname2, pyf=pyf) == 0
assert evaluate.evalImage(fname1, fname2, pyf=pyf) != 0 assert evaluate.evalImage(fname1, fname2, pyf=pyf) != 0
assert evaluate.evalImage(fname1, fname1) == 0
assert evaluate.evalImage(fname2, fname2) == 0
assert evaluate.evalImage(fname1, fname2) != 0
def test_evalHeader():
arr1 = -1 + 2 * np.random.random((10, 10, 10, 10))
arr2 = -1 + 2 * np.random.random((10, 10, 10, 10))
arr3 = -1 + 2 * np.random.random((10, 10, 10, 20))
arr4 = -1 + 2 * np.random.random(( 5, 5, 5, 20))
with tempdir():
pyf = makepyfeeds()
fname1 = 'image1.nii.gz'
fname2 = 'image2.nii.gz'
fname3 = 'image3.nii.gz'
fname4 = 'image4.nii.gz'
nib.Nifti1Image(arr1, np.eye(4)).to_filename(fname1)
nib.Nifti1Image(arr2, np.eye(4)).to_filename(fname2)
nib.Nifti1Image(arr3, np.eye(4)).to_filename(fname3)
nib.Nifti1Image(arr4, np.eye(4)).to_filename(fname4)
assert evaluate.evalHeader(fname1, fname1, pyf=pyf) == 0
assert evaluate.evalHeader(fname2, fname2, pyf=pyf) == 0
assert evaluate.evalHeader(fname3, fname3, pyf=pyf) == 0
assert evaluate.evalHeader(fname4, fname4, pyf=pyf) == 0
assert evaluate.evalHeader(fname1, fname1) == 0
assert evaluate.evalHeader(fname2, fname2) == 0
assert evaluate.evalHeader(fname3, fname3) == 0
assert evaluate.evalHeader(fname4, fname4) == 0
assert evaluate.evalHeader(fname1, fname2) == 0
assert evaluate.evalHeader(fname1, fname3) != 0
assert evaluate.evalHeader(fname1, fname4) != 0
assert evaluate.evalHeader(fname1, fname3, ndims=3) == 0
assert evaluate.evalHeader(fname3, fname4) != 0
assert evaluate.evalHeader(fname3, fname4, ndims=3) != 0
assert evaluate.evalHeaderRestrictDims(fname1, fname2, pyf=pyf) == 0
assert evaluate.evalHeaderRestrictDims(fname1, fname3, pyf=pyf) != 0
assert evaluate.evalHeaderRestrictDims(fname1, fname2) == 0
assert evaluate.evalHeaderRestrictDims(fname1, fname3) != 0
def test_evalImageMaxDiff():
arr1 = np.zeros((10, 10, 10))
arr2 = np.zeros((10, 10, 10))
arr1[0, 0, 0] = 100
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.evalImageMaxDiff(fname1, fname1, pyf=pyf) == 0
assert evaluate.evalImageMaxDiff(fname1, fname1) == 0
assert evaluate.evalImageMaxDiff(fname1, fname2) == 100
def test_evalNumericalText():
arr1 = np.random.random(100)
arr2 = np.random.random(100) * 4
with tempdir():
pyf = makepyfeeds()
fname1 = 'data1.txt'
fname2 = 'data2.txt'
np.savetxt(fname1, arr1)
np.savetxt(fname2, arr2)
assert evaluate.evalNumericalText(fname1, fname1, pyf=pyf) == 0
assert evaluate.evalNumericalText(fname1, fname1) == 0
assert evaluate.evalNumericalText(fname1, fname2) != 0
def test_evalMD5():
arr1 = np.random.random(100)
arr2 = np.random.random(100) * 4
with tempdir():
pyf = makepyfeeds()
fname1 = 'data1.txt'
fname2 = 'data2.txt'
np.savetxt(fname1, arr1)
np.savetxt(fname2, arr2)
assert evaluate.evalMD5(fname1, fname1, pyf=pyf) == 0
assert evaluate.evalMD5(fname1, fname1) == 0
assert evaluate.evalMD5(fname1, fname2) != 0
...@@ -13,8 +13,9 @@ import os.path as op ...@@ -13,8 +13,9 @@ import os.path as op
import time import time
from pyfeeds import hashing, testing from pyfeeds import hashing, testing
from pyfeeds.common import tempdir
from . import CaptureStdout, makepyfeeds, maketest, makepaths, tempdir from . import CaptureStdout, makepyfeeds, maketest, makepaths
def test_genHashes(): def test_genHashes():
......
...@@ -10,9 +10,10 @@ import os ...@@ -10,9 +10,10 @@ import os
import datetime import datetime
import os.path as op import os.path as op
from . import tempdir, makepaths, maketest, makepyfeeds, CaptureStdout from . import makepaths, maketest, makepyfeeds, CaptureStdout
from pyfeeds import testing from pyfeeds import testing
from pyfeeds.common import tempdir
def test_findTestDirs(): def test_findTestDirs():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment