X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fadd%2Ftest_div.py;h=3f1923384032b90db1235d4730a1e6f3eab61a61;hb=6bff1a997f3846872cf489c24b5c01426c4dc97c;hp=61882e585466438dbf495f30e5fa257352f03892;hpb=a9441a2d5af3bfbf135d46c2d95cd0129bcc3e4a;p=ieee754fpu.git diff --git a/src/add/test_div.py b/src/add/test_div.py index 61882e58..3f192338 100644 --- a/src/add/test_div.py +++ b/src/add/test_div.py @@ -11,11 +11,13 @@ from nmigen_div_experiment import FPDIV from unit_test_single import (get_mantissa, get_exponent, get_sign, is_nan, is_inf, is_pos_inf, is_neg_inf, match, get_case, check_case, run_test, - run_edge_cases) + run_edge_cases, run_corner_cases) def testbench(dut): - yield from check_case(dut, 0x2b017, 0xff3807ab, 0x80000000) + yield from check_case(dut, 0x80000000, 0x00000000, 0xffc00000) + yield from check_case(dut, 0x00000000, 0x80000000, 0xffc00000) + yield from check_case(dut, 0x0002b017, 0xff3807ab, 0x80000000) yield from check_case(dut, 0x40000000, 0x3F800000, 0x40000000) yield from check_case(dut, 0x3F800000, 0x40000000, 0x3F000000) yield from check_case(dut, 0x3F800000, 0x40400000, 0x3EAAAAAB) @@ -31,19 +33,12 @@ def testbench(dut): #regression tests stimulus_a = [0xbf9b1e94, 0x34082401, 0x5e8ef81, 0x5c75da81, 0x2b017] stimulus_b = [0xc038ed3a, 0xb328cd45, 0x114f3db, 0x2f642a39, 0xff3807ab] - yield from run_test(dut, stimulus_a, stimulus_b, truediv) + yield from run_test(dut, stimulus_a, stimulus_b, truediv, get_case) count += len(stimulus_a) print (count, "vectors passed") - #corner cases - from itertools import permutations - stimulus_a = [i[0] for i in permutations([0x80000000, 0x00000000, 0x7f800000, 0xff800000, 0x7fc00000, 0xffc00000], 2)] - stimulus_b = [i[1] for i in permutations([0x80000000, 0x00000000, 0x7f800000, 0xff800000, 0x7fc00000, 0xffc00000], 2)] - yield from run_test(dut, stimulus_a, stimulus_b, truediv) - count += len(stimulus_a) - print (count, "vectors passed") - - yield from run_edge_cases(dut, count, truediv) + yield from run_corner_cases(dut, count, truediv, get_case) + yield from run_edge_cases(dut, count, truediv, get_case) if __name__ == '__main__':