SciPy

2012-02-11 30 views
6

test edilirken hata oluştu scipy.test() kullanarak burun paketini kullanarak scipy'yi test ederken, Ubuntu 12.04 altında test edilen tüm vanilya paketleri ile test başarısız oluyor. Endişelenmem gerekiyor mu? Evet ise bunu nasıl düzeltebilirim? Eğer /usr/lib/python2.7/dist-packages/scipy/ndimage/tests/test_io.py içine bir göz atacak olursakSciPy

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) 

cevap

11

görmeniz gerekir:

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)) 

Bu test flatten=True 1-bit gri görüntü içine bir RGB görüntüyü dönüşmesi durumunda test gibi görünüyor. Bir RGBA görüntü üzerinde testi (elle) gerçekleştirirseniz

% 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 

, daha sonra test çalışır:: benim Ubuntu 11.10 sistemde

Ancak dots.png zaten 1 bitlik görüntü dosyasıdır

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) 

Yani, burada ciddi yanlış bir şey olduğunu bir RGB görüntüsü yerine gri tonlama biri olmalıydı sevk edildi sadece belki dots.png dosyayı sanmıyorum.

+0

Mükemmel cevap. Ayrıca hata mesajını da alıyorsunuz? – Ingo

+1

Evet, Ubuntu 11.10'da aynı hatayı alıyorum. – unutbu