[SciPy-dev] PyArray_CanCastSafely(exact,inexact) on 64-bit
Arnd Baecker
arnd.baecker at web.de
Mon Oct 31 04:01:22 EST 2005
On Sun, 30 Oct 2005, Pearu Peterson wrote:
> After fixing the usage of PyArray_CanCastSafely, now all scipy tests,
> except one, are succesfull on a 64-bit machine:
>
> ======================================================================
> ERROR: check_integer
> (scipy.io.array_import.test_array_import.test_read_array)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File
> "/usr/local/lib/python2.3/site-packages/scipy/io/tests/test_array_import.py",
> line 62, in check_integer
> b = io.read_array(fname,atype=N.Int)
> File "/usr/local/lib/python2.3/site-packages/scipy/io/array_import.py",
> line 359, in read_array
> raise ValueError, "One of the array types is invalid, k=%d" % k
> ValueError: One of the array types is invalid, k=0
>
> ----------------------------------------------------------------------
> Ran 1334 tests in 57.772s
>
> FAILED (errors=1)
That is great news! I also get this on my 64 Bit machine!
Just in case it has fallen through the cracks:
Concerning the check_integer problem:
def check_integer(self):
from scipy import stats
a = stats.randint.rvs(1,20,size=(3,4))
fname = tempfile.mktemp('.dat')
io.write_array(fname,a)
b = io.read_array(fname,atype=N.Int)
assert_array_equal(a,b)
os.remove(fname)
Executing this line by line shows the error for
b = io.read_array(fname,atype=N.Int)
Doing
b = io.read_array(fname)
reads in the array, but it gives floats.
However,
b = io.read_array(fname,atype=N.Int32)
works.
If this is the intended behaviour (also on 32Bit),
the unit test should be changed accordingly...
BTW: wouldn't io be much better in newcore instead
of newscipy? It seems like something of very common use.
Best, Arnd
More information about the SciPy-Dev
mailing list