From 46d7f91150138f07796e6ba15de07e88bced75f1 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Mon, 8 Jul 2019 12:07:56 +0100 Subject: [PATCH] move test pipe class to common location --- src/ieee754/fpadd/test/test_fpadd_pipe_32.py | 51 ++------------------ src/ieee754/fpcommon/test/case_gen.py | 47 +++++++++++++++++- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/ieee754/fpadd/test/test_fpadd_pipe_32.py b/src/ieee754/fpadd/test/test_fpadd_pipe_32.py index 7bcec612..c84b8c39 100644 --- a/src/ieee754/fpadd/test/test_fpadd_pipe_32.py +++ b/src/ieee754/fpadd/test/test_fpadd_pipe_32.py @@ -2,11 +2,7 @@ """ from ieee754.fpadd.pipeline import (FPADDMuxInOut,) -from ieee754.fpcommon.test.fpmux import runfp, repeat, pipe_cornercases_repeat -from ieee754.fpcommon.test.case_gen import get_corner_cases, corner_cases -from ieee754.fpcommon.test.case_gen import (get_rand1, get_nan_noncan, - get_n127, get_nearly_zero, - get_nearly_inf, get_corner_rand) +from ieee754.fpcommon.test.case_gen import run_pipe_fp from ieee754.fpcommon.test import unit_test_single from ieee754.fpadd.test.add_data32 import regressions @@ -14,51 +10,10 @@ from sfpy import Float32 from operator import add -class PipeFPCase: - def __init__(self, dut, name, mod, fmod, width, cc, fpfn, count): - self.dut = dut - self.name = name - self.mod = mod - self.fmod = fmod - self.width = width - self.cc = cc - self.fpfn = fpfn - self.count = count - - def run(self, name, fn): - name = "%s_%s" % (self.name, name) - pipe_cornercases_repeat(self.dut, name, self.mod, self.fmod, - self.width, fn, self.cc, self.fpfn, - self.count) - - def run_cornercases(self): - vals = repeat(self.dut.num_rows, get_corner_cases(self.mod)) - tname = "test_fp%s_pipe_fp%d_cornercases" % (self.name, self.width) - runfp(self.dut, self.width, tname, self.fmod, self.fpfn, vals=vals) - - def run_regressions(self, regressions_fn): - vals = repeat(self.dut.num_rows, regressions_fn()) - tname = "test_fp%s_pipe_fp%d_regressions" % (self.name, self.width) - runfp(self.dut, self.width, tname, self.fmod, self.fpfn, vals=vals) - - def run_random(self): - tname = "test_fp%s_pipe_fp%d_rand" % (self.name, self.width) - runfp(self.dut, self.width, tname, self.fmod, self.fpfn) - - def test_pipe_fp32(): dut = FPADDMuxInOut(32, 4) - pc = PipeFPCase(dut, "add", unit_test_single, Float32, - 32, corner_cases, add, 10) - pc.run("rand1", get_rand1) - pc.run("n127", get_n127) - pc.run("noncan", get_nan_noncan) - pc.run("nearlyzero", get_nearly_zero) - pc.run("nearlyinf", get_nearly_inf) - pc.run("corner_rand", get_corner_rand) - pc.run_cornercases() - pc.run_regressions(regressions) - pc.run_random() + run_pipe_fp(dut, 32, "add", unit_test_single, Float32, + regressions, add, 10) if __name__ == '__main__': diff --git a/src/ieee754/fpcommon/test/case_gen.py b/src/ieee754/fpcommon/test/case_gen.py index 2aad4387..441b093e 100644 --- a/src/ieee754/fpcommon/test/case_gen.py +++ b/src/ieee754/fpcommon/test/case_gen.py @@ -1,8 +1,9 @@ +from ieee754.fpcommon.test.fpmux import runfp, repeat, pipe_cornercases_repeat + from random import randint from random import seed import sys -from sfpy import Float32 def corner_cases(mod): return [mod.zero(1), mod.zero(0), @@ -69,3 +70,47 @@ def get_corner_rand(mod, fixed_num, maxcount, width): stimulus_b = [randint(0, 1<