[pypy-svn] r49508 - in pypy/dist/pypy: rpython/test translator/cli/test translator/jvm/test

antocuni at codespeak.net antocuni at codespeak.net
Fri Dec 7 13:58:41 CET 2007


Author: antocuni
Date: Fri Dec  7 13:58:40 2007
New Revision: 49508

Modified:
   pypy/dist/pypy/rpython/test/tool.py
   pypy/dist/pypy/translator/cli/test/test_builtin.py
   pypy/dist/pypy/translator/jvm/test/runtest.py
Log:
- a much better way to test for float equality

- skip os.dup test in cli



Modified: pypy/dist/pypy/rpython/test/tool.py
==============================================================================
--- pypy/dist/pypy/rpython/test/tool.py	(original)
+++ pypy/dist/pypy/rpython/test/tool.py	Fri Dec  7 13:58:40 2007
@@ -3,10 +3,10 @@
 from pypy.rpython.lltypesystem import lltype
 from pypy.rpython.test.test_llinterp import gengraph, interpret, interpret_raises
 
-FLOAT_PRECISION = 8
-
 class BaseRtypingTest(object):
 
+    FLOAT_PRECISION = 8
+
     def gengraph(self, func, argtypes=[], viewbefore='auto', policy=None,
              backendopt=False, config=None):
         return gengraph(func, argtypes, viewbefore, policy, type_system=self.type_system,
@@ -23,7 +23,8 @@
 
     def float_eq_approx(self, x, y):
         diff = abs(x-y)
-        return diff < 10**-FLOAT_PRECISION
+        error = diff/y
+        return error < 10**-self.FLOAT_PRECISION
 
     def is_of_type(self, x, type_):
         return type(x) is type_

Modified: pypy/dist/pypy/translator/cli/test/test_builtin.py
==============================================================================
--- pypy/dist/pypy/translator/cli/test/test_builtin.py	(original)
+++ pypy/dist/pypy/translator/cli/test/test_builtin.py	Fri Dec  7 13:58:40 2007
@@ -14,7 +14,9 @@
 class TestCliBuiltin(CliTest, BaseTestBuiltin):
     test_os_path_exists = skip_os
     test_os_isdir = skip_os
+    test_os_dup_oo = skip_os
 
+        
     def test_builtin_math_frexp(self):
         self._skip_powerpc("Mono math floating point problem")
         BaseTestBuiltin.test_builtin_math_frexp(self)

Modified: pypy/dist/pypy/translator/jvm/test/runtest.py
==============================================================================
--- pypy/dist/pypy/translator/jvm/test/runtest.py	(original)
+++ pypy/dist/pypy/translator/jvm/test/runtest.py	Fri Dec  7 13:58:40 2007
@@ -14,8 +14,6 @@
      generate_source_for_function, JvmError, detect_missing_support_programs
 from pypy.translator.jvm.option import getoption
 
-FLOAT_PRECISION = 5
-
 class StructTuple(tuple):
     def __getattr__(self, name):
         if name.startswith('item'):
@@ -81,6 +79,9 @@
         return res
 
 class JvmTest(BaseRtypingTest, OORtypeMixin):
+
+    FLOAT_PRECISION = 7
+    
     def __init__(self):
         self._func = None
         self._ann = None
@@ -132,7 +133,7 @@
             assert False, 'function did not raise any exception at all'
 
     def float_eq(self, x, y):
-        return round(x, FLOAT_PRECISION) == round(y, FLOAT_PRECISION)        
+        return self.float_eq_approx(x, y)
 
     def is_of_type(self, x, type_):
         return True # we can't really test the type



More information about the Pypy-commit mailing list