summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@gmail.com>2012-04-04 14:40:41 +0200
committerMatthias Vogelgesang <matthias.vogelgesang@gmail.com>2012-04-04 14:40:41 +0200
commit1703ddd5dcfeab216179697a4f36244eb73020da (patch)
tree7c4032298be87c5daef8be308106c61fc76f8ee0 /tests
parent81dfc1cdb2213e1fe25f27cb810fe62d77560051 (diff)
downloadufo-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.py70
-rw-r--r--tests/test_rw.py34
-rw-r--r--tests/ufotest.py32
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)