Files
scikit-image/skimage/io/tests/test_multi_image.py
T
2013-12-07 01:04:40 -06:00

70 lines
1.9 KiB
Python

import os
import numpy as np
from numpy.testing.decorators import skipif
from numpy.testing import assert_raises, assert_equal, assert_allclose
from skimage import data_dir
from skimage.io.collection import MultiImage
try:
from PIL import Image
except ImportError:
PIL_available = False
else:
PIL_available = True
import six
class TestMultiImage():
def setUp(self):
# This multipage TIF file was created with imagemagick:
# convert im1.tif im2.tif -adjoin multipage.tif
if PIL_available:
self.img = MultiImage(os.path.join(data_dir, 'multipage.tif'))
@skipif(not PIL_available)
def test_len(self):
assert len(self.img) == 2
@skipif(not PIL_available)
def test_getitem(self):
num = len(self.img)
for i in range(-num, num):
assert type(self.img[i]) is np.ndarray
assert_allclose(self.img[0], self.img[-num])
# assert_raises expects a callable, hence this thin wrapper function.
def return_img(n):
return self.img[n]
assert_raises(IndexError, return_img, num)
assert_raises(IndexError, return_img, -num - 1)
@skipif(not PIL_available)
def test_files_property(self):
assert isinstance(self.img.filename, six.string_types)
def set_filename(f):
self.img.filename = f
assert_raises(AttributeError, set_filename, 'newfile')
@skipif(not PIL_available)
def test_conserve_memory_property(self):
assert isinstance(self.img.conserve_memory, bool)
def set_mem(val):
self.img.conserve_memory = val
assert_raises(AttributeError, set_mem, True)
@skipif(not PIL_available)
def test_concatenate(self):
array = self.img.concatenate()
assert_equal(array.shape, (len(self.img),) + self.img[0].shape)
if __name__ == "__main__":
from numpy.testing import run_module_suite
run_module_suite()