[pypy-svn] rev 2679 - in pypy/trunk/src/pypy/objspace/std: . test

alex at codespeak.net alex at codespeak.net
Mon Dec 22 17:39:56 CET 2003


Author: alex
Date: Mon Dec 22 17:39:55 2003
New Revision: 2679

Modified:
   pypy/trunk/src/pypy/objspace/std/floatobject.py
   pypy/trunk/src/pypy/objspace/std/test/test_floatobject.py
Log:
added test to show a bug (pow(-2.3,4.5) was not wrapping the exception)
and fixed the bug.


Modified: pypy/trunk/src/pypy/objspace/std/floatobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/floatobject.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/floatobject.py	Mon Dec 22 17:39:55 2003
@@ -223,6 +223,9 @@
         z = x ** y
     except OverflowError:
         raise FailedToImplement(space.w_OverflowError, space.wrap("float power"))
+    except ValueError, e:
+        raise FailedToImplement(space.w_ValueError, space.wrap(str(e)))
+
     return W_FloatObject(space, z)
 
 def neg__Float(space, w_float1):

Modified: pypy/trunk/src/pypy/objspace/std/test/test_floatobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/test/test_floatobject.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/test/test_floatobject.py	Mon Dec 22 17:39:55 2003
@@ -27,7 +27,8 @@
         f2 = fobj.W_FloatObject(self.space, y)
         f3 = fobj.W_FloatObject(self.space, z)
         self.assertEquals(self.space.w_TypeError,
-                          self._unwrap_nonimpl(fobj.pow__Float_Float_ANY, self.space, f1, f2, f3))
+                          self._unwrap_nonimpl(fobj.pow__Float_Float_ANY,
+                                               self.space, f1, f2, f3))
 
     def test_pow_ffn(self):
         x = 10.0
@@ -36,6 +37,12 @@
         f2 = fobj.W_FloatObject(self.space, y)
         v = fobj.pow__Float_Float_ANY(self.space, f1, f2, self.space.w_None)
         self.assertEquals(v.floatval, x ** y)
+        f1 = fobj.W_FloatObject(self.space, -1.23)
+        f2 = fobj.W_FloatObject(self.space, -4.56)
+        self.assertEquals(self.space.w_ValueError,
+                          self._unwrap_nonimpl(fobj.pow__Float_Float_ANY,
+                                               self.space, f1, f2,
+                                               self.space.w_None))
 
 class AppFloatTest(test.AppTestCase):
     def setUp(self):


More information about the Pypy-commit mailing list