[pypy-svn] r76384 - in pypy/branch/micronumpy/pypy/module/micronumpy: . test

dan at codespeak.net dan at codespeak.net
Thu Jul 29 01:10:58 CEST 2010


Author: dan
Date: Thu Jul 29 01:10:56 2010
New Revision: 76384

Modified:
   pypy/branch/micronumpy/pypy/module/micronumpy/dtype.py
   pypy/branch/micronumpy/pypy/module/micronumpy/test/test_numpy.py
Log:
Now passing dtype test, one less xfail.

Modified: pypy/branch/micronumpy/pypy/module/micronumpy/dtype.py
==============================================================================
--- pypy/branch/micronumpy/pypy/module/micronumpy/dtype.py	(original)
+++ pypy/branch/micronumpy/pypy/module/micronumpy/dtype.py	Thu Jul 29 01:10:56 2010
@@ -12,19 +12,15 @@
         self.w_native_type = None
 
     def descr_eq(self, space, w_type):
-        if space.eq_w(self.w_native_type, w_type):
-            return space.w_True
+        if isinstance(w_type, TypeDescr):
+            other_type = w_type.dtype
+        else:
+            other_type = get(space, w_type)
 
-        try:
-            typestr = space.str_w(w_type)
-            if self.dtype.typecode == typestr: return space.w_True
-            elif self.name == typestr: return space.w_True
-            else: return space.w_False
-        except OperationError, e:
-            if e.match(space, space.w_TypeError): pass
-            else: raise
+        typecode = self.dtype.typecode
+        other_typecode = other_type.typecode
 
-        return space.w_False
+        return space.w_True if typecode == other_typecode else space.w_False
     descr_eq.unwrap_spec = ['self', ObjSpace, W_Root]
 
     def descr_repr(self, space):
@@ -165,10 +161,16 @@
 def from_wrapped_type(space, w_type):
     if w_type is space.w_int:
         return int_descr
-    else:
+    elif w_type is space.w_float:
         return float_descr #XXX: only handles two types!
+    else:
+        raise OperationError(space.w_TypeError,
+                             space.wrap("unknown type %s" % w_type))
 
 def get(space, w_dtype):
+    if isinstance(w_dtype, TypeDescr):
+        return w_dtype.dtype #FIXME: a little wasteful since we end up just getting the TypeDescr
+
     try:
         s = space.str_w(w_dtype)
 
@@ -185,13 +187,6 @@
     except OperationError, e:
         if e.match(space, space.w_TypeError): pass # XXX: ValueError?
 
-    try:
-        i = space.int_w(w_dtype)
-        return _descriptors[i]
-    except OperationError, e:
-        if e.match(space, space.w_TypeError): pass 
-        else: raise
-
     return from_wrapped_type(space, w_dtype)
 
 # FIXME: watch for wrapped typedescrs!

Modified: pypy/branch/micronumpy/pypy/module/micronumpy/test/test_numpy.py
==============================================================================
--- pypy/branch/micronumpy/pypy/module/micronumpy/test/test_numpy.py	(original)
+++ pypy/branch/micronumpy/pypy/module/micronumpy/test/test_numpy.py	Thu Jul 29 01:10:56 2010
@@ -351,7 +351,6 @@
     def setup_class(cls):
         cls.space = gettestobjspace(usemodules=('micronumpy',))
 
-    @py.test.mark.xfail
     def test_eq(self):
         from micronumpy import zeros
 



More information about the Pypy-commit mailing list