[SciPy-Dev] ANN: SciPy 0.9.0 beta 1

Bruce Southey bsouthey@gmail....
Tue Dec 14 11:52:59 CST 2010


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


More information about the SciPy-Dev mailing list