convert to use unittest in fcvt
[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 def fcvt_16(x):
12 return Float16(x)
13
14 def fcvt_32(x):
15 return Float32(x)
16
17 def test_down_pipe_fp32_16():
18 # XXX TODO: this has too great a dynamic range as input
19 # http://bugs.libre-riscv.org/show_bug.cgi?id=113
20 dut = FPCVTDownMuxInOut(32, 16, 4)
21 runfp(dut, 32, "test_fcvt_down_pipe_fp32_16", Float32, fcvt_16, True,
22 n_vals=100)
23
24 def test_down_pipe_fp64_16():
25 # XXX TODO: this has too great a dynamic range as input
26 # http://bugs.libre-riscv.org/show_bug.cgi?id=113
27 dut = FPCVTDownMuxInOut(64, 16, 4)
28 runfp(dut, 64, "test_fcvt_down_pipe_fp64_16", Float64, fcvt_16, True,
29 n_vals=100)
30
31 def test_down_pipe_fp64_32():
32 # XXX TODO: this has too great a dynamic range as input
33 # http://bugs.libre-riscv.org/show_bug.cgi?id=113
34 dut = FPCVTDownMuxInOut(64, 32, 4)
35 runfp(dut, 64, "test_fcvt_down_pipe_fp64_32", Float64, fcvt_32, True,
36 n_vals=100)
37
38 if __name__ == '__main__':
39 for i in range(200):
40 test_down_pipe_fp64_16()
41 test_down_pipe_fp32_16()
42 test_down_pipe_fp64_32()
43