
On Tue, Dec 14, 2010 at 10:13 AM, Ralf Gommers <ralf.gommers@googlemail.com> wrote:
On Wed, Dec 15, 2010 at 12:01 AM, Benjamin Root <ben.root@ou.edu> wrote:
On Tue, Dec 14, 2010 at 6:38 AM, Ralf Gommers <ralf.gommers@googlemail.com> wrote:
On Tue, Dec 14, 2010 at 12:43 AM, Benjamin Root <ben.root@ou.edu> wrote:
Hi Ben,
Just did a clean rebuild (after a clean rebuild of numpy) and had two errors in the tests:
What platform are you on?
I reran the tests on just this scipy.misc module, here is the output:
scipy.misc.test() Running unit tests for scipy.misc NumPy version 2.0.0.dev-799179d NumPy is installed in /home/bvr/Programs/numpy/numpy SciPy version 0.10.0.dev SciPy is installed in /home/bvr/Programs/scipy/scipy Python version 2.6.4 (r264:75706, Jun 4 2010, 18:20:16) [GCC 4.4.4 20100503 (Red Hat 4.4.4-2)] nose version 0.11.3 ...........F..... ====================================================================== FAIL: test_imresize (test_pilutil.TestPILUtil)
Traceback (most recent call last): File "/home/bvr/Programs/numpy/numpy/testing/decorators.py", line 146, in skipper_func return f(*args, **kwargs) File "/home/bvr/Programs/scipy/scipy/misc/tests/test_pilutil.py", line 28, in test_imresize assert_equal(im1.shape,(11,22)) File "/home/bvr/Programs/numpy/numpy/testing/utils.py", line 251, in assert_equal assert_equal(actual[k], desired[k], 'item=%r\n%s' % (k,err_msg), verbose) File "/home/bvr/Programs/numpy/numpy/testing/utils.py", line 313, in assert_equal raise AssertionError(msg) AssertionError: Items are not equal: item=0
ACTUAL: 10 DESIRED: 11
---------------------------------------------------------------------- Ran 17 tests in 0.089s
FAILED (failures=1) <nose.result.TextTestResult run=17 errors=0 failures=1>
Note, that I am still getting this error with the suggested addition of "np.random.seed(12345678)" to scipy/misc/tests/test_pilutil.py. I tried it both at line 20 (before the call to class TestPILUtil) and at line 24 (before the call to np.random.random() in test_imresize. I do not see how setting the seed value for these tests would make any difference since they are merely testing the resulting shape of the image after a resize, not the values of the resized image itself.
The seeding may not matter (I haven't actually looked in detail yet), but I thought I had seen this error pop up before, but not reproducibly. The imresize function does some interpolation, so the numerical values could matter. In that case seeding would help.
====================================================================== FAIL: test_imresize (test_pilutil.TestPILUtil) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/bvr/Programs/numpy/numpy/testing/decorators.py", line 146, in skipper_func return f(*args, **kwargs) File "/home/bvr/Programs/scipy/scipy/misc/tests/test_pilutil.py", line 25, in test_imresize assert_equal(im1.shape,(11,22)) File "/home/bvr/Programs/numpy/numpy/testing/utils.py", line 251, in assert_equal assert_equal(actual[k], desired[k], 'item=%r\n%s' % (k,err_msg), verbose) File "/home/bvr/Programs/numpy/numpy/testing/utils.py", line 313, in assert_equal raise AssertionError(msg) AssertionError: Items are not equal: item=0
ACTUAL: 10 DESIRED: 11
This test should be changed to use a fixed seed (add as a first line of the test "np.random.seed(12345678)"). Can you provide one that fails?
Also, I am not sure what you mean by "Can you provide one that fails?".
I meant a seed value that fails. This one does, that's all we need.
On my 64-bit linux system with Python 2.7, the error appears comes from float16 dtype rather than the actual seed
np.random.seed(12345678) for T in np.sctypes['float'] + [float]: ... im1 = pilutil.imresize(im,T(1.1)) ... print T, im.shape, im1.shape ... <type 'numpy.float16'> (10, 20) (10, 21) <type 'numpy.float32'> (10, 20) (11, 22) <type 'numpy.float64'> (10, 20) (11, 22) <type 'numpy.float128'> (10, 20) (11, 22) <type 'float'> (10, 20) (11, 22)
Here only the float16 has different shape from the rest. Two other items: There is a print statement in the function test_cg for 'conjugate gradient optimization routine' that needs to be commented out: See line 70 of scipy-0.9.0b1/scipy/optimize/tests/test_optimize.py: 'print self.funccalls, self.gradcalls' There is a PendingDeprecationWarning with Python2.7 which I can add a ticket for if this is non-trivial. Relevant line from verbose=10: binary dilation 29 ... /usr/lib64/python2.7/site-packages/scipy/ndimage/morphology.py:254: PendingDeprecationWarning: The CObject type is marked Pending Deprecation in Python 2.7. Please use capsule objects instead. structure, mask, output, border_value, origin, invert, cit, 1) ok Is it possible to silence the 'ComplexWarning: Casting complex values to real discards the imaginary part' message and perhaps the 'Warning: divide by zero encountered in log' message while running the tests? My reasoning is that these tend to hide real problems. Bruce