[Scipy-svn] r5261 - in trunk/scipy/ndimage: . tests

scipy-svn at scipy.org scipy-svn at scipy.org
Sun Dec 14 17:42:38 EST 2008


Author: matthew.brett at gmail.com
Date: 2008-12-14 16:42:33 -0600 (Sun, 14 Dec 2008)
New Revision: 5261

Modified:
   trunk/scipy/ndimage/doccer.py
   trunk/scipy/ndimage/filters.py
   trunk/scipy/ndimage/tests/test_filters.py
Log:
New checks for order parameters for Gaussians, with tests

Modified: trunk/scipy/ndimage/doccer.py
===================================================================
--- trunk/scipy/ndimage/doccer.py	2008-12-14 17:30:56 UTC (rev 5260)
+++ trunk/scipy/ndimage/doccer.py	2008-12-14 22:42:33 UTC (rev 5261)
@@ -1,3 +1,6 @@
+''' Utilities to allow inserting docstring fragments for common
+parameters into function and method docstrings'''
+
 import sys
 
 def docformat(docstring, docdict=None):

Modified: trunk/scipy/ndimage/filters.py
===================================================================
--- trunk/scipy/ndimage/filters.py	2008-12-14 17:30:56 UTC (rev 5260)
+++ trunk/scipy/ndimage/filters.py	2008-12-14 22:42:33 UTC (rev 5261)
@@ -72,9 +72,6 @@
 """origin : scalar, optional
 The ``origin`` parameter controls the placement of the filter. Default 0"""
 _extra_arguments_doc = \
-"""extra_arguments : sequence
-    Sequence of extra positional arguments to pass to passed function"""
-_extra_arguments_doc = \
 """extra_arguments : sequence, optional
     Sequence of extra positional arguments to pass to passed function"""
 _extra_keywords_doc = \
@@ -179,6 +176,8 @@
     %(mode)s
     %(cval)s
     """
+    if order not in range(4):
+        raise ValueError('Order outside 0..3 not implemented')
     sd = float(sigma)
     # make the length of the filter equal to 4 times the standard
     # deviations:
@@ -257,6 +256,8 @@
     input = numpy.asarray(input)
     output, return_value = _ni_support._get_output(output, input)
     orders = _ni_support._normalize_sequence(order, input.ndim)
+    if not set(orders).issubset(set(range(4))):
+        raise ValueError('Order outside 0..4 not implemented')
     sigmas = _ni_support._normalize_sequence(sigma, input.ndim)
     axes = range(input.ndim)
     axes = [(axes[ii], sigmas[ii], orders[ii])

Modified: trunk/scipy/ndimage/tests/test_filters.py
===================================================================
--- trunk/scipy/ndimage/tests/test_filters.py	2008-12-14 17:30:56 UTC (rev 5260)
+++ trunk/scipy/ndimage/tests/test_filters.py	2008-12-14 22:42:33 UTC (rev 5261)
@@ -16,3 +16,15 @@
     # The following raises an error unless ticket 701 is fixed
     res2 = sndi.generic_filter(arr, func, size=1)
     assert_equal(res, res2)
+
+def test_orders_gauss():
+    # Check order inputs to Gaussians
+    arr = np.zeros((1,))
+    yield assert_equal, 0, sndi.gaussian_filter(arr, 1, order=0)
+    yield assert_equal, 0, sndi.gaussian_filter(arr, 1, order=3)
+    yield assert_raises, ValueError, sndi.gaussian_filter, arr, 1, -1
+    yield assert_raises, ValueError, sndi.gaussian_filter, arr, 1, 4
+    yield assert_equal, 0, sndi.gaussian_filter1d(arr, 1, axis=-1, order=0)
+    yield assert_equal, 0, sndi.gaussian_filter1d(arr, 1, axis=-1, order=3)
+    yield assert_raises, ValueError, sndi.gaussian_filter1d, arr, 1, -1, -1
+    yield assert_raises, ValueError, sndi.gaussian_filter1d, arr, 1, -1, 4




More information about the Scipy-svn mailing list