From 8396d59268834eda91ce74ec129a1882386f7754 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 7 Oct 2014 07:13:43 -0500 Subject: [PATCH] Reinstate tifffile test --- skimage/io/tests/test_tifffile.py | 62 +++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 skimage/io/tests/test_tifffile.py diff --git a/skimage/io/tests/test_tifffile.py b/skimage/io/tests/test_tifffile.py new file mode 100644 index 00000000..7019f0c6 --- /dev/null +++ b/skimage/io/tests/test_tifffile.py @@ -0,0 +1,62 @@ +import os +import skimage as si +import skimage.io as sio +import numpy as np + +from numpy.testing import * +from numpy.testing.decorators import skipif +from tempfile import NamedTemporaryFile + +try: + import skimage.io._plugins.tifffile_plugin as tf + _plugins = sio.plugin_order() + TF_available = True + sio.use_plugin('tifffile') +except ImportError: + TF_available = False + +np.random.seed(0) + + +def teardown(): + sio.reset_plugins() + + +@skipif(not TF_available) +def test_imread_uint16(): + expected = np.load(os.path.join(si.data_dir, 'chessboard_GRAY_U8.npy')) + img = sio.imread(os.path.join(si.data_dir, 'chessboard_GRAY_U16.tif')) + assert img.dtype == np.uint16 + assert_array_almost_equal(img, expected) + + +@skipif(not TF_available) +def test_imread_uint16_big_endian(): + expected = np.load(os.path.join(si.data_dir, 'chessboard_GRAY_U8.npy')) + img = sio.imread(os.path.join(si.data_dir, 'chessboard_GRAY_U16B.tif')) + assert img.dtype == np.uint16 + assert_array_almost_equal(img, expected) + + +class TestSave: + def roundtrip(self, dtype, x): + f = NamedTemporaryFile(suffix='.tif') + fname = f.name + f.close() + sio.imsave(fname, x) + y = sio.imread(fname) + assert_array_equal(x, y) + + @skipif(not TF_available) + def test_imsave_roundtrip(self): + for shape in [(10, 10), (10, 10, 3), (10, 10, 4)]: + for dtype in (np.uint8, np.uint16, np.float32, np.float64): + x = np.ones(shape, dtype=dtype) * np.random.rand(*shape) + + if not np.issubdtype(dtype, float): + x = (x * 255).astype(dtype) + yield self.roundtrip, dtype, x + + +if __name__ == "__main__": + run_module_suite()