2012-02-11 5 views
6

При тестировании scipy с использованием носовой упаковки с использованием scipy.test() тест проходит под Ubuntu 12.04 с установленными всеми пакетами ванили. Должен ли я беспокоиться, и если да, то как я могу это исправить?Ошибка при тестировании SciPy

In [8]: scipy.test() 
Running unit tests for scipy 
NumPy version 1.5.1 
NumPy is installed in /usr/lib/python2.7/dist-packages/numpy 
SciPy version 0.9.0 
SciPy is installed in /usr/lib/python2.7/dist-packages/scipy 
Python version 2.7.2+ (default, Jan 21 2012, 23:31:34) [GCC 4.6.2] 
nose version 1.1.2 

[................] 

====================================================================== 
FAIL: test_io.test_imread 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest 
    self.test(*self.arg) 
    File "/usr/lib/python2.7/dist-packages/numpy/testing/decorators.py", line 146, in skipper_func 
    return f(*args, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/scipy/ndimage/tests/test_io.py", line 16, in test_imread 
    assert_array_equal(img.shape, (300, 420, 3)) 
    File "/usr/lib/python2.7/dist-packages/numpy/testing/utils.py", line 686, in assert_array_equal 
    verbose=verbose, header='Arrays are not equal') 
    File "/usr/lib/python2.7/dist-packages/numpy/testing/utils.py", line 579, in assert_array_compare 
    raise AssertionError(msg) 
AssertionError: 
Arrays are not equal 

(shapes (2,), (3,) mismatch) 
x: array([300, 420]) 
y: array([300, 420, 3]) 

---------------------------------------------------------------------- 
Ran 3780 tests in 32.328s 

FAILED (KNOWNFAIL=11, SKIP=20, failures=1) 

ответ

11

Если вы посмотрите внутрь /usr/lib/python2.7/dist-packages/scipy/ndimage/tests/test_io.py вы должны увидеть:

def test_imread(): 
    lp = os.path.join(os.path.dirname(__file__), 'dots.png') 
    img = ndi.imread(lp) 
    assert_array_equal(img.shape, (300, 420, 3)) 

    img = ndi.imread(lp, flatten=True) 
    assert_array_equal(img.shape, (300, 420)) 

Этот тест, кажется, тестирование, если flatten=True преобразует RGB изображение в 1-битном исходном изображении.

В моей системе Ubuntu 11.10, однако, dots.png уже 1-битный файл Образ:

% file /usr/share/pyshared/scipy/ndimage/tests/dots.png 
/usr/share/pyshared/scipy/ndimage/tests/dots.png: PNG image data, 420 x 300, 1-bit colormap, non-interlaced 

Если я выполнить тест (вручную) на RGBA изображение, то тест работает:

In [18]: z = ndi.imread('image.png') 

In [20]: z.shape 
Out[20]: (250, 250, 4) 

In [24]: w = ndi.imread('image.png', flatten = True) 

In [25]: w.shape 
Out[25]: (250, 250) 

Так что я не думаю, что есть что-то серьезно не так здесь, только что, возможно, файл dots.png, который был отгружен должен был вместо RGB изображения, который один в оттенках серого.

+0

Отличный ответ. Вы также получите сообщение об ошибке? – Ingo

+1

Да, я получаю ту же ошибку на Ubuntu 11.10. – unutbu

Смежные вопросы