diff options
author | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-04-04 14:40:41 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-04-04 14:40:41 +0200 |
commit | 1703ddd5dcfeab216179697a4f36244eb73020da (patch) | |
tree | 7c4032298be87c5daef8be308106c61fc76f8ee0 /tests | |
parent | 81dfc1cdb2213e1fe25f27cb810fe62d77560051 (diff) | |
download | ufo-filters-1703ddd5dcfeab216179697a4f36244eb73020da.tar.gz ufo-filters-1703ddd5dcfeab216179697a4f36244eb73020da.tar.bz2 ufo-filters-1703ddd5dcfeab216179697a4f36244eb73020da.tar.xz ufo-filters-1703ddd5dcfeab216179697a4f36244eb73020da.zip |
Add initial filter tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_fft.py | 70 | ||||
-rw-r--r-- | tests/test_rw.py | 34 | ||||
-rw-r--r-- | tests/ufotest.py | 32 |
3 files changed, 136 insertions, 0 deletions
diff --git a/tests/test_fft.py b/tests/test_fft.py new file mode 100644 index 0000000..98f0011 --- /dev/null +++ b/tests/test_fft.py @@ -0,0 +1,70 @@ +import numpy as np +import os +import ufotest +import unittest +from libtiff import TIFF + + +class TestFFT(ufotest.UfoTestCase): + def test_fft_1d(self): + src = 'lena.tif' + dst = 'foo-00000.tif' + + ufotest.write_lena(src) + + rd = self.g.get_filter('reader') + fft = self.g.get_filter('fft') + ifft = self.g.get_filter('ifft') + wr = self.g.get_filter('writer') + + rd.set_properties(path=src) + wr.set_properties(path='.', prefix='foo-') + fft.set_properties(dimensions=1) + ifft.set_properties(dimensions=1) + + rd.connect_to(fft) + fft.connect_to(ifft) + ifft.connect_to(wr) + self.g.run() + + original = TIFF.open(src, mode='r').read_image() + written = TIFF.open(dst, mode='r').read_image() + + m = np.mean(np.abs(original - written)) + self.assertEqualDelta(m, 0.0, 0.00001) + + os.remove(src) + os.remove(dst) + + def test_fft_2d(self): + src = 'lena.tif' + dst = 'foo-00000.tif' + + ufotest.write_lena(src) + + rd = self.g.get_filter('reader') + fft = self.g.get_filter('fft') + ifft = self.g.get_filter('ifft') + wr = self.g.get_filter('writer') + + rd.set_properties(path=src) + wr.set_properties(path='.', prefix='foo-') + fft.set_properties(dimensions=2) + ifft.set_properties(dimensions=2) + + rd.connect_to(fft) + fft.connect_to(ifft) + ifft.connect_to(wr) + self.g.run() + + original = TIFF.open(src, mode='r').read_image() + written = TIFF.open(dst, mode='r').read_image() + + m = np.mean(np.abs(original - written)) + self.assertEqualDelta(m, 0.0, 0.0001) + + os.remove(src) + os.remove(dst) + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_rw.py b/tests/test_rw.py new file mode 100644 index 0000000..b664b9a --- /dev/null +++ b/tests/test_rw.py @@ -0,0 +1,34 @@ +import numpy as np +import os +import ufotest +import unittest +from libtiff import TIFF + + +class TestWriteEqual(ufotest.UfoTestCase): + def test_write_equal(self): + src = 'lena.tif' + dst = 'foo-00000.tif' + + ufotest.write_lena(src) + + rd = self.g.get_filter('reader') + wr = self.g.get_filter('writer') + rd.set_properties(path=src) + wr.set_properties(path='.', prefix='foo-') + + rd.connect_to(wr) + self.g.run() + + original = TIFF.open(src, mode='r').read_image() + written = TIFF.open(dst, mode='r').read_image() + + d = np.sum(np.abs(original - written)) + self.assertEqual(d, 0.0) + + os.remove(src) + os.remove(dst) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/ufotest.py b/tests/ufotest.py new file mode 100644 index 0000000..de4dd13 --- /dev/null +++ b/tests/ufotest.py @@ -0,0 +1,32 @@ +import os +import unittest +import scipy.misc +import numpy as np +from libtiff import TIFF +from gi.repository import Ufo, GLib + + +def write_lena(path): + tif = TIFF.open(path, mode='w') + tif.write_image(scipy.misc.lena().astype(np.float32)) + + +class UfoTestCase(unittest.TestCase): + def setUp(self): + def ignore_message(domain, level, message, user): + pass + + GLib.log_set_handler("Ufo", GLib.LogLevelFlags.LEVEL_MASK, + ignore_message, None) + + GLib.log_set_handler("GLib-GObject", GLib.LogLevelFlags.LEVEL_MASK, + ignore_message, None) + + fp = 'UFO_FILTER_PATH' + if fp in os.environ: + self.g = Ufo.Graph(paths=os.environ[fp]) + else: + self.g = Ufo.Graph() + + def assertEqualDelta(self, a, b, delta): + assert(abs(a - b) < delta) |