[pypy-commit] pypy s390x-backend: testing several other values for floating point addition
plan_rich
noreply at buildbot.pypy.org
Thu Oct 22 08:15:44 EDT 2015
Author: Richard Plangger <planrichi at gmail.com>
Branch: s390x-backend
Changeset: r80388:8367c6c91fdf
Date: 2015-10-22 14:16 +0200
http://bitbucket.org/pypy/pypy/changeset/8367c6c91fdf/
Log: testing several other values for floating point addition
diff --git a/rpython/jit/backend/zarch/test/test_assembler.py b/rpython/jit/backend/zarch/test/test_assembler.py
--- a/rpython/jit/backend/zarch/test/test_assembler.py
+++ b/rpython/jit/backend/zarch/test/test_assembler.py
@@ -1,3 +1,4 @@
+import py
import struct
from rpython.jit.backend.zarch import conditions as con
from rpython.jit.backend.zarch import masks as msk
@@ -35,6 +36,10 @@
print hex(addr)
return struct.pack('>Q', addr)
+def isclose(a,b, rel_tol=1e-9, abs_tol=0.0):
+ # from PEP 485, added in python 3.5
+ return abs(a-b) <= max( rel_tol * max(abs(a), abs(b)), abs_tol )
+
class TestRunningAssembler(object):
def setup_method(self, method):
cpu = CPU(None, None)
@@ -210,20 +215,28 @@
self.a.jmpto(reg.r14)
assert run_asm(self.a) == -15
- def test_float_to_memory(self):
+ @py.test.mark.parametrize("v1,v2,res", [
+ ( 0.0, 0.0, 0.0),
+ ( -15.0, -15.0, -30.0),
+ ( 1.5, -3.22, -1.72),
+ ( 0.5, 0.0, 0.5),
+ ( 0.0001, -0.0002, -0.0001),
+ ])
+ def test_float_to_memory(self, v1, v2, res):
with lltype.scoped_alloc(DOUBLE_ARRAY_PTR.TO, 16) as mem:
with self.label('func', func=True):
with self.label('lit'):
self.mc.BRAS(reg.r13, loc.imm(0))
- self.mc.write(BFL(-15.0))
+ self.mc.write(BFL(v1))
+ self.mc.write(BFL(v2))
self.mc.write(ADDR(mem))
self.jump_here(self.mc.BRAS, 'lit')
self.mc.LD(reg.f0, loc.addr(0, reg.r13))
- self.mc.LDR(reg.f1, reg.f0)
+ self.mc.LD(reg.f1, loc.addr(8, reg.r13))
self.mc.ADBR(reg.f0, reg.f1)
- self.mc.LG(reg.r11, loc.addr(8, reg.r13))
+ self.mc.LG(reg.r11, loc.addr(16, reg.r13))
self.mc.STD(reg.f0, loc.addr(0, reg.r11))
self.a.jmpto(reg.r14)
run_asm(self.a)
- assert mem[0] == -30.0
+ assert isclose(mem[0],res)
More information about the pypy-commit
mailing list