From 794a4d7daebfdcb217fbf0a73b9d42e256ce45cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20B=C3=B8=20Fl=C3=B8ystad?= Date: Fri, 5 Jul 2013 14:29:09 +0200 Subject: [PATCH] arraypad: allow padding with zero entries (i.e. no padding). --- skimage/util/arraypad.py | 2 +- skimage/util/tests/test_arraypad.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/skimage/util/arraypad.py b/skimage/util/arraypad.py index acc89b7b..93f66bb8 100644 --- a/skimage/util/arraypad.py +++ b/skimage/util/arraypad.py @@ -1085,7 +1085,7 @@ def _validate_lengths(narray, number_elements): normshp = _normalize_shape(narray, number_elements) for i in normshp: chk = [1 if x is None else x for x in i] - chk = [1 if x > 0 else -1 for x in chk] + chk = [1 if x >= 0 else -1 for x in chk] if (chk[0] < 0) or (chk[1] < 0): fmt = "%s cannot contain negative values." raise ValueError(fmt % (number_elements,)) diff --git a/skimage/util/tests/test_arraypad.py b/skimage/util/tests/test_arraypad.py index 2c0e5ba7..008c3516 100644 --- a/skimage/util/tests/test_arraypad.py +++ b/skimage/util/tests/test_arraypad.py @@ -518,5 +518,12 @@ def test_pad_one_axis_three_ways(): **kwargs) +def test_zero_pad_width(): + arr = np.arange(30) + arr = np.reshape(arr, (6, 5)) + for pad_width in (0, (0, 0), ((0, 0), (0, 0))): + assert np.all(arr == pad(arr, pad_width, mode='constant')) + + if __name__ == "__main__": run_module_suite()