format code
[ieee754fpu.git] / src / ieee754 / fcvt / test / test_fcvt_pipe.py
1 """ test of FPCVTMuxInOut
2 """
3
4 from ieee754.fcvt.pipeline import FPCVTDownMuxInOut
5 from ieee754.fpcommon.test.fpmux import runfp
6
7 from sfpy import Float64, Float32, Float16
8
9 import unittest
10
11
12 def fcvt_16(x):
13 return Float16(x)
14
15
16 def fcvt_32(x):
17 return Float32(x)
18
19
20 def test_down_pipe_fp32_16():
21 # XXX TODO: this has too great a dynamic range as input
22 # http://bugs.libre-riscv.org/show_bug.cgi?id=113
23 dut = FPCVTDownMuxInOut(32, 16, 4)
24 runfp(dut, 32, "test_fcvt_down_pipe_fp32_16", Float32, fcvt_16, True,
25 n_vals=100)
26
27
28 def test_down_pipe_fp64_16():
29 # XXX TODO: this has too great a dynamic range as input
30 # http://bugs.libre-riscv.org/show_bug.cgi?id=113
31 dut = FPCVTDownMuxInOut(64, 16, 4)
32 runfp(dut, 64, "test_fcvt_down_pipe_fp64_16", Float64, fcvt_16, True,
33 n_vals=100)
34
35
36 def test_down_pipe_fp64_32():
37 # XXX TODO: this has too great a dynamic range as input
38 # http://bugs.libre-riscv.org/show_bug.cgi?id=113
39 dut = FPCVTDownMuxInOut(64, 32, 4)
40 runfp(dut, 64, "test_fcvt_down_pipe_fp64_32", Float64, fcvt_32, True,
41 n_vals=100)
42
43
44 if __name__ == '__main__':
45 for i in range(200):
46 test_down_pipe_fp64_16()
47 test_down_pipe_fp32_16()
48 test_down_pipe_fp64_32()