diff --git a/pyfeeds/tests/__init__.py b/pyfeeds/tests/__init__.py
index 7feda3307a62c5d69ea0a8dbe7b06bfd32cd5bd6..a3ec65ba2896a33cda076df112c4337553fd4954 100644
--- a/pyfeeds/tests/__init__.py
+++ b/pyfeeds/tests/__init__.py
@@ -9,8 +9,6 @@
 import os
 import sys
 import os.path as op
-import contextlib
-import tempfile
 
 from io import StringIO
 
@@ -61,17 +59,6 @@ class CaptureStdout(object):
         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):
     for path in paths:
         dirname = op.dirname(path)
diff --git a/pyfeeds/tests/test_config.py b/pyfeeds/tests/test_config.py
index 647201f4588920104e632034987bbd269b503dcc..02811dc87d5fa16906c0f42db7d2bdf35bb452ef 100644
--- a/pyfeeds/tests/test_config.py
+++ b/pyfeeds/tests/test_config.py
@@ -13,7 +13,7 @@ from   unittest import mock
 
 import pyfeeds.main as main
 
-from pyfeeds.tests import tempdir
+from pyfeeds.common import tempdir
 
 
 def test_loadPyfeedsConfig():
diff --git a/pyfeeds/tests/test_evaluate.py b/pyfeeds/tests/test_evaluate.py
index 4c9b4a0b82c1c52fcc0ef77b4439f8b29e61aa8a..98ebaf97ffe42675d676dc0a3b632d5328b1d1c2 100644
--- a/pyfeeds/tests/test_evaluate.py
+++ b/pyfeeds/tests/test_evaluate.py
@@ -11,9 +11,10 @@ import os.path as op
 import numpy as np
 import nibabel as nib
 
-from . import tempdir, makepaths, maketest, makepyfeeds, CaptureStdout
+from . import makepaths, maketest, makepyfeeds, CaptureStdout
 
 from pyfeeds import testing, evaluate
+from pyfeeds.common import tempdir
 
 
 def test_evaluateTestAgainstBenchmark():
@@ -79,6 +80,9 @@ def test_evalVectorImage():
         assert evaluate.evalVectorImage(fname1, fname1, pyf=pyf) == 0
         assert evaluate.evalVectorImage(fname2, 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():
@@ -98,3 +102,102 @@ def test_evalImage():
         assert evaluate.evalImage(fname1, fname1, pyf=pyf) == 0
         assert evaluate.evalImage(fname2, 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
diff --git a/pyfeeds/tests/test_hashing.py b/pyfeeds/tests/test_hashing.py
index bb303a706d8ab87068fd45e6270166529b95893f..808cab884b4612e9dab2b67f81e6bfa3941c817f 100644
--- a/pyfeeds/tests/test_hashing.py
+++ b/pyfeeds/tests/test_hashing.py
@@ -13,8 +13,9 @@ import os.path as op
 import time
 
 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():
diff --git a/pyfeeds/tests/test_testing.py b/pyfeeds/tests/test_testing.py
index 3dcadbb17188e8f1f1cc20b41264701ff40c64a8..2761aa07409efdd574b371b62d2d2b3d4388c550 100644
--- a/pyfeeds/tests/test_testing.py
+++ b/pyfeeds/tests/test_testing.py
@@ -10,9 +10,10 @@ import os
 import datetime
 import os.path as op
 
-from . import tempdir, makepaths, maketest, makepyfeeds, CaptureStdout
+from . import makepaths, maketest, makepyfeeds, CaptureStdout
 
 from  pyfeeds import testing
+from  pyfeeds.common import tempdir
 
 
 def test_findTestDirs():