From 396b686bab9addf2a0ea09b6d7dde69ee8bf3565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Fri, 22 Nov 2013 11:59:07 +0100 Subject: [PATCH] Add test case for invalid image dimensions --- skimage/transform/_geometric.py | 4 ++-- skimage/transform/tests/test_warps.py | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/skimage/transform/_geometric.py b/skimage/transform/_geometric.py index b55078ef..af193173 100644 --- a/skimage/transform/_geometric.py +++ b/skimage/transform/_geometric.py @@ -1025,8 +1025,8 @@ def warp(image, inverse_map=None, map_args={}, output_shape=None, order=1, 'the `inverse_map` parameter.') inverse_map = reverse_map - if image.ndim < 2: - raise ValueError("Input must have more than 1 dimension.") + if image.ndim < 2 or image.ndim > 3: + raise ValueError("Input must have 2 or 3 dimensions.") orig_ndim = image.ndim image = np.atleast_3d(img_as_float(image)) diff --git a/skimage/transform/tests/test_warps.py b/skimage/transform/tests/test_warps.py index 7f7ef47d..760d4696 100644 --- a/skimage/transform/tests/test_warps.py +++ b/skimage/transform/tests/test_warps.py @@ -1,4 +1,5 @@ -from numpy.testing import assert_array_almost_equal, run_module_suite, assert_array_equal +from numpy.testing import (assert_array_almost_equal, run_module_suite, + assert_array_equal, assert_raises) import numpy as np from scipy.ndimage import map_coordinates @@ -234,5 +235,10 @@ def test_downscale_local_mean(): assert_array_equal(expected2, out2) +def test_invalid(): + assert_raises(ValueError, warp, np.ones((4, )), SimilarityTransform()) + assert_raises(ValueError, warp, np.ones((4, 3, 3, 3)), SimilarityTransform()) + + if __name__ == "__main__": run_module_suite()