Author: Alex Gaynor <[email protected]>
Branch: numpy-dtype-refactor
Changeset: r49974:b443d8b4f544
Date: 2011-11-29 11:25 -0500
http://bitbucket.org/pypy/pypy/changeset/b443d8b4f544/
Log: fix tests for 32-bit
diff --git a/pypy/module/micronumpy/__init__.py
b/pypy/module/micronumpy/__init__.py
--- a/pypy/module/micronumpy/__init__.py
+++ b/pypy/module/micronumpy/__init__.py
@@ -25,6 +25,7 @@
'signedinteger': 'interp_boxes.W_SignedIntegerBox',
'bool_': 'interp_boxes.W_BoolBox',
'int8': 'interp_boxes.W_Int8Box',
+ 'int64': 'interp_boxes.W_Int64Box',
'int_': 'interp_boxes.W_LongBox',
'inexact': 'interp_boxes.W_InexactBox',
'floating': 'interp_boxes.W_FloatingBox',
diff --git a/pypy/module/micronumpy/interp_boxes.py
b/pypy/module/micronumpy/interp_boxes.py
--- a/pypy/module/micronumpy/interp_boxes.py
+++ b/pypy/module/micronumpy/interp_boxes.py
@@ -239,6 +239,7 @@
W_Int64Box.typedef = TypeDef("int64", (W_SignedIntegerBox.typedef,) + MIXIN_64,
__module__ = "numpy",
+ __new__ = interp2app(W_Int64Box.descr__new__.im_func),
)
W_UInt64Box.typedef = TypeDef("uint64", W_UnsignedIntgerBox.typedef,
diff --git a/pypy/module/micronumpy/test/test_dtypes.py
b/pypy/module/micronumpy/test/test_dtypes.py
--- a/pypy/module/micronumpy/test/test_dtypes.py
+++ b/pypy/module/micronumpy/test/test_dtypes.py
@@ -44,13 +44,13 @@
assert a[i] is True_
def test_copy_array_with_dtype(self):
- from numpypy import array, False_, True_
+ from numpypy import array, False_, True_, int64
a = array([0, 1, 2, 3], dtype=long)
# int on 64-bit, long in 32-bit
- assert isinstance(a[0], (int, long))
+ assert isinstance(a[0], int64)
b = a.copy()
- assert isinstance(b[0], (int, long))
+ assert isinstance(b[0], int64)
a = array([0, 1, 2, 3], dtype=bool)
assert a[0] is False_
@@ -72,17 +72,17 @@
assert a[i] is True_
def test_zeros_long(self):
- from numpypy import zeros
+ from numpypy import zeros, int64
a = zeros(10, dtype=long)
for i in range(10):
- assert isinstance(a[i], (int, long))
+ assert isinstance(a[i], int64)
assert a[1] == 0
def test_ones_long(self):
- from numpypy import ones
+ from numpypy import ones, int64
a = ones(10, dtype=long)
for i in range(10):
- assert isinstance(a[i], (int, long))
+ assert isinstance(a[i], int64)
assert a[1] == 1
def test_overflow(self):
@@ -213,6 +213,18 @@
assert numpy.int_ is numpy.dtype(int).type
assert numpy.int_.mro() == [numpy.int_, numpy.signedinteger,
numpy.integer, numpy.number, numpy.generic, int, object]
+ def test_int64(self):
+ import sys
+ import numpypy as numpy
+
+ if sys.maxint == 2 ** 63 -1:
+ assert numpy.int64.mro() == [numpy.int64, numpy.signedinteger,
numpy.integer, numpy.number, numpy.generic, int, object]
+ else:
+ assert numpy.int64.mro() == [numpy.int64, numpy.signedinteger,
numpy.integer, numpy.number, numpy.generic, object]
+
+ assert numpy.dtype(numpy.int64).type is numpy.int64
+ assert numpy.int64(3) == 3
+
def test_float64(self):
import numpypy as numpy
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit