[Scipy-svn] r2885 - in trunk/Lib/ndimage: src tests
scipy-svn at scipy.org
scipy-svn at scipy.org
Wed Mar 28 17:54:38 EDT 2007
Author: stefan
Date: 2007-03-28 16:54:24 -0500 (Wed, 28 Mar 2007)
New Revision: 2885
Modified:
trunk/Lib/ndimage/src/ni_interpolation.c
trunk/Lib/ndimage/tests/test_ndimage.py
Log:
Fix ndimage tests. Add brief comment in map_coordinates code.
Modified: trunk/Lib/ndimage/src/ni_interpolation.c
===================================================================
--- trunk/Lib/ndimage/src/ni_interpolation.c 2007-03-28 19:10:01 UTC (rev 2884)
+++ trunk/Lib/ndimage/src/ni_interpolation.c 2007-03-28 21:54:24 UTC (rev 2885)
@@ -141,9 +141,9 @@
in = 0;
} else {
maybelong sz = len;
- in += sz * (maybelong)(-in / sz);
- if (in < 0)
- in += sz;
+ // Integer division of -in/sz gives (-in mod sz)
+ // Note that 'in' is negative
+ in += sz * ((maybelong)(-in / sz) + 1);
}
break;
case NI_EXTEND_NEAREST:
@@ -180,7 +180,7 @@
in = 0;
} else {
maybelong sz = len;
- in -= sz * (maybelong)(in / sz);
+ in -= sz * (maybelong)(in / sz);
}
break;
case NI_EXTEND_NEAREST:
Modified: trunk/Lib/ndimage/tests/test_ndimage.py
===================================================================
--- trunk/Lib/ndimage/tests/test_ndimage.py 2007-03-28 19:10:01 UTC (rev 2884)
+++ trunk/Lib/ndimage/tests/test_ndimage.py 2007-03-28 21:54:24 UTC (rev 2885)
@@ -1856,7 +1856,7 @@
for order in range(0, 6):
out = ndimage.affine_transform(data, [[0.5]],
output_shape = (4,), order=order)
- self.failUnless(diff(out, [1, 1, 1, 1]) < eps)
+ self.failUnless(diff(out, [1, 1, 1, 0]) < eps)
def test_affine_transform11(self):
"affine transform 11"
@@ -2072,7 +2072,7 @@
data = numpy.ones([2], numpy.float64)
for order in range(0, 6):
out = ndimage.zoom(data, 2.0, order=order)
- self.failUnless(diff(out, [1, 1, 1, 1]) < eps)
+ self.failUnless(diff(out, [1, 1, 1, 0]) < eps)
def test_zoom02(self):
"zoom 2"
@@ -2212,39 +2212,46 @@
def test_rotate05(self):
"rotate 5"
- data = numpy.array([[[0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]]] * 3,
- dtype = numpy.float64)
- true = numpy.array([[[0, 0, 0],
- [0, 0, 0],
- [0, 1, 0],
- [0, 1, 0],
- [0, 0, 0]]] * 3, dtype = numpy.float64)
+ data = numpy.empty((4,3,3))
+ for i in range(3):
+ data[:,:,i] = numpy.array([[0,0,0],
+ [0,1,0],
+ [0,1,0],
+ [0,0,0]], dtype = numpy.float64)
+
+ true = numpy.array([[0,0,0,0],
+ [0,1,1,0],
+ [0,0,0,0]], dtype = numpy.float64)
+
for order in range(0, 6):
out = ndimage.rotate(data, 90)
- self.failUnless(diff(out, true) < eps)
-
+ for i in range(3):
+ self.failUnless(diff(out[:,:,i], true) < eps)
+
def test_rotate06(self):
"rotate 6"
- data = numpy.array([[[0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]]] * 3,
- dtype = numpy.float64)
- true = numpy.array([[[0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0]]] * 3,
- dtype = numpy.float64)
+ data = numpy.empty((3,4,3))
+ for i in range(3):
+ data[:,:,i] = numpy.array([[0,0,0,0],
+ [0,1,1,0],
+ [0,0,0,0]], dtype = numpy.float64)
+
+ true = numpy.array([[0,0,0],
+ [0,1,0],
+ [0,1,0],
+ [0,0,0]], dtype = numpy.float64)
+
for order in range(0, 6):
- out = ndimage.rotate(data, 90, reshape = False)
- self.failUnless(diff(out, true) < eps)
-
+ out = ndimage.rotate(data, 90)
+ for i in range(3):
+ self.failUnless(diff(out[:,:,i], true) < eps)
+
def test_rotate07(self):
"rotate 7"
data = numpy.array([[[0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]]] * 2,
- dtype = numpy.float64)
+ [0, 1, 1, 0, 0],
+ [0, 0, 0, 0, 0]]] * 2,
+ dtype = numpy.float64)
data = data.transpose()
true = numpy.array([[[0, 0, 0],
[0, 1, 0],
More information about the Scipy-svn
mailing list