astropy / astroscrappy

Speedy Cosmic Ray Annihilation Package in Python
70 stars 34 forks source link

[1.0.3] Tests fail on bigendian machines (powerpc) #7

Closed olebole closed 6 years ago

olebole commented 8 years ago

On Debian bigendian machines, there are many tests failing: test_medfilt5, test_medfilt7, test_sepmedfilt3, test_sepmedfilt5, test_sepmedfilt7, test_sepmedfilt9, test_subsample, test_rebin, test_laplaceconvolve, and test_convolve. The cause seems to be different; here as one example:

________________________________ test_medfilt5 _________________________________

    def test_medfilt5():
        a = np.ascontiguousarray(np.random.random((1001, 1001))).astype('<f4')
        npmed5 = ndimage.filters.median_filter(a, size=(5, 5), mode='nearest')
        npmed5[:2, :] = a[:2, :]
        npmed5[-2:, :] = a[-2:, :]
        npmed5[:, :2] = a[:, :2]
        npmed5[:, -2:] = a[:, -2:]

        med5 = medfilt5(a)
>       assert np.all(med5 == npmed5)
E       assert <function all at 0xf7d5dcb0>(array([[  1.7...dtype=float32) == array([[ 0.959...dtype=float32)
E        +  where <function all at 0xf7d5dcb0> = np.all
E         Detailed information truncated, use "-vv" to show)

astroscrappy/tests/test_utils.py:67: AssertionError

Full log here. For 64-bit powerpc, where we have big and little endian architectures, only the big endian one fails; the little endian succeeds. For MIPS (32 bit) the situation is the same. Complete overview on all architectures is here.

cmccully commented 8 years ago

Thanks for pointing this out @olebole. I originally set the tests to use little endian arrays, but that should be updated. I will update the tests and release a new minor version to pip.