
On Tue, Dec 14, 2010 at 10:52 AM, Bruce Southey <bsouthey@gmail.com> wrote:
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>
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
are merely testing the resulting shape of the image after a resize, not
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",
wrote: they the 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.
Ah, you compiled against numpy master instead of numpy 1.5.1, float16 is only in the development branch. I think the test should be fixed to use an explicit list of types supported by pilutil. Chuck