mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-29 13:32:48 +08:00
112 lines
3.0 KiB
Python
112 lines
3.0 KiB
Python
import sys
|
|
import os.path
|
|
|
|
import numpy as np
|
|
from numpy.testing import *
|
|
from numpy.testing.decorators import skipif
|
|
|
|
from skimage import data_dir
|
|
from skimage.io import ImageCollection, MultiImage
|
|
|
|
|
|
try:
|
|
from PIL import Image
|
|
except ImportError:
|
|
PIL_available = False
|
|
else:
|
|
PIL_available = True
|
|
|
|
if sys.version_info[0] > 2:
|
|
basestring = str
|
|
|
|
|
|
class TestImageCollection():
|
|
pattern = [os.path.join(data_dir, pic) for pic in ['camera.png',
|
|
'color.png']]
|
|
|
|
def setUp(self):
|
|
self.collection = ImageCollection(self.pattern)
|
|
|
|
def test_len(self):
|
|
assert len(self.collection) == 2
|
|
|
|
def test_getitem(self):
|
|
num = len(self.collection)
|
|
for i in range(-num, num):
|
|
assert type(self.collection[i]) is np.ndarray
|
|
assert_array_almost_equal(self.collection[0],
|
|
self.collection[-num])
|
|
|
|
#assert_raises expects a callable, hence this do-very-little func
|
|
def return_img(n):
|
|
return self.collection[n]
|
|
assert_raises(IndexError, return_img, num)
|
|
assert_raises(IndexError, return_img, -num-1)
|
|
|
|
def test_files_property(self):
|
|
assert isinstance(self.collection.files, list)
|
|
|
|
def set_files(f):
|
|
self.collection.files = f
|
|
assert_raises(AttributeError, set_files, 'newfiles')
|
|
|
|
def test_custom_load(self):
|
|
load_pattern = [(1, 'one'), (2, 'two')]
|
|
def load_fn(x):
|
|
return x
|
|
|
|
ic = ImageCollection(load_pattern, load_func=load_fn)
|
|
assert_equal(ic[1], (2, 'two'))
|
|
|
|
|
|
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_array_almost_equal(self.img[0],
|
|
self.img[-num])
|
|
|
|
#assert_raises expects a callable, hence this do-very-little func
|
|
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, basestring)
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_module_suite()
|
|
|