aboutsummaryrefslogtreecommitdiff
path: root/contrib/bc/tests
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bc/tests')
-rwxr-xr-xcontrib/bc/tests/all.sh42
-rw-r--r--contrib/bc/tests/bc/all.txt131
-rw-r--r--contrib/bc/tests/bc/errors/39.txt1
-rw-r--r--contrib/bc/tests/bc/lib2.txt477
-rw-r--r--contrib/bc/tests/bc/lib2_a2.txt18
-rw-r--r--contrib/bc/tests/bc/lib2_a2_results.txt18
-rw-r--r--contrib/bc/tests/bc/lib2_bytes.txt46
-rw-r--r--contrib/bc/tests/bc/lib2_bytes_results.txt46
-rw-r--r--contrib/bc/tests/bc/lib2_ceil.txt24
-rw-r--r--contrib/bc/tests/bc/lib2_ceil_results.txt24
-rw-r--r--contrib/bc/tests/bc/lib2_d2r.txt16
-rw-r--r--contrib/bc/tests/bc/lib2_d2r_results.txt16
-rw-r--r--contrib/bc/tests/bc/lib2_fac.txt6
-rw-r--r--contrib/bc/tests/bc/lib2_fac_results.txt6
-rw-r--r--contrib/bc/tests/bc/lib2_gcd.txt7
-rw-r--r--contrib/bc/tests/bc/lib2_gcd_results.txt7
-rw-r--r--contrib/bc/tests/bc/lib2_log.txt32
-rw-r--r--contrib/bc/tests/bc/lib2_log_results.txt32
-rw-r--r--contrib/bc/tests/bc/lib2_p.txt4
-rw-r--r--contrib/bc/tests/bc/lib2_p_results.txt5
-rw-r--r--contrib/bc/tests/bc/lib2_perm.txt9
-rw-r--r--contrib/bc/tests/bc/lib2_perm_results.txt8
-rw-r--r--contrib/bc/tests/bc/lib2_pi.txt5
-rw-r--r--contrib/bc/tests/bc/lib2_pi_results.txt6
-rw-r--r--contrib/bc/tests/bc/lib2_r.txt23
-rw-r--r--contrib/bc/tests/bc/lib2_r2d.txt17
-rw-r--r--contrib/bc/tests/bc/lib2_r2d_results.txt16
-rw-r--r--contrib/bc/tests/bc/lib2_r_results.txt23
-rw-r--r--contrib/bc/tests/bc/lib2_rand.txt11
-rw-r--r--contrib/bc/tests/bc/lib2_rand_results.txt7
-rw-r--r--contrib/bc/tests/bc/lib2_root.txt13
-rw-r--r--contrib/bc/tests/bc/lib2_root_results.txt13
-rw-r--r--contrib/bc/tests/bc/lib2_tan.txt30
-rw-r--r--contrib/bc/tests/bc/lib2_tan_results.txt29
-rw-r--r--contrib/bc/tests/bc/lib2_uint.txt218
-rw-r--r--contrib/bc/tests/bc/lib2_uint_results.txt (renamed from contrib/bc/tests/bc/lib2_results.txt)256
-rw-r--r--contrib/bc/tests/bc/scripts/add_00100.bc (renamed from contrib/bc/tests/bc/scripts/add.bc)2
-rw-r--r--contrib/bc/tests/bc/scripts/add_00200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_00900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_01900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_02900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_03900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_04900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_05900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_06900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_07900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_08900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_09900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/add_10000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/all.txt406
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00100.bc (renamed from contrib/bc/tests/bc/scripts/divide.bc)2
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_00900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_01900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_02900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_03900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_04900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_05900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_06900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_07900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_08900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09100.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09200.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09300.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09400.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09500.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09600.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09700.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09800.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_09900.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/divide_10000.bc23
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00100.bc (renamed from contrib/bc/tests/bc/scripts/multiply.bc)2
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_00900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_01900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_02900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_03900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_04900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_05900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_06900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_07900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_08900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09100.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09200.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09300.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09400.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09500.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09600.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09700.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09800.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_09900.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/multiply_10000.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/parse.bc20
-rw-r--r--contrib/bc/tests/bc/scripts/parse_02.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_03.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_04.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_05.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_06.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_07.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_08.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_09.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_11.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_12.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_13.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_14.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_15.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/parse_16.bc19
-rw-r--r--contrib/bc/tests/bc/scripts/print.bc25
-rw-r--r--contrib/bc/tests/bc/scripts/print_002.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_003.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_004.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_005.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_006.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_007.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_008.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_009.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_011.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_012.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_013.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_014.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_015.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_016.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_017.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_018.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_019.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_020.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_021.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_022.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_023.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_024.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_025.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_026.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_027.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_028.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_029.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_030.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_031.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_032.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_033.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_034.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_035.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_036.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_037.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_038.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_039.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_040.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_041.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_042.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_043.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_044.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_045.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_046.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_047.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_048.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_049.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_050.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_051.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_052.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_053.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_054.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_055.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_056.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_057.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_058.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_059.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_060.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_061.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_062.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_063.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_064.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_065.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_066.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_067.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_068.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_069.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_070.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_071.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_072.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_073.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_074.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_075.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_076.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_077.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_078.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_079.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_080.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_081.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_082.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_083.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_084.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_085.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_086.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_087.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_088.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_089.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_090.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_091.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_092.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_093.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_094.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_095.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_096.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_097.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_098.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_099.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/print_100.bc22
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00100.bc (renamed from contrib/bc/tests/bc/scripts/subtract.bc)2
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_00900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_01900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_02900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_03900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_04900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_05900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_06900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_07900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_08900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09000.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09100.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09200.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09300.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09400.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09500.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09600.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09700.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09800.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_09900.bc17
-rw-r--r--contrib/bc/tests/bc/scripts/subtract_10000.bc17
-rwxr-xr-xcontrib/bc/tests/bc/timeconst.sh5
-rw-r--r--contrib/bc/tests/bcl.c2
-rw-r--r--contrib/bc/tests/dc/scripts/easter.dc49
-rwxr-xr-xcontrib/bc/tests/dc/scripts/easter.sh93
-rw-r--r--contrib/bc/tests/dc/scripts/easter.txt5
-rw-r--r--contrib/bc/tests/dc/scripts/prime.dc2
-rwxr-xr-xcontrib/bc/tests/error.sh4
-rwxr-xr-xcontrib/bc/tests/errors.sh4
-rw-r--r--contrib/bc/tests/extra_required.txt17
-rwxr-xr-xcontrib/bc/tests/history.py4
-rwxr-xr-xcontrib/bc/tests/history.sh2
-rwxr-xr-xcontrib/bc/tests/other.sh593
-rwxr-xr-xcontrib/bc/tests/read.sh166
-rwxr-xr-xcontrib/bc/tests/script.sh25
-rwxr-xr-xcontrib/bc/tests/scripts.sh17
-rwxr-xr-xcontrib/bc/tests/stdin.sh2
-rwxr-xr-xcontrib/bc/tests/test.sh24
568 files changed, 11416 insertions, 1744 deletions
diff --git a/contrib/bc/tests/all.sh b/contrib/bc/tests/all.sh
index 28631c048e71..d5d084341e36 100755
--- a/contrib/bc/tests/all.sh
+++ b/contrib/bc/tests/all.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -39,7 +39,7 @@ usage() {
if [ $# -eq 1 ]; then
printf '%s\n\n' "$1"
fi
- print 'usage: %s [-n] dir [run_extra_tests] [run_stack_tests] [gen_tests] [run_problematic_tests] [time_tests] [exec args...]\n' \
+ print 'usage: %s [-n] dir [run_extra_tests] [run_stack_tests] [gen_tests] [run_problematic_tests] [exec args...]\n' \
"$script"
exit 1
}
@@ -103,15 +103,6 @@ else
fi
if [ "$#" -lt 1 ]; then
- time_tests=0
- check_bool_arg "$time_tests"
-else
- time_tests="$1"
- shift
- check_bool_arg "$time_tests"
-fi
-
-if [ "$#" -lt 1 ]; then
exe="$testdir/../bin/$d"
check_exec_arg "$exe"
else
@@ -155,10 +146,10 @@ while read t; do
fi
if [ "$pll" -ne 0 ]; then
- sh "$testdir/test.sh" "$d" "$t" "$generate_tests" "$time_tests" "$exe" "$@" &
+ sh "$testdir/test.sh" "$d" "$t" "$generate_tests" "$exe" "$@" &
pids="$pids $!"
else
- sh "$testdir/test.sh" "$d" "$t" "$generate_tests" "$time_tests" "$exe" "$@"
+ sh "$testdir/test.sh" "$d" "$t" "$generate_tests" "$exe" "$@"
fi
done < "$testdir/$d/all.txt"
@@ -174,19 +165,11 @@ fi
# Script tests.
if [ "$pll" -ne 0 ]; then
sh "$testdir/scripts.sh" "$d" "$extra" "$run_stack_tests" "$generate_tests" \
- "$time_tests" "$exe" "$@" &
+ "$exe" "$@" &
pids="$pids $!"
else
sh "$testdir/scripts.sh" -n "$d" "$extra" "$run_stack_tests" "$generate_tests" \
- "$time_tests" "$exe" "$@"
-fi
-
-# Read tests.
-if [ "$pll" -ne 0 ]; then
- sh "$testdir/read.sh" "$d" "$exe" "$@" &
- pids="$pids $!"
-else
- sh "$testdir/read.sh" "$d" "$exe" "$@"
+ "$exe" "$@"
fi
# Error tests.
@@ -198,8 +181,9 @@ else
fi
# Test all the files in the errors directory. While the other error test (in
-# tests/errors.sh) does a test for every line, this does one test per file, but
-# it runs the file through stdin and as a file on the command-line.
+# tests/errors.sh) does a test for every line of certain error files in the main
+# directory, this does one test per file in the errors directory, but it runs
+# the file through stdin and as a file on the command-line.
for testfile in $testdir/$d/errors/*.txt; do
b=$(basename "$testfile")
@@ -213,14 +197,6 @@ for testfile in $testdir/$d/errors/*.txt; do
done
-# Other tests.
-if [ "$pll" -ne 0 ]; then
- sh "$testdir/other.sh" "$d" "$extra" "$exe" "$@" &
- pids="$pids $!"
-else
- sh "$testdir/other.sh" "$d" "$extra" "$exe" "$@"
-fi
-
if [ "$pll" -ne 0 ]; then
exit_err=0
diff --git a/contrib/bc/tests/bc/all.txt b/contrib/bc/tests/bc/all.txt
index c710534aac1b..2fd582118adb 100644
--- a/contrib/bc/tests/bc/all.txt
+++ b/contrib/bc/tests/bc/all.txt
@@ -1,7 +1,132 @@
decimal
-print
-parse
-lib2
+print_002
+print_003
+print_004
+print_005
+print_006
+print_007
+print_008
+print_009
+print_011
+print_012
+print_013
+print_014
+print_015
+print_016
+print_017
+print_018
+print_019
+print_020
+print_021
+print_022
+print_023
+print_024
+print_025
+print_026
+print_027
+print_028
+print_029
+print_030
+print_031
+print_032
+print_033
+print_034
+print_035
+print_036
+print_037
+print_038
+print_039
+print_040
+print_041
+print_042
+print_043
+print_044
+print_045
+print_046
+print_047
+print_048
+print_049
+print_050
+print_051
+print_052
+print_053
+print_054
+print_055
+print_056
+print_057
+print_058
+print_059
+print_060
+print_061
+print_062
+print_063
+print_064
+print_065
+print_066
+print_067
+print_068
+print_069
+print_070
+print_071
+print_072
+print_073
+print_074
+print_075
+print_076
+print_077
+print_078
+print_079
+print_080
+print_081
+print_082
+print_083
+print_084
+print_085
+print_086
+print_087
+print_088
+print_089
+print_090
+print_091
+print_092
+print_093
+print_094
+print_095
+print_096
+print_097
+print_098
+print_099
+print_100
+parse_02
+parse_03
+parse_04
+parse_05
+parse_06
+parse_07
+parse_08
+parse_09
+parse_11
+parse_12
+parse_13
+parse_14
+parse_15
+parse_16
+lib2_p
+lib2_r
+lib2_ceil
+lib2_log
+lib2_root
+lib2_gcd
+lib2_bytes
+lib2_pi
+lib2_tan
+lib2_a2
+lib2_r2d
+lib2_d2r
+lib2_fac
+lib2_perm
+lib2_uint
+lib2_rand
print2
length
scale
diff --git a/contrib/bc/tests/bc/errors/39.txt b/contrib/bc/tests/bc/errors/39.txt
new file mode 100644
index 000000000000..104d16136b22
--- /dev/null
+++ b/contrib/bc/tests/bc/errors/39.txt
@@ -0,0 +1 @@
+define a(*t[], t[]) {}
diff --git a/contrib/bc/tests/bc/lib2.txt b/contrib/bc/tests/bc/lib2.txt
deleted file mode 100644
index 74e1256d7bbf..000000000000
--- a/contrib/bc/tests/bc/lib2.txt
+++ /dev/null
@@ -1,477 +0,0 @@
-p(2, 8.0000)
-p(2, 8.0001)
-p(2, -8.0001)
-p(1024,32.1)
-r(0, 0)
-r(0, 1)
-r(0, 100)
-r(1, 0)
-r(1, 3)
-r(1.4, 0)
-r(1.5, 0)
-r(34.45, 2)
-r(64.1223, 4)
-r(283.1983893, 6)
-r(283.1983895, 6)
-r(283.1983899, 6)
-r(99.999999999, 5)
-r(-1, 0)
-r(-1, 3)
-r(-1.4, 0)
-r(-1.5, 0)
-r(-34.45, 2)
-r(-64.1223, 4)
-r(-283.1983893, 6)
-r(-283.1983895, 6)
-r(-283.1983899, 6)
-r(-99.999999999, 5)
-ceil(0, 0)
-ceil(0, 1)
-ceil(0, 100)
-ceil(1, 0)
-ceil(1, 3)
-ceil(1.4, 0)
-ceil(1.5, 0)
-ceil(34.45, 2)
-ceil(64.1223, 4)
-ceil(283.1983893, 6)
-ceil(283.1983895, 6)
-ceil(283.1983899, 6)
-ceil(99.999999999, 5)
-ceil(-1, 0)
-ceil(-1, 3)
-ceil(-1.4, 0)
-ceil(-1.5, 0)
-ceil(-34.45, 2)
-ceil(-64.1223, 4)
-ceil(-283.1983893, 6)
-ceil(-283.1983895, 6)
-ceil(-283.1983899, 6)
-ceil(-99.999999999, 5)
-ceil(8770735.0705156250000000000, 0)
-l2(0)
-l2(1)
-l2(2)
-l2(7)
-l2(7.9999999999999999999999)
-l2(8)
-l10(0)
-l10(1)
-l10(2)
-l10(5)
-l10(9)
-l10(9.999999999999999999999)
-l10(10)
-l10(11)
-l10(99)
-l10(99.99999999999999999999)
-l10(100)
-l2(-1)
-l2(-2)
-l2(-7)
-l2(-7.9999999999999999999999)
-l2(-8)
-l10(-1)
-l10(-2)
-l10(-5)
-l10(-9)
-l10(-9.999999999999999999999)
-l10(-10)
-l10(-11)
-l10(-99)
-l10(-99.99999999999999999999)
-l10(-100)
-cbrt(27)
-cbrt(-27)
-cbrt(4096)
-cbrt(-4096)
-root(0, 3)
-root(0, 4)
-root(0, 5)
-root(0.0000000000000, 3)
-root(0.0000000000000, 4)
-root(0.0000000000000, 5)
-root(16, 4)
-root(3125, 5)
-root(-3125, 5)
-gcd(285, 35)
-gcd(1, 6)
-gcd(5, 1)
-gcd(8, 12)
-gcd(40, 4096)
-lcm(40, 4096)
-lcm(555, 55)
-ubytes(0)
-ubytes(1)
-ubytes(2)
-ubytes(254)
-ubytes(255)
-ubytes(256)
-ubytes(65535)
-ubytes(65536)
-ubytes(131072)
-ubytes(4294967295)
-ubytes(4294967296)
-ubytes(18446744073709551615)
-ubytes(18446744073709551616)
-sbytes(0)
-sbytes(1)
-sbytes(-1)
-sbytes(2)
-sbytes(127)
-sbytes(128)
-sbytes(-127)
-sbytes(-128)
-sbytes(-129)
-sbytes(254)
-sbytes(255)
-sbytes(256)
-sbytes(32767)
-sbytes(32768)
-sbytes(-32767)
-sbytes(-32768)
-sbytes(65535)
-sbytes(65536)
-sbytes(131072)
-sbytes(2147483647)
-sbytes(2147483648)
-sbytes(2147483649)
-sbytes(-2147483647)
-sbytes(-2147483648)
-sbytes(-2147483649)
-sbytes(4294967295)
-sbytes(4294967296)
-sbytes(9223372036854775807)
-sbytes(9223372036854775808)
-sbytes(9223372036854775809)
-sbytes(-9223372036854775807)
-sbytes(-9223372036854775808)
-sbytes(-9223372036854775809)
-pi(0)
-pi(1)
-pi(2)
-pi(5)
-pi(100)
-p=pi(100)
-t(0)
-t(1)
-t(-1)
-t(2)
-t(-2)
-t(3)
-t(-3)
-t(p)
-t(-p)
-t(p/2)
-t(-p/2)
-t(p/3)
-t(-p/3)
-t(p/4)
-t(-p/4)
-t(p/5)
-t(-p/5)
-t(p/6)
-t(-p/6)
-t(p/7)
-t(-p/7)
-t(p/8)
-t(-p/8)
-t(p/9)
-t(-p/9)
-t(p/10)
-t(-p/10)
-t(p/15)
-t(-p/15)
-a2(0, 1)
-a2(1, 1)
-a2(2, 1)
-a2(1, 2)
-a2(0, -1)
-a2(1, -1)
-a2(2, -1)
-a2(1, -2)
-a2(-1, 1)
-a2(-2, 1)
-a2(-1, 2)
-a2(-1, -1)
-a2(-2, -1)
-a2(-1, -2)
-a2(1, 0)
-a2(2, 0)
-a2(-1, 0)
-a2(-2, 0)
-r2d(p)
-r2d(2 * p)
-r2d(p / 2)
-r2d(p / 4)
-r2d(p / 3)
-r2d(p / 5)
-r2d(p / 6)
-r2d(p / 10)
-r2d(-p)
-r2d(2 * -p)
-r2d(-p / 2)
-r2d(-p / 4)
-r2d(-p / 3)
-r2d(-p / 5)
-r2d(-p / 6)
-r2d(-p / 10)
-d2r(180)
-d2r(360)
-d2r(90)
-d2r(45)
-d2r(120)
-d2r(72)
-d2r(60)
-d2r(36)
-d2r(-180)
-d2r(-360)
-d2r(-90)
-d2r(-45)
-d2r(-120)
-d2r(-72)
-d2r(-60)
-d2r(-36)
-f(0)
-f(1)
-f(2)
-f(3)
-f(4)
-f(5)
-perm(10, 2)
-comb(10, 2)
-perm(6, 2)
-comb(6, 2)
-perm(12, 10)
-comb(12, 10)
-perm(24, 15)
-comb(24, 15)
-binary(0)
-hex(0)
-binary(1)
-hex(1)
-binary(2)
-hex(2)
-binary(15)
-hex(15)
-binary(16)
-hex(16)
-uint(0)
-int(0)
-uint(1)
-int(1)
-int(-1)
-uint(127)
-int(127)
-int(-127)
-uint(128)
-int(128)
-int(-128)
-uint(129)
-int(129)
-int(-129)
-uint(255)
-int(255)
-int(-255)
-uint(256)
-int(256)
-int(-256)
-uint(32767)
-int(32767)
-int(-32767)
-uint(32768)
-int(32768)
-int(-32768)
-uint(32769)
-int(32769)
-int(-32769)
-uint(65535)
-int(65535)
-int(-65535)
-uint(65536)
-int(65536)
-int(-65536)
-uint(2147483647)
-int(2147483647)
-int(-2147483647)
-uint(2147483648)
-int(2147483648)
-int(-2147483648)
-uint(2147483649)
-int(2147483649)
-int(-2147483649)
-uint(4294967295)
-int(4294967295)
-int(-4294967295)
-uint(4294967296)
-int(4294967296)
-int(-4294967296)
-uint8(0)
-int8(0)
-uint16(0)
-int16(0)
-uint32(0)
-int32(0)
-uint64(0)
-int64(0)
-uint8(1)
-int8(1)
-int8(-1)
-uint16(1)
-int16(1)
-int16(-1)
-uint32(1)
-int32(1)
-int32(-1)
-uint64(1)
-int64(1)
-int64(-1)
-uint8(127)
-int8(127)
-int8(-127)
-uint16(127)
-int16(127)
-int16(-127)
-uint32(127)
-int32(127)
-int32(-127)
-uint64(127)
-int64(127)
-int64(-127)
-uint8(128)
-int8(128)
-int8(-128)
-uint16(128)
-int16(128)
-int16(-128)
-uint32(128)
-int32(128)
-int32(-128)
-uint64(128)
-int64(128)
-int64(-128)
-uint8(129)
-int8(129)
-int8(-129)
-uint16(129)
-int16(129)
-int16(-129)
-uint32(129)
-int32(129)
-int32(-129)
-uint64(129)
-int64(129)
-int64(-129)
-uint8(255)
-int8(255)
-int8(-255)
-uint16(255)
-int16(255)
-int16(-255)
-uint32(255)
-int32(255)
-int32(-255)
-uint64(255)
-int64(255)
-int64(-255)
-uint8(256)
-int8(256)
-int8(-256)
-uint16(256)
-int16(256)
-int16(-256)
-uint32(256)
-int32(256)
-int32(-256)
-uint64(256)
-int64(256)
-int64(-256)
-uint16(32767)
-int16(32767)
-int16(-32767)
-uint32(32767)
-int32(32767)
-int32(-32767)
-uint64(32767)
-int64(32767)
-int64(-32767)
-uint16(32768)
-int16(32768)
-int16(-32768)
-uint32(32768)
-int32(32768)
-int32(-32768)
-uint64(32768)
-int64(32768)
-int64(-32768)
-uint16(32769)
-int16(32769)
-int16(-32769)
-uint32(32769)
-int32(32769)
-int32(-32769)
-uint64(32769)
-int64(32769)
-int64(-32769)
-uint16(65535)
-int16(65535)
-int16(-65535)
-uint32(65535)
-int32(65535)
-int32(-65535)
-uint64(65535)
-int64(65535)
-int64(-65535)
-uint16(65536)
-int16(65536)
-int16(-65536)
-uint32(65536)
-int32(65536)
-int32(-65536)
-uint64(65536)
-int64(65536)
-int64(-65536)
-uint32(2147483647)
-int32(2147483647)
-int32(-2147483647)
-uint64(2147483647)
-int64(2147483647)
-int64(-2147483647)
-uint32(2147483648)
-int32(2147483648)
-int32(-2147483648)
-uint64(2147483648)
-int64(2147483648)
-int64(-2147483648)
-uint32(2147483649)
-int32(2147483649)
-int32(-2147483649)
-uint64(2147483649)
-int64(2147483649)
-int64(-2147483649)
-uint32(4294967295)
-int32(4294967295)
-int32(-4294967295)
-uint64(4294967295)
-int64(4294967295)
-int64(-4294967295)
-uint32(4294967296)
-int32(4294967296)
-int32(-4294967296)
-uint64(4294967296)
-int64(4294967296)
-int64(-4294967296)
-uint(-3)
-uint(3.928375)
-int(4.000000)
-b = brand()
-b < 2
-b >= 0
-i = irand(maxrand() + 1)
-i <= maxrand()
-i >= 0
-f = frand(10)
-scale(f) == 10
-fi = ifrand(123, 28)
-scale(fi) == 28
-fi < 128
diff --git a/contrib/bc/tests/bc/lib2_a2.txt b/contrib/bc/tests/bc/lib2_a2.txt
new file mode 100644
index 000000000000..a0b24942676d
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_a2.txt
@@ -0,0 +1,18 @@
+a2(0, 1)
+a2(1, 1)
+a2(2, 1)
+a2(1, 2)
+a2(0, -1)
+a2(1, -1)
+a2(2, -1)
+a2(1, -2)
+a2(-1, 1)
+a2(-2, 1)
+a2(-1, 2)
+a2(-1, -1)
+a2(-2, -1)
+a2(-1, -2)
+a2(1, 0)
+a2(2, 0)
+a2(-1, 0)
+a2(-2, 0)
diff --git a/contrib/bc/tests/bc/lib2_a2_results.txt b/contrib/bc/tests/bc/lib2_a2_results.txt
new file mode 100644
index 000000000000..4915b6ad142e
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_a2_results.txt
@@ -0,0 +1,18 @@
+0
+.78539816339744830961
+1.10714871779409050301
+.46364760900080611621
+3.14159265358979323846
+2.35619449019234492884
+2.03444393579570273544
+2.67794504458898712224
+-.78539816339744830961
+-1.10714871779409050301
+-.46364760900080611621
+-2.35619449019234492884
+-2.03444393579570273544
+-2.67794504458898712224
+1.57079632679489661923
+1.57079632679489661923
+-1.57079632679489661923
+-1.57079632679489661923
diff --git a/contrib/bc/tests/bc/lib2_bytes.txt b/contrib/bc/tests/bc/lib2_bytes.txt
new file mode 100644
index 000000000000..79183d7a88b0
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_bytes.txt
@@ -0,0 +1,46 @@
+ubytes(0)
+ubytes(1)
+ubytes(2)
+ubytes(254)
+ubytes(255)
+ubytes(256)
+ubytes(65535)
+ubytes(65536)
+ubytes(131072)
+ubytes(4294967295)
+ubytes(4294967296)
+ubytes(18446744073709551615)
+ubytes(18446744073709551616)
+sbytes(0)
+sbytes(1)
+sbytes(-1)
+sbytes(2)
+sbytes(127)
+sbytes(128)
+sbytes(-127)
+sbytes(-128)
+sbytes(-129)
+sbytes(254)
+sbytes(255)
+sbytes(256)
+sbytes(32767)
+sbytes(32768)
+sbytes(-32767)
+sbytes(-32768)
+sbytes(65535)
+sbytes(65536)
+sbytes(131072)
+sbytes(2147483647)
+sbytes(2147483648)
+sbytes(2147483649)
+sbytes(-2147483647)
+sbytes(-2147483648)
+sbytes(-2147483649)
+sbytes(4294967295)
+sbytes(4294967296)
+sbytes(9223372036854775807)
+sbytes(9223372036854775808)
+sbytes(9223372036854775809)
+sbytes(-9223372036854775807)
+sbytes(-9223372036854775808)
+sbytes(-9223372036854775809)
diff --git a/contrib/bc/tests/bc/lib2_bytes_results.txt b/contrib/bc/tests/bc/lib2_bytes_results.txt
new file mode 100644
index 000000000000..494be6df11f6
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_bytes_results.txt
@@ -0,0 +1,46 @@
+1
+1
+1
+1
+1
+2
+2
+4
+4
+4
+8
+8
+16
+1
+1
+1
+1
+1
+2
+1
+1
+2
+2
+2
+2
+2
+4
+2
+2
+4
+4
+4
+4
+8
+8
+4
+4
+8
+8
+8
+8
+16
+16
+8
+8
+16
diff --git a/contrib/bc/tests/bc/lib2_ceil.txt b/contrib/bc/tests/bc/lib2_ceil.txt
new file mode 100644
index 000000000000..6da43cc70822
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_ceil.txt
@@ -0,0 +1,24 @@
+ceil(0, 0)
+ceil(0, 1)
+ceil(0, 100)
+ceil(1, 0)
+ceil(1, 3)
+ceil(1.4, 0)
+ceil(1.5, 0)
+ceil(34.45, 2)
+ceil(64.1223, 4)
+ceil(283.1983893, 6)
+ceil(283.1983895, 6)
+ceil(283.1983899, 6)
+ceil(99.999999999, 5)
+ceil(-1, 0)
+ceil(-1, 3)
+ceil(-1.4, 0)
+ceil(-1.5, 0)
+ceil(-34.45, 2)
+ceil(-64.1223, 4)
+ceil(-283.1983893, 6)
+ceil(-283.1983895, 6)
+ceil(-283.1983899, 6)
+ceil(-99.999999999, 5)
+ceil(8770735.0705156250000000000, 0)
diff --git a/contrib/bc/tests/bc/lib2_ceil_results.txt b/contrib/bc/tests/bc/lib2_ceil_results.txt
new file mode 100644
index 000000000000..2e9ba9c25022
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_ceil_results.txt
@@ -0,0 +1,24 @@
+0
+0
+0
+1
+1.000
+2
+2
+34.45
+64.1223
+283.198390
+283.198390
+283.198390
+100.00000
+-1
+-1.000
+-2
+-2
+-34.45
+-64.1223
+-283.198390
+-283.198390
+-283.198390
+-100.00000
+8770736
diff --git a/contrib/bc/tests/bc/lib2_d2r.txt b/contrib/bc/tests/bc/lib2_d2r.txt
new file mode 100644
index 000000000000..dd908be8ec43
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_d2r.txt
@@ -0,0 +1,16 @@
+d2r(180)
+d2r(360)
+d2r(90)
+d2r(45)
+d2r(120)
+d2r(72)
+d2r(60)
+d2r(36)
+d2r(-180)
+d2r(-360)
+d2r(-90)
+d2r(-45)
+d2r(-120)
+d2r(-72)
+d2r(-60)
+d2r(-36)
diff --git a/contrib/bc/tests/bc/lib2_d2r_results.txt b/contrib/bc/tests/bc/lib2_d2r_results.txt
new file mode 100644
index 000000000000..a64165087783
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_d2r_results.txt
@@ -0,0 +1,16 @@
+3.14159265358979323846
+6.28318530717958647692
+1.57079632679489661923
+.78539816339744830961
+2.09439510239319549230
+1.25663706143591729538
+1.04719755119659774615
+.62831853071795864769
+-3.14159265358979323846
+-6.28318530717958647692
+-1.57079632679489661923
+-.78539816339744830961
+-2.09439510239319549230
+-1.25663706143591729538
+-1.04719755119659774615
+-.62831853071795864769
diff --git a/contrib/bc/tests/bc/lib2_fac.txt b/contrib/bc/tests/bc/lib2_fac.txt
new file mode 100644
index 000000000000..1da42385ea44
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_fac.txt
@@ -0,0 +1,6 @@
+f(0)
+f(1)
+f(2)
+f(3)
+f(4)
+f(5)
diff --git a/contrib/bc/tests/bc/lib2_fac_results.txt b/contrib/bc/tests/bc/lib2_fac_results.txt
new file mode 100644
index 000000000000..b1fa2729fd55
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_fac_results.txt
@@ -0,0 +1,6 @@
+1
+1
+2
+6
+24
+120
diff --git a/contrib/bc/tests/bc/lib2_gcd.txt b/contrib/bc/tests/bc/lib2_gcd.txt
new file mode 100644
index 000000000000..e7e69a65a841
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_gcd.txt
@@ -0,0 +1,7 @@
+gcd(285, 35)
+gcd(1, 6)
+gcd(5, 1)
+gcd(8, 12)
+gcd(40, 4096)
+lcm(40, 4096)
+lcm(555, 55)
diff --git a/contrib/bc/tests/bc/lib2_gcd_results.txt b/contrib/bc/tests/bc/lib2_gcd_results.txt
new file mode 100644
index 000000000000..952305d197ff
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_gcd_results.txt
@@ -0,0 +1,7 @@
+5
+1
+1
+4
+8
+20480
+6105
diff --git a/contrib/bc/tests/bc/lib2_log.txt b/contrib/bc/tests/bc/lib2_log.txt
new file mode 100644
index 000000000000..8b5c62e6d71a
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_log.txt
@@ -0,0 +1,32 @@
+l2(0)
+l2(1)
+l2(2)
+l2(7)
+l2(7.9999999999999999999999)
+l2(8)
+l10(0)
+l10(1)
+l10(2)
+l10(5)
+l10(9)
+l10(9.999999999999999999999)
+l10(10)
+l10(11)
+l10(99)
+l10(99.99999999999999999999)
+l10(100)
+l2(-1)
+l2(-2)
+l2(-7)
+l2(-7.9999999999999999999999)
+l2(-8)
+l10(-1)
+l10(-2)
+l10(-5)
+l10(-9)
+l10(-9.999999999999999999999)
+l10(-10)
+l10(-11)
+l10(-99)
+l10(-99.99999999999999999999)
+l10(-100)
diff --git a/contrib/bc/tests/bc/lib2_log_results.txt b/contrib/bc/tests/bc/lib2_log_results.txt
new file mode 100644
index 000000000000..05e0c2b0209a
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_log_results.txt
@@ -0,0 +1,32 @@
+-14426950408889634073599246810018921374265.01964302164603717234
+0
+1.00000000000000000000
+2.80735492205760410744
+2.99999999999999999999
+3.00000000000000000000
+-4342944819032518276511289189166050822943.53857128275332257904
+0
+.30102999566398119521
+.69897000433601880478
+.95424250943932487459
+.99999999999999999999
+1.00000000000000000000
+1.04139268515822504075
+1.99563519459754991534
+1.99999999999999999999
+2.00000000000000000000
+-14426950408889634073599246810018921374265.01964302164603717234
+-14426950408889634073599246810018921374265.01964302164603717234
+-14426950408889634073599246810018921374265.01964302164603717234
+-144269504088896340735992468100189213742664594.88013355604393225658
+-14426950408889634073599246810018921374265.01964302164603717234
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
+-434294481903251827651128918916605082294396.66367028674257491242
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
+-4342944819032518276511289189166050822943.53857128275332257904
diff --git a/contrib/bc/tests/bc/lib2_p.txt b/contrib/bc/tests/bc/lib2_p.txt
new file mode 100644
index 000000000000..7026d5812845
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_p.txt
@@ -0,0 +1,4 @@
+p(2, 8.0000)
+p(2, 8.0001)
+p(2, -8.0001)
+p(1024,32.1)
diff --git a/contrib/bc/tests/bc/lib2_p_results.txt b/contrib/bc/tests/bc/lib2_p_results.txt
new file mode 100644
index 000000000000..54089deab2b4
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_p_results.txt
@@ -0,0 +1,5 @@
+256.00000000000000000000
+256.01774518281640171326
+.00390597924876622489
+42719740718418201647900434123391042292054090447133055398940832156444\
+39451561281100045924173873151.99999999999999999999
diff --git a/contrib/bc/tests/bc/lib2_perm.txt b/contrib/bc/tests/bc/lib2_perm.txt
new file mode 100644
index 000000000000..84fe6afd1e52
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_perm.txt
@@ -0,0 +1,9 @@
+perm(10, 2)
+comb(10, 2)
+perm(6, 2)
+comb(6, 2)
+perm(12, 10)
+comb(12, 10)
+perm(24, 15)
+comb(24, 15)
+
diff --git a/contrib/bc/tests/bc/lib2_perm_results.txt b/contrib/bc/tests/bc/lib2_perm_results.txt
new file mode 100644
index 000000000000..bf57dc0ea5f8
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_perm_results.txt
@@ -0,0 +1,8 @@
+90
+45
+30
+15
+239500800
+66
+1709789466857472000
+1307504
diff --git a/contrib/bc/tests/bc/lib2_pi.txt b/contrib/bc/tests/bc/lib2_pi.txt
new file mode 100644
index 000000000000..25bef3101e0b
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_pi.txt
@@ -0,0 +1,5 @@
+pi(0)
+pi(1)
+pi(2)
+pi(5)
+pi(100)
diff --git a/contrib/bc/tests/bc/lib2_pi_results.txt b/contrib/bc/tests/bc/lib2_pi_results.txt
new file mode 100644
index 000000000000..90975cb6a726
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_pi_results.txt
@@ -0,0 +1,6 @@
+3
+3.1
+3.14
+3.14159
+3.141592653589793238462643383279502884197169399375105820974944592307\
+8164062862089986280348253421170679
diff --git a/contrib/bc/tests/bc/lib2_r.txt b/contrib/bc/tests/bc/lib2_r.txt
new file mode 100644
index 000000000000..2f82d85d9042
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_r.txt
@@ -0,0 +1,23 @@
+r(0, 0)
+r(0, 1)
+r(0, 100)
+r(1, 0)
+r(1, 3)
+r(1.4, 0)
+r(1.5, 0)
+r(34.45, 2)
+r(64.1223, 4)
+r(283.1983893, 6)
+r(283.1983895, 6)
+r(283.1983899, 6)
+r(99.999999999, 5)
+r(-1, 0)
+r(-1, 3)
+r(-1.4, 0)
+r(-1.5, 0)
+r(-34.45, 2)
+r(-64.1223, 4)
+r(-283.1983893, 6)
+r(-283.1983895, 6)
+r(-283.1983899, 6)
+r(-99.999999999, 5)
diff --git a/contrib/bc/tests/bc/lib2_r2d.txt b/contrib/bc/tests/bc/lib2_r2d.txt
new file mode 100644
index 000000000000..904e55df9cd1
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_r2d.txt
@@ -0,0 +1,17 @@
+p=pi(100)
+r2d(p)
+r2d(2 * p)
+r2d(p / 2)
+r2d(p / 4)
+r2d(p / 3)
+r2d(p / 5)
+r2d(p / 6)
+r2d(p / 10)
+r2d(-p)
+r2d(2 * -p)
+r2d(-p / 2)
+r2d(-p / 4)
+r2d(-p / 3)
+r2d(-p / 5)
+r2d(-p / 6)
+r2d(-p / 10)
diff --git a/contrib/bc/tests/bc/lib2_r2d_results.txt b/contrib/bc/tests/bc/lib2_r2d_results.txt
new file mode 100644
index 000000000000..38abe6dfdd52
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_r2d_results.txt
@@ -0,0 +1,16 @@
+180.00000000000000000000
+360.00000000000000000000
+89.99999999999999999992
+44.99999999999999999967
+59.99999999999999999975
+35.99999999999999999985
+29.99999999999999999959
+17.99999999999999999964
+-180.00000000000000000000
+-360.00000000000000000000
+-89.99999999999999999992
+-44.99999999999999999967
+-59.99999999999999999975
+-35.99999999999999999985
+-29.99999999999999999959
+-17.99999999999999999964
diff --git a/contrib/bc/tests/bc/lib2_r_results.txt b/contrib/bc/tests/bc/lib2_r_results.txt
new file mode 100644
index 000000000000..4ae686836a41
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_r_results.txt
@@ -0,0 +1,23 @@
+0
+0
+0
+1
+1.000
+1
+2
+34.45
+64.1223
+283.198389
+283.198390
+283.198390
+100.00000
+-1
+-1.000
+-1
+-2
+-34.45
+-64.1223
+-283.198389
+-283.198390
+-283.198390
+-100.00000
diff --git a/contrib/bc/tests/bc/lib2_rand.txt b/contrib/bc/tests/bc/lib2_rand.txt
new file mode 100644
index 000000000000..a9d94509c79f
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_rand.txt
@@ -0,0 +1,11 @@
+b = brand()
+b < 2
+b >= 0
+i = irand(maxrand() + 1)
+i <= maxrand()
+i >= 0
+f = frand(10)
+scale(f) == 10
+fi = ifrand(123, 28)
+scale(fi) == 28
+fi < 128
diff --git a/contrib/bc/tests/bc/lib2_rand_results.txt b/contrib/bc/tests/bc/lib2_rand_results.txt
new file mode 100644
index 000000000000..fcb49fa99454
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_rand_results.txt
@@ -0,0 +1,7 @@
+1
+1
+1
+1
+1
+1
+1
diff --git a/contrib/bc/tests/bc/lib2_root.txt b/contrib/bc/tests/bc/lib2_root.txt
new file mode 100644
index 000000000000..6a0558414c44
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_root.txt
@@ -0,0 +1,13 @@
+cbrt(27)
+cbrt(-27)
+cbrt(4096)
+cbrt(-4096)
+root(0, 3)
+root(0, 4)
+root(0, 5)
+root(0.0000000000000, 3)
+root(0.0000000000000, 4)
+root(0.0000000000000, 5)
+root(16, 4)
+root(3125, 5)
+root(-3125, 5)
diff --git a/contrib/bc/tests/bc/lib2_root_results.txt b/contrib/bc/tests/bc/lib2_root_results.txt
new file mode 100644
index 000000000000..74ebfc514abf
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_root_results.txt
@@ -0,0 +1,13 @@
+3.00000000000000000000
+-3.00000000000000000000
+16.00000000000000000000
+-16.00000000000000000000
+0
+0
+0
+0
+0
+0
+2.00000000000000000000
+5.00000000000000000000
+-5.00000000000000000000
diff --git a/contrib/bc/tests/bc/lib2_tan.txt b/contrib/bc/tests/bc/lib2_tan.txt
new file mode 100644
index 000000000000..624e798b71d8
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_tan.txt
@@ -0,0 +1,30 @@
+p=pi(100)
+t(0)
+t(1)
+t(-1)
+t(2)
+t(-2)
+t(3)
+t(-3)
+t(p)
+t(-p)
+t(p/2)
+t(-p/2)
+t(p/3)
+t(-p/3)
+t(p/4)
+t(-p/4)
+t(p/5)
+t(-p/5)
+t(p/6)
+t(-p/6)
+t(p/7)
+t(-p/7)
+t(p/8)
+t(-p/8)
+t(p/9)
+t(-p/9)
+t(p/10)
+t(-p/10)
+t(p/15)
+t(-p/15)
diff --git a/contrib/bc/tests/bc/lib2_tan_results.txt b/contrib/bc/tests/bc/lib2_tan_results.txt
new file mode 100644
index 000000000000..53fafa8d496b
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_tan_results.txt
@@ -0,0 +1,29 @@
+0
+1.55740772465490223050
+-1.55740772465490223050
+-2.18503986326151899164
+2.18503986326151899164
+-.14254654307427780529
+.14254654307427780529
+0
+0
+769230769230769230769.23076923076923076923
+-769230769230769230769.23076923076923076923
+1.73205080756887729351
+-1.73205080756887729351
+.99999999999999999998
+-.99999999999999999998
+.72654252800536088589
+-.72654252800536088589
+.57735026918962576449
+-.57735026918962576449
+.48157461880752864432
+-.48157461880752864432
+.41421356237309504879
+-.41421356237309504879
+.36397023426620236134
+-.36397023426620236134
+.32491969623290632614
+-.32491969623290632614
+.21255656167002212525
+-.21255656167002212525
diff --git a/contrib/bc/tests/bc/lib2_uint.txt b/contrib/bc/tests/bc/lib2_uint.txt
new file mode 100644
index 000000000000..a3c62519ca94
--- /dev/null
+++ b/contrib/bc/tests/bc/lib2_uint.txt
@@ -0,0 +1,218 @@
+binary(0)
+hex(0)
+binary(1)
+hex(1)
+binary(2)
+hex(2)
+binary(15)
+hex(15)
+binary(16)
+hex(16)
+uint(0)
+int(0)
+uint(1)
+int(1)
+int(-1)
+uint(127)
+int(127)
+int(-127)
+uint(128)
+int(128)
+int(-128)
+uint(129)
+int(129)
+int(-129)
+uint(255)
+int(255)
+int(-255)
+uint(256)
+int(256)
+int(-256)
+uint(32767)
+int(32767)
+int(-32767)
+uint(32768)
+int(32768)
+int(-32768)
+uint(32769)
+int(32769)
+int(-32769)
+uint(65535)
+int(65535)
+int(-65535)
+uint(65536)
+int(65536)
+int(-65536)
+uint(2147483647)
+int(2147483647)
+int(-2147483647)
+uint(2147483648)
+int(2147483648)
+int(-2147483648)
+uint(2147483649)
+int(2147483649)
+int(-2147483649)
+uint(4294967295)
+int(4294967295)
+int(-4294967295)
+uint(4294967296)
+int(4294967296)
+int(-4294967296)
+uint8(0)
+int8(0)
+uint16(0)
+int16(0)
+uint32(0)
+int32(0)
+uint64(0)
+int64(0)
+uint8(1)
+int8(1)
+int8(-1)
+uint16(1)
+int16(1)
+int16(-1)
+uint32(1)
+int32(1)
+int32(-1)
+uint64(1)
+int64(1)
+int64(-1)
+uint8(127)
+int8(127)
+int8(-127)
+uint16(127)
+int16(127)
+int16(-127)
+uint32(127)
+int32(127)
+int32(-127)
+uint64(127)
+int64(127)
+int64(-127)
+uint8(128)
+int8(128)
+int8(-128)
+uint16(128)
+int16(128)
+int16(-128)
+uint32(128)
+int32(128)
+int32(-128)
+uint64(128)
+int64(128)
+int64(-128)
+uint8(129)
+int8(129)
+int8(-129)
+uint16(129)
+int16(129)
+int16(-129)
+uint32(129)
+int32(129)
+int32(-129)
+uint64(129)
+int64(129)
+int64(-129)
+uint8(255)
+int8(255)
+int8(-255)
+uint16(255)
+int16(255)
+int16(-255)
+uint32(255)
+int32(255)
+int32(-255)
+uint64(255)
+int64(255)
+int64(-255)
+uint8(256)
+int8(256)
+int8(-256)
+uint16(256)
+int16(256)
+int16(-256)
+uint32(256)
+int32(256)
+int32(-256)
+uint64(256)
+int64(256)
+int64(-256)
+uint16(32767)
+int16(32767)
+int16(-32767)
+uint32(32767)
+int32(32767)
+int32(-32767)
+uint64(32767)
+int64(32767)
+int64(-32767)
+uint16(32768)
+int16(32768)
+int16(-32768)
+uint32(32768)
+int32(32768)
+int32(-32768)
+uint64(32768)
+int64(32768)
+int64(-32768)
+uint16(32769)
+int16(32769)
+int16(-32769)
+uint32(32769)
+int32(32769)
+int32(-32769)
+uint64(32769)
+int64(32769)
+int64(-32769)
+uint16(65535)
+int16(65535)
+int16(-65535)
+uint32(65535)
+int32(65535)
+int32(-65535)
+uint64(65535)
+int64(65535)
+int64(-65535)
+uint16(65536)
+int16(65536)
+int16(-65536)
+uint32(65536)
+int32(65536)
+int32(-65536)
+uint64(65536)
+int64(65536)
+int64(-65536)
+uint32(2147483647)
+int32(2147483647)
+int32(-2147483647)
+uint64(2147483647)
+int64(2147483647)
+int64(-2147483647)
+uint32(2147483648)
+int32(2147483648)
+int32(-2147483648)
+uint64(2147483648)
+int64(2147483648)
+int64(-2147483648)
+uint32(2147483649)
+int32(2147483649)
+int32(-2147483649)
+uint64(2147483649)
+int64(2147483649)
+int64(-2147483649)
+uint32(4294967295)
+int32(4294967295)
+int32(-4294967295)
+uint64(4294967295)
+int64(4294967295)
+int64(-4294967295)
+uint32(4294967296)
+int32(4294967296)
+int32(-4294967296)
+uint64(4294967296)
+int64(4294967296)
+int64(-4294967296)
+uint(-3)
+uint(3.928375)
+int(4.000000)
diff --git a/contrib/bc/tests/bc/lib2_results.txt b/contrib/bc/tests/bc/lib2_uint_results.txt
index e5ddb51642a5..7e494e2a0812 100644
--- a/contrib/bc/tests/bc/lib2_results.txt
+++ b/contrib/bc/tests/bc/lib2_uint_results.txt
@@ -1,252 +1,3 @@
-256.00000000000000000000
-256.01774518281640171326
-.00390597924876622489
-42719740718418201647900434123391042292054090447133055398940832156444\
-39451561281100045924173873151.99999999999999999999
-0
-0
-0
-1
-1.000
-1
-2
-34.45
-64.1223
-283.198389
-283.198390
-283.198390
-100.00000
--1
--1.000
--1
--2
--34.45
--64.1223
--283.198389
--283.198390
--283.198390
--100.00000
-0
-0
-0
-1
-1.000
-2
-2
-34.45
-64.1223
-283.198390
-283.198390
-283.198390
-100.00000
--1
--1.000
--2
--2
--34.45
--64.1223
--283.198390
--283.198390
--283.198390
--100.00000
-8770736
--14426950408889634073599246810018921374265.01964302164603717234
-0
-1.00000000000000000000
-2.80735492205760410744
-2.99999999999999999999
-3.00000000000000000000
--4342944819032518276511289189166050822943.53857128275332257904
-0
-.30102999566398119521
-.69897000433601880478
-.95424250943932487459
-.99999999999999999999
-1.00000000000000000000
-1.04139268515822504075
-1.99563519459754991534
-1.99999999999999999999
-2.00000000000000000000
--14426950408889634073599246810018921374265.01964302164603717234
--14426950408889634073599246810018921374265.01964302164603717234
--14426950408889634073599246810018921374265.01964302164603717234
--144269504088896340735992468100189213742664594.88013355604393225658
--14426950408889634073599246810018921374265.01964302164603717234
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
--434294481903251827651128918916605082294396.66367028674257491242
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
--4342944819032518276511289189166050822943.53857128275332257904
-3.00000000000000000000
--3.00000000000000000000
-16.00000000000000000000
--16.00000000000000000000
-0
-0
-0
-0
-0
-0
-2.00000000000000000000
-5.00000000000000000000
--5.00000000000000000000
-5
-1
-1
-4
-8
-20480
-6105
-1
-1
-1
-1
-1
-2
-2
-4
-4
-4
-8
-8
-16
-1
-1
-1
-1
-1
-2
-1
-1
-2
-2
-2
-2
-2
-4
-2
-2
-4
-4
-4
-4
-8
-8
-4
-4
-8
-8
-8
-8
-16
-16
-8
-8
-16
-3
-3.1
-3.14
-3.14159
-3.141592653589793238462643383279502884197169399375105820974944592307\
-8164062862089986280348253421170679
-0
-1.55740772465490223050
--1.55740772465490223050
--2.18503986326151899164
-2.18503986326151899164
--.14254654307427780529
-.14254654307427780529
-0
-0
-769230769230769230769.23076923076923076923
--769230769230769230769.23076923076923076923
-1.73205080756887729351
--1.73205080756887729351
-.99999999999999999998
--.99999999999999999998
-.72654252800536088589
--.72654252800536088589
-.57735026918962576449
--.57735026918962576449
-.48157461880752864432
--.48157461880752864432
-.41421356237309504879
--.41421356237309504879
-.36397023426620236134
--.36397023426620236134
-.32491969623290632614
--.32491969623290632614
-.21255656167002212525
--.21255656167002212525
-0
-.78539816339744830961
-1.10714871779409050301
-.46364760900080611621
-3.14159265358979323846
-2.35619449019234492884
-2.03444393579570273544
-2.67794504458898712224
--.78539816339744830961
--1.10714871779409050301
--.46364760900080611621
--2.35619449019234492884
--2.03444393579570273544
--2.67794504458898712224
-1.57079632679489661923
-1.57079632679489661923
--1.57079632679489661923
--1.57079632679489661923
-180.00000000000000000000
-360.00000000000000000000
-89.99999999999999999992
-44.99999999999999999967
-59.99999999999999999975
-35.99999999999999999985
-29.99999999999999999959
-17.99999999999999999964
--180.00000000000000000000
--360.00000000000000000000
--89.99999999999999999992
--44.99999999999999999967
--59.99999999999999999975
--35.99999999999999999985
--29.99999999999999999959
--17.99999999999999999964
-3.14159265358979323846
-6.28318530717958647692
-1.57079632679489661923
-.78539816339744830961
-2.09439510239319549230
-1.25663706143591729538
-1.04719755119659774615
-.62831853071795864769
--3.14159265358979323846
--6.28318530717958647692
--1.57079632679489661923
--.78539816339744830961
--2.09439510239319549230
--1.25663706143591729538
--1.04719755119659774615
--.62831853071795864769
-1
-1
-2
-6
-24
-120
-90
-45
-30
-15
-239500800
-66
-1709789466857472000
-1307504
0
0
1
@@ -704,10 +455,3 @@ FF FF FF FF 00 00 00 00
Error: -3 is negative.
Error: 3.928375 is not an integer.
Error: 4.000000 is not an integer.
-1
-1
-1
-1
-1
-1
-1
diff --git a/contrib/bc/tests/bc/scripts/add.bc b/contrib/bc/tests/bc/scripts/add_00100.bc
index 9cffa2c28750..687ba889c307 100644
--- a/contrib/bc/tests/bc/scripts/add.bc
+++ b/contrib/bc/tests/bc/scripts/add_00100.bc
@@ -10,7 +10,7 @@ for (i = 0; i <= len; ++i) {
a[i]
}
-for (i = 1; i <= 10000; ++i) {
+for (i = 1; i <= 100; ++i) {
for (j = 0; j < len; ++j) {
a[i] + a[j]
}
diff --git a/contrib/bc/tests/bc/scripts/add_00200.bc b/contrib/bc/tests/bc/scripts/add_00200.bc
new file mode 100644
index 000000000000..21112195c65d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 101; i <= 200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00300.bc b/contrib/bc/tests/bc/scripts/add_00300.bc
new file mode 100644
index 000000000000..1b2cb7784754
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 201; i <= 300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00400.bc b/contrib/bc/tests/bc/scripts/add_00400.bc
new file mode 100644
index 000000000000..e8a8def0450c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 301; i <= 400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00500.bc b/contrib/bc/tests/bc/scripts/add_00500.bc
new file mode 100644
index 000000000000..971991e0f457
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 401; i <= 500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00600.bc b/contrib/bc/tests/bc/scripts/add_00600.bc
new file mode 100644
index 000000000000..dc758b170e5e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 501; i <= 600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00700.bc b/contrib/bc/tests/bc/scripts/add_00700.bc
new file mode 100644
index 000000000000..6819689561d5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 601; i <= 700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00800.bc b/contrib/bc/tests/bc/scripts/add_00800.bc
new file mode 100644
index 000000000000..593144457957
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 701; i <= 800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_00900.bc b/contrib/bc/tests/bc/scripts/add_00900.bc
new file mode 100644
index 000000000000..a6cee4ff0b39
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_00900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 801; i <= 900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01000.bc b/contrib/bc/tests/bc/scripts/add_01000.bc
new file mode 100644
index 000000000000..6f3d42a3590f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 901; i <= 1000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01100.bc b/contrib/bc/tests/bc/scripts/add_01100.bc
new file mode 100644
index 000000000000..98866672d814
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1001; i <= 1100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01200.bc b/contrib/bc/tests/bc/scripts/add_01200.bc
new file mode 100644
index 000000000000..82b74b103fb0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1101; i <= 1200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01300.bc b/contrib/bc/tests/bc/scripts/add_01300.bc
new file mode 100644
index 000000000000..45e0ea4637cb
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1201; i <= 1300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01400.bc b/contrib/bc/tests/bc/scripts/add_01400.bc
new file mode 100644
index 000000000000..123fba19dcc0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1301; i <= 1400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01500.bc b/contrib/bc/tests/bc/scripts/add_01500.bc
new file mode 100644
index 000000000000..59a2a0dac4d1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1401; i <= 1500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01600.bc b/contrib/bc/tests/bc/scripts/add_01600.bc
new file mode 100644
index 000000000000..2df24a0c006c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1501; i <= 1600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01700.bc b/contrib/bc/tests/bc/scripts/add_01700.bc
new file mode 100644
index 000000000000..0646f0b881c8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1601; i <= 1700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01800.bc b/contrib/bc/tests/bc/scripts/add_01800.bc
new file mode 100644
index 000000000000..65a725c9cc0c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1701; i <= 1800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_01900.bc b/contrib/bc/tests/bc/scripts/add_01900.bc
new file mode 100644
index 000000000000..b73af970dd5c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_01900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1801; i <= 1900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02000.bc b/contrib/bc/tests/bc/scripts/add_02000.bc
new file mode 100644
index 000000000000..ea76021121c3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1901; i <= 2000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02100.bc b/contrib/bc/tests/bc/scripts/add_02100.bc
new file mode 100644
index 000000000000..0bc93bf08aa2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2001; i <= 2100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02200.bc b/contrib/bc/tests/bc/scripts/add_02200.bc
new file mode 100644
index 000000000000..ad1aa7a32708
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2101; i <= 2200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02300.bc b/contrib/bc/tests/bc/scripts/add_02300.bc
new file mode 100644
index 000000000000..8e9622db6390
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2201; i <= 2300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02400.bc b/contrib/bc/tests/bc/scripts/add_02400.bc
new file mode 100644
index 000000000000..4cedd06b481f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2301; i <= 2400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02500.bc b/contrib/bc/tests/bc/scripts/add_02500.bc
new file mode 100644
index 000000000000..75b599350b6a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2401; i <= 2500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02600.bc b/contrib/bc/tests/bc/scripts/add_02600.bc
new file mode 100644
index 000000000000..ea371d5b3e96
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2501; i <= 2600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02700.bc b/contrib/bc/tests/bc/scripts/add_02700.bc
new file mode 100644
index 000000000000..6e03b41c9549
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2601; i <= 2700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02800.bc b/contrib/bc/tests/bc/scripts/add_02800.bc
new file mode 100644
index 000000000000..91e3dc906498
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2701; i <= 2800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_02900.bc b/contrib/bc/tests/bc/scripts/add_02900.bc
new file mode 100644
index 000000000000..ab103da6cc1f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_02900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2801; i <= 2900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03000.bc b/contrib/bc/tests/bc/scripts/add_03000.bc
new file mode 100644
index 000000000000..f0149001652e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2901; i <= 3000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03100.bc b/contrib/bc/tests/bc/scripts/add_03100.bc
new file mode 100644
index 000000000000..371d3d6d0977
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3001; i <= 3100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03200.bc b/contrib/bc/tests/bc/scripts/add_03200.bc
new file mode 100644
index 000000000000..d8f361df8748
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3101; i <= 3200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03300.bc b/contrib/bc/tests/bc/scripts/add_03300.bc
new file mode 100644
index 000000000000..115f61b128c5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3201; i <= 3300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03400.bc b/contrib/bc/tests/bc/scripts/add_03400.bc
new file mode 100644
index 000000000000..c5dbb7b1148c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3301; i <= 3400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03500.bc b/contrib/bc/tests/bc/scripts/add_03500.bc
new file mode 100644
index 000000000000..f487c0d05ce9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3401; i <= 3500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03600.bc b/contrib/bc/tests/bc/scripts/add_03600.bc
new file mode 100644
index 000000000000..eab41fd22f77
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3501; i <= 3600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03700.bc b/contrib/bc/tests/bc/scripts/add_03700.bc
new file mode 100644
index 000000000000..40c7f6c9f72a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3601; i <= 3700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03800.bc b/contrib/bc/tests/bc/scripts/add_03800.bc
new file mode 100644
index 000000000000..9732ea39866b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3701; i <= 3800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_03900.bc b/contrib/bc/tests/bc/scripts/add_03900.bc
new file mode 100644
index 000000000000..c4bb1e4f5023
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_03900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3801; i <= 3900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04000.bc b/contrib/bc/tests/bc/scripts/add_04000.bc
new file mode 100644
index 000000000000..9f4c832d40a2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3901; i <= 4000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04100.bc b/contrib/bc/tests/bc/scripts/add_04100.bc
new file mode 100644
index 000000000000..a54f8711ad32
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4001; i <= 4100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04200.bc b/contrib/bc/tests/bc/scripts/add_04200.bc
new file mode 100644
index 000000000000..f0d7f4ac2200
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4101; i <= 4200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04300.bc b/contrib/bc/tests/bc/scripts/add_04300.bc
new file mode 100644
index 000000000000..6f1fd34d1d83
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4201; i <= 4300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04400.bc b/contrib/bc/tests/bc/scripts/add_04400.bc
new file mode 100644
index 000000000000..d61ebb5cb850
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4301; i <= 4400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04500.bc b/contrib/bc/tests/bc/scripts/add_04500.bc
new file mode 100644
index 000000000000..dec1d8d51a0a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4401; i <= 4500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04600.bc b/contrib/bc/tests/bc/scripts/add_04600.bc
new file mode 100644
index 000000000000..c11374d541c2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4501; i <= 4600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04700.bc b/contrib/bc/tests/bc/scripts/add_04700.bc
new file mode 100644
index 000000000000..f58c124a04b4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4601; i <= 4700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04800.bc b/contrib/bc/tests/bc/scripts/add_04800.bc
new file mode 100644
index 000000000000..a814317464d0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4701; i <= 4800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_04900.bc b/contrib/bc/tests/bc/scripts/add_04900.bc
new file mode 100644
index 000000000000..e6c45fda681f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_04900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4801; i <= 4900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05000.bc b/contrib/bc/tests/bc/scripts/add_05000.bc
new file mode 100644
index 000000000000..b5f942c75b9c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4901; i <= 5000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05100.bc b/contrib/bc/tests/bc/scripts/add_05100.bc
new file mode 100644
index 000000000000..7b6db4cab7c7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5001; i <= 5100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05200.bc b/contrib/bc/tests/bc/scripts/add_05200.bc
new file mode 100644
index 000000000000..e00390c3a185
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5101; i <= 5200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05300.bc b/contrib/bc/tests/bc/scripts/add_05300.bc
new file mode 100644
index 000000000000..bba349b19f58
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5201; i <= 5300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05400.bc b/contrib/bc/tests/bc/scripts/add_05400.bc
new file mode 100644
index 000000000000..4d56e6444d22
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5301; i <= 5400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05500.bc b/contrib/bc/tests/bc/scripts/add_05500.bc
new file mode 100644
index 000000000000..f44e5da24185
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5401; i <= 5500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05600.bc b/contrib/bc/tests/bc/scripts/add_05600.bc
new file mode 100644
index 000000000000..7085cfb977a0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5501; i <= 5600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05700.bc b/contrib/bc/tests/bc/scripts/add_05700.bc
new file mode 100644
index 000000000000..3cb664410ce6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5601; i <= 5700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05800.bc b/contrib/bc/tests/bc/scripts/add_05800.bc
new file mode 100644
index 000000000000..2b2371a97dbc
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5701; i <= 5800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_05900.bc b/contrib/bc/tests/bc/scripts/add_05900.bc
new file mode 100644
index 000000000000..263c186e6e4a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_05900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5801; i <= 5900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06000.bc b/contrib/bc/tests/bc/scripts/add_06000.bc
new file mode 100644
index 000000000000..6a0c9adba929
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5901; i <= 6000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06100.bc b/contrib/bc/tests/bc/scripts/add_06100.bc
new file mode 100644
index 000000000000..a39e08d837a5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6001; i <= 6100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06200.bc b/contrib/bc/tests/bc/scripts/add_06200.bc
new file mode 100644
index 000000000000..3c027b50e4c7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6101; i <= 6200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06300.bc b/contrib/bc/tests/bc/scripts/add_06300.bc
new file mode 100644
index 000000000000..0034dff383c4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6201; i <= 6300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06400.bc b/contrib/bc/tests/bc/scripts/add_06400.bc
new file mode 100644
index 000000000000..e76787fff84b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6301; i <= 6400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06500.bc b/contrib/bc/tests/bc/scripts/add_06500.bc
new file mode 100644
index 000000000000..219b0bfb1f21
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6401; i <= 6500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06600.bc b/contrib/bc/tests/bc/scripts/add_06600.bc
new file mode 100644
index 000000000000..c881cdd331a5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6501; i <= 6600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06700.bc b/contrib/bc/tests/bc/scripts/add_06700.bc
new file mode 100644
index 000000000000..89578ced8323
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6601; i <= 6700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06800.bc b/contrib/bc/tests/bc/scripts/add_06800.bc
new file mode 100644
index 000000000000..43808bbad6db
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6701; i <= 6800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_06900.bc b/contrib/bc/tests/bc/scripts/add_06900.bc
new file mode 100644
index 000000000000..aa3e232f95c3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_06900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6801; i <= 6900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07000.bc b/contrib/bc/tests/bc/scripts/add_07000.bc
new file mode 100644
index 000000000000..619efe0b1fbc
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6901; i <= 7000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07100.bc b/contrib/bc/tests/bc/scripts/add_07100.bc
new file mode 100644
index 000000000000..7f62385972ba
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7001; i <= 7100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07200.bc b/contrib/bc/tests/bc/scripts/add_07200.bc
new file mode 100644
index 000000000000..9275056c7b48
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7101; i <= 7200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07300.bc b/contrib/bc/tests/bc/scripts/add_07300.bc
new file mode 100644
index 000000000000..aae0593d5453
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7201; i <= 7300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07400.bc b/contrib/bc/tests/bc/scripts/add_07400.bc
new file mode 100644
index 000000000000..5ec925f71453
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7301; i <= 7400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07500.bc b/contrib/bc/tests/bc/scripts/add_07500.bc
new file mode 100644
index 000000000000..79e3da3795ae
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7401; i <= 7500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07600.bc b/contrib/bc/tests/bc/scripts/add_07600.bc
new file mode 100644
index 000000000000..0a6787de4f9a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7501; i <= 7600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07700.bc b/contrib/bc/tests/bc/scripts/add_07700.bc
new file mode 100644
index 000000000000..68a270cb2149
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7601; i <= 7700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07800.bc b/contrib/bc/tests/bc/scripts/add_07800.bc
new file mode 100644
index 000000000000..266fb799877e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7701; i <= 7800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_07900.bc b/contrib/bc/tests/bc/scripts/add_07900.bc
new file mode 100644
index 000000000000..34759324fbe9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_07900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7801; i <= 7900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08000.bc b/contrib/bc/tests/bc/scripts/add_08000.bc
new file mode 100644
index 000000000000..7194e35553bd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7901; i <= 8000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08100.bc b/contrib/bc/tests/bc/scripts/add_08100.bc
new file mode 100644
index 000000000000..899afff7c49f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8001; i <= 8100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08200.bc b/contrib/bc/tests/bc/scripts/add_08200.bc
new file mode 100644
index 000000000000..7898c65c3f39
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8101; i <= 8200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08300.bc b/contrib/bc/tests/bc/scripts/add_08300.bc
new file mode 100644
index 000000000000..e524af4e6365
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8201; i <= 8300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08400.bc b/contrib/bc/tests/bc/scripts/add_08400.bc
new file mode 100644
index 000000000000..e1835790b535
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8301; i <= 8400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08500.bc b/contrib/bc/tests/bc/scripts/add_08500.bc
new file mode 100644
index 000000000000..33a1b69888fb
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8401; i <= 8500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08600.bc b/contrib/bc/tests/bc/scripts/add_08600.bc
new file mode 100644
index 000000000000..a0a85ed50d2e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8501; i <= 8600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08700.bc b/contrib/bc/tests/bc/scripts/add_08700.bc
new file mode 100644
index 000000000000..cf453c39167c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8601; i <= 8700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08800.bc b/contrib/bc/tests/bc/scripts/add_08800.bc
new file mode 100644
index 000000000000..0714a10c14dd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8701; i <= 8800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_08900.bc b/contrib/bc/tests/bc/scripts/add_08900.bc
new file mode 100644
index 000000000000..1cf95e2507f0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_08900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8801; i <= 8900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09000.bc b/contrib/bc/tests/bc/scripts/add_09000.bc
new file mode 100644
index 000000000000..3838cb3e90e0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8901; i <= 9000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09100.bc b/contrib/bc/tests/bc/scripts/add_09100.bc
new file mode 100644
index 000000000000..f5771ed8b8f9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9001; i <= 9100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09200.bc b/contrib/bc/tests/bc/scripts/add_09200.bc
new file mode 100644
index 000000000000..4f9e0638fdd7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9101; i <= 9200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09300.bc b/contrib/bc/tests/bc/scripts/add_09300.bc
new file mode 100644
index 000000000000..b4fc793980c6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9201; i <= 9300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09400.bc b/contrib/bc/tests/bc/scripts/add_09400.bc
new file mode 100644
index 000000000000..302f328b3c16
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9301; i <= 9400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09500.bc b/contrib/bc/tests/bc/scripts/add_09500.bc
new file mode 100644
index 000000000000..a2fc67f64439
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9401; i <= 9500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09600.bc b/contrib/bc/tests/bc/scripts/add_09600.bc
new file mode 100644
index 000000000000..0b36a67aeff6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9501; i <= 9600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09700.bc b/contrib/bc/tests/bc/scripts/add_09700.bc
new file mode 100644
index 000000000000..5f7c395c3a22
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9601; i <= 9700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09800.bc b/contrib/bc/tests/bc/scripts/add_09800.bc
new file mode 100644
index 000000000000..23c044c7dbc9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9701; i <= 9800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_09900.bc b/contrib/bc/tests/bc/scripts/add_09900.bc
new file mode 100644
index 000000000000..42d1a28d42b6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_09900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9801; i <= 9900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/add_10000.bc b/contrib/bc/tests/bc/scripts/add_10000.bc
new file mode 100644
index 000000000000..518e937c48a3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/add_10000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9901; i <= 10000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] + a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/all.txt b/contrib/bc/tests/bc/scripts/all.txt
index 7b49f7c4e77a..935f05cf9fb2 100644
--- a/contrib/bc/tests/bc/scripts/all.txt
+++ b/contrib/bc/tests/bc/scripts/all.txt
@@ -1,10 +1,404 @@
-multiply.bc
-divide.bc
-subtract.bc
-add.bc
-print.bc
+multiply_00100.bc
+multiply_00200.bc
+multiply_00300.bc
+multiply_00400.bc
+multiply_00500.bc
+multiply_00600.bc
+multiply_00700.bc
+multiply_00800.bc
+multiply_00900.bc
+multiply_01000.bc
+multiply_01100.bc
+multiply_01200.bc
+multiply_01300.bc
+multiply_01400.bc
+multiply_01500.bc
+multiply_01600.bc
+multiply_01700.bc
+multiply_01800.bc
+multiply_01900.bc
+multiply_02000.bc
+multiply_02100.bc
+multiply_02200.bc
+multiply_02300.bc
+multiply_02400.bc
+multiply_02500.bc
+multiply_02600.bc
+multiply_02700.bc
+multiply_02800.bc
+multiply_02900.bc
+multiply_03000.bc
+multiply_03100.bc
+multiply_03200.bc
+multiply_03300.bc
+multiply_03400.bc
+multiply_03500.bc
+multiply_03600.bc
+multiply_03700.bc
+multiply_03800.bc
+multiply_03900.bc
+multiply_04000.bc
+multiply_04100.bc
+multiply_04200.bc
+multiply_04300.bc
+multiply_04400.bc
+multiply_04500.bc
+multiply_04600.bc
+multiply_04700.bc
+multiply_04800.bc
+multiply_04900.bc
+multiply_05000.bc
+multiply_05100.bc
+multiply_05200.bc
+multiply_05300.bc
+multiply_05400.bc
+multiply_05500.bc
+multiply_05600.bc
+multiply_05700.bc
+multiply_05800.bc
+multiply_05900.bc
+multiply_06000.bc
+multiply_06100.bc
+multiply_06200.bc
+multiply_06300.bc
+multiply_06400.bc
+multiply_06500.bc
+multiply_06600.bc
+multiply_06700.bc
+multiply_06800.bc
+multiply_06900.bc
+multiply_07000.bc
+multiply_07100.bc
+multiply_07200.bc
+multiply_07300.bc
+multiply_07400.bc
+multiply_07500.bc
+multiply_07600.bc
+multiply_07700.bc
+multiply_07800.bc
+multiply_07900.bc
+multiply_08000.bc
+multiply_08100.bc
+multiply_08200.bc
+multiply_08300.bc
+multiply_08400.bc
+multiply_08500.bc
+multiply_08600.bc
+multiply_08700.bc
+multiply_08800.bc
+multiply_08900.bc
+multiply_09000.bc
+multiply_09100.bc
+multiply_09200.bc
+multiply_09300.bc
+multiply_09400.bc
+multiply_09500.bc
+multiply_09600.bc
+multiply_09700.bc
+multiply_09800.bc
+multiply_09900.bc
+multiply_10000.bc
+divide_00100.bc
+divide_00200.bc
+divide_00300.bc
+divide_00400.bc
+divide_00500.bc
+divide_00600.bc
+divide_00700.bc
+divide_00800.bc
+divide_00900.bc
+divide_01000.bc
+divide_01100.bc
+divide_01200.bc
+divide_01300.bc
+divide_01400.bc
+divide_01500.bc
+divide_01600.bc
+divide_01700.bc
+divide_01800.bc
+divide_01900.bc
+divide_02000.bc
+divide_02100.bc
+divide_02200.bc
+divide_02300.bc
+divide_02400.bc
+divide_02500.bc
+divide_02600.bc
+divide_02700.bc
+divide_02800.bc
+divide_02900.bc
+divide_03000.bc
+divide_03100.bc
+divide_03200.bc
+divide_03300.bc
+divide_03400.bc
+divide_03500.bc
+divide_03600.bc
+divide_03700.bc
+divide_03800.bc
+divide_03900.bc
+divide_04000.bc
+divide_04100.bc
+divide_04200.bc
+divide_04300.bc
+divide_04400.bc
+divide_04500.bc
+divide_04600.bc
+divide_04700.bc
+divide_04800.bc
+divide_04900.bc
+divide_05000.bc
+divide_05100.bc
+divide_05200.bc
+divide_05300.bc
+divide_05400.bc
+divide_05500.bc
+divide_05600.bc
+divide_05700.bc
+divide_05800.bc
+divide_05900.bc
+divide_06000.bc
+divide_06100.bc
+divide_06200.bc
+divide_06300.bc
+divide_06400.bc
+divide_06500.bc
+divide_06600.bc
+divide_06700.bc
+divide_06800.bc
+divide_06900.bc
+divide_07000.bc
+divide_07100.bc
+divide_07200.bc
+divide_07300.bc
+divide_07400.bc
+divide_07500.bc
+divide_07600.bc
+divide_07700.bc
+divide_07800.bc
+divide_07900.bc
+divide_08000.bc
+divide_08100.bc
+divide_08200.bc
+divide_08300.bc
+divide_08400.bc
+divide_08500.bc
+divide_08600.bc
+divide_08700.bc
+divide_08800.bc
+divide_08900.bc
+divide_09000.bc
+divide_09100.bc
+divide_09200.bc
+divide_09300.bc
+divide_09400.bc
+divide_09500.bc
+divide_09600.bc
+divide_09700.bc
+divide_09800.bc
+divide_09900.bc
+divide_10000.bc
+subtract_00100.bc
+subtract_00200.bc
+subtract_00300.bc
+subtract_00400.bc
+subtract_00500.bc
+subtract_00600.bc
+subtract_00700.bc
+subtract_00800.bc
+subtract_00900.bc
+subtract_01000.bc
+subtract_01100.bc
+subtract_01200.bc
+subtract_01300.bc
+subtract_01400.bc
+subtract_01500.bc
+subtract_01600.bc
+subtract_01700.bc
+subtract_01800.bc
+subtract_01900.bc
+subtract_02000.bc
+subtract_02100.bc
+subtract_02200.bc
+subtract_02300.bc
+subtract_02400.bc
+subtract_02500.bc
+subtract_02600.bc
+subtract_02700.bc
+subtract_02800.bc
+subtract_02900.bc
+subtract_03000.bc
+subtract_03100.bc
+subtract_03200.bc
+subtract_03300.bc
+subtract_03400.bc
+subtract_03500.bc
+subtract_03600.bc
+subtract_03700.bc
+subtract_03800.bc
+subtract_03900.bc
+subtract_04000.bc
+subtract_04100.bc
+subtract_04200.bc
+subtract_04300.bc
+subtract_04400.bc
+subtract_04500.bc
+subtract_04600.bc
+subtract_04700.bc
+subtract_04800.bc
+subtract_04900.bc
+subtract_05000.bc
+subtract_05100.bc
+subtract_05200.bc
+subtract_05300.bc
+subtract_05400.bc
+subtract_05500.bc
+subtract_05600.bc
+subtract_05700.bc
+subtract_05800.bc
+subtract_05900.bc
+subtract_06000.bc
+subtract_06100.bc
+subtract_06200.bc
+subtract_06300.bc
+subtract_06400.bc
+subtract_06500.bc
+subtract_06600.bc
+subtract_06700.bc
+subtract_06800.bc
+subtract_06900.bc
+subtract_07000.bc
+subtract_07100.bc
+subtract_07200.bc
+subtract_07300.bc
+subtract_07400.bc
+subtract_07500.bc
+subtract_07600.bc
+subtract_07700.bc
+subtract_07800.bc
+subtract_07900.bc
+subtract_08000.bc
+subtract_08100.bc
+subtract_08200.bc
+subtract_08300.bc
+subtract_08400.bc
+subtract_08500.bc
+subtract_08600.bc
+subtract_08700.bc
+subtract_08800.bc
+subtract_08900.bc
+subtract_09000.bc
+subtract_09100.bc
+subtract_09200.bc
+subtract_09300.bc
+subtract_09400.bc
+subtract_09500.bc
+subtract_09600.bc
+subtract_09700.bc
+subtract_09800.bc
+subtract_09900.bc
+subtract_10000.bc
+add_00100.bc
+add_00200.bc
+add_00300.bc
+add_00400.bc
+add_00500.bc
+add_00600.bc
+add_00700.bc
+add_00800.bc
+add_00900.bc
+add_01000.bc
+add_01100.bc
+add_01200.bc
+add_01300.bc
+add_01400.bc
+add_01500.bc
+add_01600.bc
+add_01700.bc
+add_01800.bc
+add_01900.bc
+add_02000.bc
+add_02100.bc
+add_02200.bc
+add_02300.bc
+add_02400.bc
+add_02500.bc
+add_02600.bc
+add_02700.bc
+add_02800.bc
+add_02900.bc
+add_03000.bc
+add_03100.bc
+add_03200.bc
+add_03300.bc
+add_03400.bc
+add_03500.bc
+add_03600.bc
+add_03700.bc
+add_03800.bc
+add_03900.bc
+add_04000.bc
+add_04100.bc
+add_04200.bc
+add_04300.bc
+add_04400.bc
+add_04500.bc
+add_04600.bc
+add_04700.bc
+add_04800.bc
+add_04900.bc
+add_05000.bc
+add_05100.bc
+add_05200.bc
+add_05300.bc
+add_05400.bc
+add_05500.bc
+add_05600.bc
+add_05700.bc
+add_05800.bc
+add_05900.bc
+add_06000.bc
+add_06100.bc
+add_06200.bc
+add_06300.bc
+add_06400.bc
+add_06500.bc
+add_06600.bc
+add_06700.bc
+add_06800.bc
+add_06900.bc
+add_07000.bc
+add_07100.bc
+add_07200.bc
+add_07300.bc
+add_07400.bc
+add_07500.bc
+add_07600.bc
+add_07700.bc
+add_07800.bc
+add_07900.bc
+add_08000.bc
+add_08100.bc
+add_08200.bc
+add_08300.bc
+add_08400.bc
+add_08500.bc
+add_08600.bc
+add_08700.bc
+add_08800.bc
+add_08900.bc
+add_09000.bc
+add_09100.bc
+add_09200.bc
+add_09300.bc
+add_09400.bc
+add_09500.bc
+add_09600.bc
+add_09700.bc
+add_09800.bc
+add_09900.bc
+add_10000.bc
print2.bc
-parse.bc
root.bc
array.bc
array2.bc
diff --git a/contrib/bc/tests/bc/scripts/divide.bc b/contrib/bc/tests/bc/scripts/divide_00100.bc
index 51a4c0082d6a..d2685faf9cd3 100644
--- a/contrib/bc/tests/bc/scripts/divide.bc
+++ b/contrib/bc/tests/bc/scripts/divide_00100.bc
@@ -12,7 +12,7 @@ for (i = 0; i <= len; ++i) {
a[i]
}
-for (i = 1; i <= 10000; ++i) {
+for (i = 1; i <= 100; ++i) {
for (j = 0; j < len; ++j) {
a[0] / a[j]
a[i] / a[j]
diff --git a/contrib/bc/tests/bc/scripts/divide_00200.bc b/contrib/bc/tests/bc/scripts/divide_00200.bc
new file mode 100644
index 000000000000..027642c504d0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 101; i <= 200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00300.bc b/contrib/bc/tests/bc/scripts/divide_00300.bc
new file mode 100644
index 000000000000..53a3fb2e3d3a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 201; i <= 300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00400.bc b/contrib/bc/tests/bc/scripts/divide_00400.bc
new file mode 100644
index 000000000000..15f8ba961e61
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 301; i <= 400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00500.bc b/contrib/bc/tests/bc/scripts/divide_00500.bc
new file mode 100644
index 000000000000..732bd2867a23
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 401; i <= 500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00600.bc b/contrib/bc/tests/bc/scripts/divide_00600.bc
new file mode 100644
index 000000000000..4ac87e33319f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 501; i <= 600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00700.bc b/contrib/bc/tests/bc/scripts/divide_00700.bc
new file mode 100644
index 000000000000..0b272167f0fb
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 601; i <= 700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00800.bc b/contrib/bc/tests/bc/scripts/divide_00800.bc
new file mode 100644
index 000000000000..0e08bb7016e3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 701; i <= 800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_00900.bc b/contrib/bc/tests/bc/scripts/divide_00900.bc
new file mode 100644
index 000000000000..cef55f474661
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_00900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 801; i <= 900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01000.bc b/contrib/bc/tests/bc/scripts/divide_01000.bc
new file mode 100644
index 000000000000..5291d71fc316
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 901; i <= 1000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01100.bc b/contrib/bc/tests/bc/scripts/divide_01100.bc
new file mode 100644
index 000000000000..ff9a49a6bd9a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1001; i <= 1100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01200.bc b/contrib/bc/tests/bc/scripts/divide_01200.bc
new file mode 100644
index 000000000000..9dd0fadf3a4d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1101; i <= 1200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01300.bc b/contrib/bc/tests/bc/scripts/divide_01300.bc
new file mode 100644
index 000000000000..5ac02c35a087
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1201; i <= 1300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01400.bc b/contrib/bc/tests/bc/scripts/divide_01400.bc
new file mode 100644
index 000000000000..9189a546b01c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1301; i <= 1400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01500.bc b/contrib/bc/tests/bc/scripts/divide_01500.bc
new file mode 100644
index 000000000000..7feed3c7389d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1401; i <= 1500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01600.bc b/contrib/bc/tests/bc/scripts/divide_01600.bc
new file mode 100644
index 000000000000..4847d9dbe62c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1501; i <= 1600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01700.bc b/contrib/bc/tests/bc/scripts/divide_01700.bc
new file mode 100644
index 000000000000..81db9b7b4bbe
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1601; i <= 1700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01800.bc b/contrib/bc/tests/bc/scripts/divide_01800.bc
new file mode 100644
index 000000000000..25b7476e7d6e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1701; i <= 1800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_01900.bc b/contrib/bc/tests/bc/scripts/divide_01900.bc
new file mode 100644
index 000000000000..80a8292c0b52
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_01900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1801; i <= 1900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02000.bc b/contrib/bc/tests/bc/scripts/divide_02000.bc
new file mode 100644
index 000000000000..268f1636f65f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1901; i <= 2000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02100.bc b/contrib/bc/tests/bc/scripts/divide_02100.bc
new file mode 100644
index 000000000000..cd5f57546856
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2001; i <= 2100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02200.bc b/contrib/bc/tests/bc/scripts/divide_02200.bc
new file mode 100644
index 000000000000..40eb46b58dc8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2101; i <= 2200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02300.bc b/contrib/bc/tests/bc/scripts/divide_02300.bc
new file mode 100644
index 000000000000..50da630cdeb1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2201; i <= 2300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02400.bc b/contrib/bc/tests/bc/scripts/divide_02400.bc
new file mode 100644
index 000000000000..744e082c95b5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2301; i <= 2400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02500.bc b/contrib/bc/tests/bc/scripts/divide_02500.bc
new file mode 100644
index 000000000000..294f2677971f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2401; i <= 2500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02600.bc b/contrib/bc/tests/bc/scripts/divide_02600.bc
new file mode 100644
index 000000000000..0adb8203d56b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2501; i <= 2600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02700.bc b/contrib/bc/tests/bc/scripts/divide_02700.bc
new file mode 100644
index 000000000000..7107d6674bcf
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2601; i <= 2700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02800.bc b/contrib/bc/tests/bc/scripts/divide_02800.bc
new file mode 100644
index 000000000000..0a818c9461c6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2701; i <= 2800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_02900.bc b/contrib/bc/tests/bc/scripts/divide_02900.bc
new file mode 100644
index 000000000000..8113032c261b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_02900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2801; i <= 2900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03000.bc b/contrib/bc/tests/bc/scripts/divide_03000.bc
new file mode 100644
index 000000000000..772d2e8cd2c3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2901; i <= 3000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03100.bc b/contrib/bc/tests/bc/scripts/divide_03100.bc
new file mode 100644
index 000000000000..916759661db5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3001; i <= 3100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03200.bc b/contrib/bc/tests/bc/scripts/divide_03200.bc
new file mode 100644
index 000000000000..52542b9b6dd1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3101; i <= 3200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03300.bc b/contrib/bc/tests/bc/scripts/divide_03300.bc
new file mode 100644
index 000000000000..d2315cf2ad43
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3201; i <= 3300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03400.bc b/contrib/bc/tests/bc/scripts/divide_03400.bc
new file mode 100644
index 000000000000..03cf3e5c7d67
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3301; i <= 3400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03500.bc b/contrib/bc/tests/bc/scripts/divide_03500.bc
new file mode 100644
index 000000000000..8fac5cc5bb82
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3401; i <= 3500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03600.bc b/contrib/bc/tests/bc/scripts/divide_03600.bc
new file mode 100644
index 000000000000..a8a3af330a29
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3501; i <= 3600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03700.bc b/contrib/bc/tests/bc/scripts/divide_03700.bc
new file mode 100644
index 000000000000..9f38b3e61350
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3601; i <= 3700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03800.bc b/contrib/bc/tests/bc/scripts/divide_03800.bc
new file mode 100644
index 000000000000..db59cdd08602
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3701; i <= 3800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_03900.bc b/contrib/bc/tests/bc/scripts/divide_03900.bc
new file mode 100644
index 000000000000..d7de3afba717
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_03900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3801; i <= 3900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04000.bc b/contrib/bc/tests/bc/scripts/divide_04000.bc
new file mode 100644
index 000000000000..86755a73ef5b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3901; i <= 4000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04100.bc b/contrib/bc/tests/bc/scripts/divide_04100.bc
new file mode 100644
index 000000000000..03156cd3a747
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4001; i <= 4100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04200.bc b/contrib/bc/tests/bc/scripts/divide_04200.bc
new file mode 100644
index 000000000000..2df36aa73292
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4101; i <= 4200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04300.bc b/contrib/bc/tests/bc/scripts/divide_04300.bc
new file mode 100644
index 000000000000..527cbb191fa3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4201; i <= 4300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04400.bc b/contrib/bc/tests/bc/scripts/divide_04400.bc
new file mode 100644
index 000000000000..358cf70a6a81
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4301; i <= 4400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04500.bc b/contrib/bc/tests/bc/scripts/divide_04500.bc
new file mode 100644
index 000000000000..d298c5ba1801
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4401; i <= 4500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04600.bc b/contrib/bc/tests/bc/scripts/divide_04600.bc
new file mode 100644
index 000000000000..b58a50a8c5a3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4501; i <= 4600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04700.bc b/contrib/bc/tests/bc/scripts/divide_04700.bc
new file mode 100644
index 000000000000..05a561bd145b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4601; i <= 4700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04800.bc b/contrib/bc/tests/bc/scripts/divide_04800.bc
new file mode 100644
index 000000000000..5ed04489a07f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4701; i <= 4800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_04900.bc b/contrib/bc/tests/bc/scripts/divide_04900.bc
new file mode 100644
index 000000000000..ff3b46812838
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_04900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4801; i <= 4900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05000.bc b/contrib/bc/tests/bc/scripts/divide_05000.bc
new file mode 100644
index 000000000000..a32273f5ac38
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4901; i <= 5000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05100.bc b/contrib/bc/tests/bc/scripts/divide_05100.bc
new file mode 100644
index 000000000000..9b5aa7fcf72c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5001; i <= 5100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05200.bc b/contrib/bc/tests/bc/scripts/divide_05200.bc
new file mode 100644
index 000000000000..178dcac6ec5f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5101; i <= 5200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05300.bc b/contrib/bc/tests/bc/scripts/divide_05300.bc
new file mode 100644
index 000000000000..49768eca0511
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5201; i <= 5300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05400.bc b/contrib/bc/tests/bc/scripts/divide_05400.bc
new file mode 100644
index 000000000000..c0078a2fac94
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5301; i <= 5400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05500.bc b/contrib/bc/tests/bc/scripts/divide_05500.bc
new file mode 100644
index 000000000000..9d289e0f6a2e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5401; i <= 5500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05600.bc b/contrib/bc/tests/bc/scripts/divide_05600.bc
new file mode 100644
index 000000000000..66193069e42d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5501; i <= 5600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05700.bc b/contrib/bc/tests/bc/scripts/divide_05700.bc
new file mode 100644
index 000000000000..483622bfc219
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5601; i <= 5700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05800.bc b/contrib/bc/tests/bc/scripts/divide_05800.bc
new file mode 100644
index 000000000000..c8bc59d63aaf
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5701; i <= 5800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_05900.bc b/contrib/bc/tests/bc/scripts/divide_05900.bc
new file mode 100644
index 000000000000..13e5a0f2209b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_05900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5801; i <= 5900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06000.bc b/contrib/bc/tests/bc/scripts/divide_06000.bc
new file mode 100644
index 000000000000..318fc5b25f5f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5901; i <= 6000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06100.bc b/contrib/bc/tests/bc/scripts/divide_06100.bc
new file mode 100644
index 000000000000..57bf61d4730f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6001; i <= 6100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06200.bc b/contrib/bc/tests/bc/scripts/divide_06200.bc
new file mode 100644
index 000000000000..ab1ac853431e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6101; i <= 6200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06300.bc b/contrib/bc/tests/bc/scripts/divide_06300.bc
new file mode 100644
index 000000000000..e2a320b0abd2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6201; i <= 6300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06400.bc b/contrib/bc/tests/bc/scripts/divide_06400.bc
new file mode 100644
index 000000000000..f3e0557b7e8b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6301; i <= 6400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06500.bc b/contrib/bc/tests/bc/scripts/divide_06500.bc
new file mode 100644
index 000000000000..62c84d07f3cd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6401; i <= 6500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06600.bc b/contrib/bc/tests/bc/scripts/divide_06600.bc
new file mode 100644
index 000000000000..04e1d9dcdf07
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6501; i <= 6600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06700.bc b/contrib/bc/tests/bc/scripts/divide_06700.bc
new file mode 100644
index 000000000000..af23039798d9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6601; i <= 6700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06800.bc b/contrib/bc/tests/bc/scripts/divide_06800.bc
new file mode 100644
index 000000000000..6da3f2da386b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6701; i <= 6800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_06900.bc b/contrib/bc/tests/bc/scripts/divide_06900.bc
new file mode 100644
index 000000000000..769d57fb1656
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_06900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6801; i <= 6900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07000.bc b/contrib/bc/tests/bc/scripts/divide_07000.bc
new file mode 100644
index 000000000000..758b61fb99ec
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6901; i <= 7000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07100.bc b/contrib/bc/tests/bc/scripts/divide_07100.bc
new file mode 100644
index 000000000000..2ef9f19390b8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7001; i <= 7100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07200.bc b/contrib/bc/tests/bc/scripts/divide_07200.bc
new file mode 100644
index 000000000000..dcab8948d540
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7101; i <= 7200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07300.bc b/contrib/bc/tests/bc/scripts/divide_07300.bc
new file mode 100644
index 000000000000..f8aeae59b336
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7201; i <= 7300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07400.bc b/contrib/bc/tests/bc/scripts/divide_07400.bc
new file mode 100644
index 000000000000..7a26ce5583fc
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7301; i <= 7400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07500.bc b/contrib/bc/tests/bc/scripts/divide_07500.bc
new file mode 100644
index 000000000000..0c197595ae9f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7401; i <= 7500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07600.bc b/contrib/bc/tests/bc/scripts/divide_07600.bc
new file mode 100644
index 000000000000..868d0702f3db
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7501; i <= 7600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07700.bc b/contrib/bc/tests/bc/scripts/divide_07700.bc
new file mode 100644
index 000000000000..b30f66ebb5b8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7601; i <= 7700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07800.bc b/contrib/bc/tests/bc/scripts/divide_07800.bc
new file mode 100644
index 000000000000..118df8fe112d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7701; i <= 7800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_07900.bc b/contrib/bc/tests/bc/scripts/divide_07900.bc
new file mode 100644
index 000000000000..42fd0771dca6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_07900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7801; i <= 7900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08000.bc b/contrib/bc/tests/bc/scripts/divide_08000.bc
new file mode 100644
index 000000000000..3bdaa26e707e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7901; i <= 8000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08100.bc b/contrib/bc/tests/bc/scripts/divide_08100.bc
new file mode 100644
index 000000000000..f0e4592382b2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8001; i <= 8100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08200.bc b/contrib/bc/tests/bc/scripts/divide_08200.bc
new file mode 100644
index 000000000000..ef1bb329cff1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8101; i <= 8200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08300.bc b/contrib/bc/tests/bc/scripts/divide_08300.bc
new file mode 100644
index 000000000000..f3fe8a69eeda
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8201; i <= 8300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08400.bc b/contrib/bc/tests/bc/scripts/divide_08400.bc
new file mode 100644
index 000000000000..5c9ec5c8fba2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8301; i <= 8400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08500.bc b/contrib/bc/tests/bc/scripts/divide_08500.bc
new file mode 100644
index 000000000000..64059da94286
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8401; i <= 8500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08600.bc b/contrib/bc/tests/bc/scripts/divide_08600.bc
new file mode 100644
index 000000000000..72fe4114998b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8501; i <= 8600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08700.bc b/contrib/bc/tests/bc/scripts/divide_08700.bc
new file mode 100644
index 000000000000..c1927841a49f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8601; i <= 8700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08800.bc b/contrib/bc/tests/bc/scripts/divide_08800.bc
new file mode 100644
index 000000000000..4ae7fcab3dcd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8701; i <= 8800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_08900.bc b/contrib/bc/tests/bc/scripts/divide_08900.bc
new file mode 100644
index 000000000000..7e59baa4a150
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_08900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8801; i <= 8900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09000.bc b/contrib/bc/tests/bc/scripts/divide_09000.bc
new file mode 100644
index 000000000000..26d3f62ac6a1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8901; i <= 9000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09100.bc b/contrib/bc/tests/bc/scripts/divide_09100.bc
new file mode 100644
index 000000000000..e8a372db80e2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09100.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9001; i <= 9100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09200.bc b/contrib/bc/tests/bc/scripts/divide_09200.bc
new file mode 100644
index 000000000000..00d391459a46
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09200.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9101; i <= 9200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09300.bc b/contrib/bc/tests/bc/scripts/divide_09300.bc
new file mode 100644
index 000000000000..4a64b9347192
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09300.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9201; i <= 9300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09400.bc b/contrib/bc/tests/bc/scripts/divide_09400.bc
new file mode 100644
index 000000000000..55a70f7cbf41
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09400.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9301; i <= 9400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09500.bc b/contrib/bc/tests/bc/scripts/divide_09500.bc
new file mode 100644
index 000000000000..09df2d540454
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09500.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9401; i <= 9500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09600.bc b/contrib/bc/tests/bc/scripts/divide_09600.bc
new file mode 100644
index 000000000000..491e3c2caa33
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09600.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9501; i <= 9600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09700.bc b/contrib/bc/tests/bc/scripts/divide_09700.bc
new file mode 100644
index 000000000000..33a183e2493e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09700.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9601; i <= 9700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09800.bc b/contrib/bc/tests/bc/scripts/divide_09800.bc
new file mode 100644
index 000000000000..ae007e8a7a00
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09800.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9701; i <= 9800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_09900.bc b/contrib/bc/tests/bc/scripts/divide_09900.bc
new file mode 100644
index 000000000000..e8fdc75987b6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_09900.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9801; i <= 9900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/divide_10000.bc b/contrib/bc/tests/bc/scripts/divide_10000.bc
new file mode 100644
index 000000000000..f4490d7d220d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/divide_10000.bc
@@ -0,0 +1,23 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 * 10^(-scale)
+len = 1 + 2 * scale
+
+x
+scale += 10
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9901; i <= 10000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] / a[j]
+ a[i] / a[j]
+ (a[0] * i) / a[j]
+ a[0] / (a[j] * i)
+ (a[0] * i) / (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply.bc b/contrib/bc/tests/bc/scripts/multiply_00100.bc
index 3aa64cc5e031..bc979d176c2a 100644
--- a/contrib/bc/tests/bc/scripts/multiply.bc
+++ b/contrib/bc/tests/bc/scripts/multiply_00100.bc
@@ -9,7 +9,7 @@ for (i = 0; i <= len; ++i) {
a[i]
}
-for (i = 1; i <= 10000; ++i) {
+for (i = 1; i <= 100; ++i) {
for (j = 0; j < len; ++j) {
a[0] * a[j]
a[i] * a[j]
diff --git a/contrib/bc/tests/bc/scripts/multiply_00200.bc b/contrib/bc/tests/bc/scripts/multiply_00200.bc
new file mode 100644
index 000000000000..08c36d5dd4b3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 101; i <= 200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00300.bc b/contrib/bc/tests/bc/scripts/multiply_00300.bc
new file mode 100644
index 000000000000..3c56a569d2ee
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 201; i <= 300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00400.bc b/contrib/bc/tests/bc/scripts/multiply_00400.bc
new file mode 100644
index 000000000000..3dc750947aee
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 301; i <= 400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00500.bc b/contrib/bc/tests/bc/scripts/multiply_00500.bc
new file mode 100644
index 000000000000..a1f14e121cbb
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 401; i <= 500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00600.bc b/contrib/bc/tests/bc/scripts/multiply_00600.bc
new file mode 100644
index 000000000000..21a017a7f7cb
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 501; i <= 600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00700.bc b/contrib/bc/tests/bc/scripts/multiply_00700.bc
new file mode 100644
index 000000000000..3246b5e1a568
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 601; i <= 700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00800.bc b/contrib/bc/tests/bc/scripts/multiply_00800.bc
new file mode 100644
index 000000000000..4bc39b0a1fef
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 701; i <= 800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_00900.bc b/contrib/bc/tests/bc/scripts/multiply_00900.bc
new file mode 100644
index 000000000000..febc77dead15
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_00900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 801; i <= 900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01000.bc b/contrib/bc/tests/bc/scripts/multiply_01000.bc
new file mode 100644
index 000000000000..ba5c1d984f67
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 901; i <= 1000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01100.bc b/contrib/bc/tests/bc/scripts/multiply_01100.bc
new file mode 100644
index 000000000000..a09c35252286
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1001; i <= 1100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01200.bc b/contrib/bc/tests/bc/scripts/multiply_01200.bc
new file mode 100644
index 000000000000..7a6b04c48b9e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1101; i <= 1200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01300.bc b/contrib/bc/tests/bc/scripts/multiply_01300.bc
new file mode 100644
index 000000000000..4fab6beb0a62
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1201; i <= 1300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01400.bc b/contrib/bc/tests/bc/scripts/multiply_01400.bc
new file mode 100644
index 000000000000..954afe5473de
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1301; i <= 1400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01500.bc b/contrib/bc/tests/bc/scripts/multiply_01500.bc
new file mode 100644
index 000000000000..8d150418618a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1401; i <= 1500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01600.bc b/contrib/bc/tests/bc/scripts/multiply_01600.bc
new file mode 100644
index 000000000000..45f170705f99
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1501; i <= 1600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01700.bc b/contrib/bc/tests/bc/scripts/multiply_01700.bc
new file mode 100644
index 000000000000..7eb34740139e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1601; i <= 1700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01800.bc b/contrib/bc/tests/bc/scripts/multiply_01800.bc
new file mode 100644
index 000000000000..719db5b358a2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1701; i <= 1800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_01900.bc b/contrib/bc/tests/bc/scripts/multiply_01900.bc
new file mode 100644
index 000000000000..4a4a6c8b43c6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_01900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1801; i <= 1900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02000.bc b/contrib/bc/tests/bc/scripts/multiply_02000.bc
new file mode 100644
index 000000000000..432e0d078dee
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1901; i <= 2000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02100.bc b/contrib/bc/tests/bc/scripts/multiply_02100.bc
new file mode 100644
index 000000000000..825b96a7c0d3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2001; i <= 2100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02200.bc b/contrib/bc/tests/bc/scripts/multiply_02200.bc
new file mode 100644
index 000000000000..fd3d71684054
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2101; i <= 2200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02300.bc b/contrib/bc/tests/bc/scripts/multiply_02300.bc
new file mode 100644
index 000000000000..1e2adbe81fc0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2201; i <= 2300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02400.bc b/contrib/bc/tests/bc/scripts/multiply_02400.bc
new file mode 100644
index 000000000000..6f648ae5eb9d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2301; i <= 2400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02500.bc b/contrib/bc/tests/bc/scripts/multiply_02500.bc
new file mode 100644
index 000000000000..6990fa78af64
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2401; i <= 2500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02600.bc b/contrib/bc/tests/bc/scripts/multiply_02600.bc
new file mode 100644
index 000000000000..22d0eca373c9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2501; i <= 2600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02700.bc b/contrib/bc/tests/bc/scripts/multiply_02700.bc
new file mode 100644
index 000000000000..ea8d632288ec
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2601; i <= 2700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02800.bc b/contrib/bc/tests/bc/scripts/multiply_02800.bc
new file mode 100644
index 000000000000..5cd01d5012c0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2701; i <= 2800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_02900.bc b/contrib/bc/tests/bc/scripts/multiply_02900.bc
new file mode 100644
index 000000000000..cdb1cb1e43c9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_02900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2801; i <= 2900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03000.bc b/contrib/bc/tests/bc/scripts/multiply_03000.bc
new file mode 100644
index 000000000000..1afcd634ade1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2901; i <= 3000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03100.bc b/contrib/bc/tests/bc/scripts/multiply_03100.bc
new file mode 100644
index 000000000000..a39ef85bdfc5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3001; i <= 3100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03200.bc b/contrib/bc/tests/bc/scripts/multiply_03200.bc
new file mode 100644
index 000000000000..33f465a82bf6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3101; i <= 3200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03300.bc b/contrib/bc/tests/bc/scripts/multiply_03300.bc
new file mode 100644
index 000000000000..2cc412b5837f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3201; i <= 3300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03400.bc b/contrib/bc/tests/bc/scripts/multiply_03400.bc
new file mode 100644
index 000000000000..40f528023e17
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3301; i <= 3400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03500.bc b/contrib/bc/tests/bc/scripts/multiply_03500.bc
new file mode 100644
index 000000000000..dce2f326a54a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3401; i <= 3500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03600.bc b/contrib/bc/tests/bc/scripts/multiply_03600.bc
new file mode 100644
index 000000000000..1223415dc675
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3501; i <= 3600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03700.bc b/contrib/bc/tests/bc/scripts/multiply_03700.bc
new file mode 100644
index 000000000000..80397b3d0cfd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3601; i <= 3700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03800.bc b/contrib/bc/tests/bc/scripts/multiply_03800.bc
new file mode 100644
index 000000000000..0431d8b1c9d5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3701; i <= 3800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_03900.bc b/contrib/bc/tests/bc/scripts/multiply_03900.bc
new file mode 100644
index 000000000000..0f60df9aae71
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_03900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3801; i <= 3900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04000.bc b/contrib/bc/tests/bc/scripts/multiply_04000.bc
new file mode 100644
index 000000000000..ceeafea6975c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3901; i <= 4000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04100.bc b/contrib/bc/tests/bc/scripts/multiply_04100.bc
new file mode 100644
index 000000000000..980fa7cb1c7e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4001; i <= 4100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04200.bc b/contrib/bc/tests/bc/scripts/multiply_04200.bc
new file mode 100644
index 000000000000..1b16065ce434
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4101; i <= 4200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04300.bc b/contrib/bc/tests/bc/scripts/multiply_04300.bc
new file mode 100644
index 000000000000..ae2549f392b6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4201; i <= 4300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04400.bc b/contrib/bc/tests/bc/scripts/multiply_04400.bc
new file mode 100644
index 000000000000..0b22a8b36cca
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4301; i <= 4400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04500.bc b/contrib/bc/tests/bc/scripts/multiply_04500.bc
new file mode 100644
index 000000000000..374b595501f4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4401; i <= 4500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04600.bc b/contrib/bc/tests/bc/scripts/multiply_04600.bc
new file mode 100644
index 000000000000..f4e0150e100b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4501; i <= 4600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04700.bc b/contrib/bc/tests/bc/scripts/multiply_04700.bc
new file mode 100644
index 000000000000..351cf2ae3bd7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4601; i <= 4700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04800.bc b/contrib/bc/tests/bc/scripts/multiply_04800.bc
new file mode 100644
index 000000000000..75bab62c7467
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4701; i <= 4800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_04900.bc b/contrib/bc/tests/bc/scripts/multiply_04900.bc
new file mode 100644
index 000000000000..bb127c4e685d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_04900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4801; i <= 4900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05000.bc b/contrib/bc/tests/bc/scripts/multiply_05000.bc
new file mode 100644
index 000000000000..2b817f2e4f31
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4901; i <= 5000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05100.bc b/contrib/bc/tests/bc/scripts/multiply_05100.bc
new file mode 100644
index 000000000000..a5067e8d60e6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5001; i <= 5100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05200.bc b/contrib/bc/tests/bc/scripts/multiply_05200.bc
new file mode 100644
index 000000000000..4cecc2212520
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5101; i <= 5200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05300.bc b/contrib/bc/tests/bc/scripts/multiply_05300.bc
new file mode 100644
index 000000000000..03c475b3de26
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5201; i <= 5300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05400.bc b/contrib/bc/tests/bc/scripts/multiply_05400.bc
new file mode 100644
index 000000000000..5bfeb9c4f048
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5301; i <= 5400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05500.bc b/contrib/bc/tests/bc/scripts/multiply_05500.bc
new file mode 100644
index 000000000000..1e12f9233a30
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5401; i <= 5500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05600.bc b/contrib/bc/tests/bc/scripts/multiply_05600.bc
new file mode 100644
index 000000000000..25a60e2d25a1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5501; i <= 5600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05700.bc b/contrib/bc/tests/bc/scripts/multiply_05700.bc
new file mode 100644
index 000000000000..c824af19bacd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5601; i <= 5700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05800.bc b/contrib/bc/tests/bc/scripts/multiply_05800.bc
new file mode 100644
index 000000000000..a7eedc9fb733
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5701; i <= 5800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_05900.bc b/contrib/bc/tests/bc/scripts/multiply_05900.bc
new file mode 100644
index 000000000000..9bd0f7044428
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_05900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5801; i <= 5900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06000.bc b/contrib/bc/tests/bc/scripts/multiply_06000.bc
new file mode 100644
index 000000000000..6353c74cbf73
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5901; i <= 6000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06100.bc b/contrib/bc/tests/bc/scripts/multiply_06100.bc
new file mode 100644
index 000000000000..d49224821a06
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6001; i <= 6100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06200.bc b/contrib/bc/tests/bc/scripts/multiply_06200.bc
new file mode 100644
index 000000000000..c4483f401a2c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6101; i <= 6200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06300.bc b/contrib/bc/tests/bc/scripts/multiply_06300.bc
new file mode 100644
index 000000000000..c86e62d3a87f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6201; i <= 6300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06400.bc b/contrib/bc/tests/bc/scripts/multiply_06400.bc
new file mode 100644
index 000000000000..0140f164f1ac
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6301; i <= 6400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06500.bc b/contrib/bc/tests/bc/scripts/multiply_06500.bc
new file mode 100644
index 000000000000..e9ee4fe5a896
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6401; i <= 6500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06600.bc b/contrib/bc/tests/bc/scripts/multiply_06600.bc
new file mode 100644
index 000000000000..267dcbf8aa6b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6501; i <= 6600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06700.bc b/contrib/bc/tests/bc/scripts/multiply_06700.bc
new file mode 100644
index 000000000000..851c771952e1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6601; i <= 6700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06800.bc b/contrib/bc/tests/bc/scripts/multiply_06800.bc
new file mode 100644
index 000000000000..d2141d7c065c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6701; i <= 6800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_06900.bc b/contrib/bc/tests/bc/scripts/multiply_06900.bc
new file mode 100644
index 000000000000..5a9e9affde94
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_06900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6801; i <= 6900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07000.bc b/contrib/bc/tests/bc/scripts/multiply_07000.bc
new file mode 100644
index 000000000000..549a1df72211
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6901; i <= 7000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07100.bc b/contrib/bc/tests/bc/scripts/multiply_07100.bc
new file mode 100644
index 000000000000..0a664833487d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7001; i <= 7100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07200.bc b/contrib/bc/tests/bc/scripts/multiply_07200.bc
new file mode 100644
index 000000000000..913f053eab19
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7101; i <= 7200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07300.bc b/contrib/bc/tests/bc/scripts/multiply_07300.bc
new file mode 100644
index 000000000000..50643873d43f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7201; i <= 7300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07400.bc b/contrib/bc/tests/bc/scripts/multiply_07400.bc
new file mode 100644
index 000000000000..8c401f0da1dd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7301; i <= 7400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07500.bc b/contrib/bc/tests/bc/scripts/multiply_07500.bc
new file mode 100644
index 000000000000..fedd47a45d45
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7401; i <= 7500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07600.bc b/contrib/bc/tests/bc/scripts/multiply_07600.bc
new file mode 100644
index 000000000000..b1b5727d0314
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7501; i <= 7600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07700.bc b/contrib/bc/tests/bc/scripts/multiply_07700.bc
new file mode 100644
index 000000000000..40531a676a12
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7601; i <= 7700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07800.bc b/contrib/bc/tests/bc/scripts/multiply_07800.bc
new file mode 100644
index 000000000000..dd847d26911d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7701; i <= 7800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_07900.bc b/contrib/bc/tests/bc/scripts/multiply_07900.bc
new file mode 100644
index 000000000000..8313633df2f9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_07900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7801; i <= 7900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08000.bc b/contrib/bc/tests/bc/scripts/multiply_08000.bc
new file mode 100644
index 000000000000..e496cf78b42c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7901; i <= 8000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08100.bc b/contrib/bc/tests/bc/scripts/multiply_08100.bc
new file mode 100644
index 000000000000..7f07ce4e3525
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8001; i <= 8100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08200.bc b/contrib/bc/tests/bc/scripts/multiply_08200.bc
new file mode 100644
index 000000000000..0916404d35d4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8101; i <= 8200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08300.bc b/contrib/bc/tests/bc/scripts/multiply_08300.bc
new file mode 100644
index 000000000000..9de6c4997520
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8201; i <= 8300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08400.bc b/contrib/bc/tests/bc/scripts/multiply_08400.bc
new file mode 100644
index 000000000000..429bd41bd843
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8301; i <= 8400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08500.bc b/contrib/bc/tests/bc/scripts/multiply_08500.bc
new file mode 100644
index 000000000000..c84c3fb66c6e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8401; i <= 8500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08600.bc b/contrib/bc/tests/bc/scripts/multiply_08600.bc
new file mode 100644
index 000000000000..30492744af01
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8501; i <= 8600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08700.bc b/contrib/bc/tests/bc/scripts/multiply_08700.bc
new file mode 100644
index 000000000000..06cc0e094cf5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8601; i <= 8700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08800.bc b/contrib/bc/tests/bc/scripts/multiply_08800.bc
new file mode 100644
index 000000000000..9ae52a604a04
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8701; i <= 8800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_08900.bc b/contrib/bc/tests/bc/scripts/multiply_08900.bc
new file mode 100644
index 000000000000..b1a1ccfa2dc1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_08900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8801; i <= 8900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09000.bc b/contrib/bc/tests/bc/scripts/multiply_09000.bc
new file mode 100644
index 000000000000..487cb5a678bc
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8901; i <= 9000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09100.bc b/contrib/bc/tests/bc/scripts/multiply_09100.bc
new file mode 100644
index 000000000000..1c187475a5ed
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09100.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9001; i <= 9100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09200.bc b/contrib/bc/tests/bc/scripts/multiply_09200.bc
new file mode 100644
index 000000000000..2dbdb1bec1b9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09200.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9101; i <= 9200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09300.bc b/contrib/bc/tests/bc/scripts/multiply_09300.bc
new file mode 100644
index 000000000000..ffc5b8cea907
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09300.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9201; i <= 9300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09400.bc b/contrib/bc/tests/bc/scripts/multiply_09400.bc
new file mode 100644
index 000000000000..6932c1dd73c7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09400.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9301; i <= 9400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09500.bc b/contrib/bc/tests/bc/scripts/multiply_09500.bc
new file mode 100644
index 000000000000..2ac486b146a0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09500.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9401; i <= 9500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09600.bc b/contrib/bc/tests/bc/scripts/multiply_09600.bc
new file mode 100644
index 000000000000..782176ba711b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09600.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9501; i <= 9600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09700.bc b/contrib/bc/tests/bc/scripts/multiply_09700.bc
new file mode 100644
index 000000000000..fe4135de594d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09700.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9601; i <= 9700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09800.bc b/contrib/bc/tests/bc/scripts/multiply_09800.bc
new file mode 100644
index 000000000000..3115b311f312
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09800.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9701; i <= 9800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_09900.bc b/contrib/bc/tests/bc/scripts/multiply_09900.bc
new file mode 100644
index 000000000000..abbcfeefbbe9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_09900.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9801; i <= 9900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/multiply_10000.bc b/contrib/bc/tests/bc/scripts/multiply_10000.bc
new file mode 100644
index 000000000000..e97e61623eac
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/multiply_10000.bc
@@ -0,0 +1,20 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9901; i <= 10000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[0] * a[j]
+ a[i] * a[j]
+ (a[0] * i) * a[j]
+ a[0] * (a[j] * i)
+ (a[0] * i) * (a[j] * i)
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/parse.bc b/contrib/bc/tests/bc/scripts/parse.bc
deleted file mode 100644
index 179daf116efd..000000000000
--- a/contrib/bc/tests/bc/scripts/parse.bc
+++ /dev/null
@@ -1,20 +0,0 @@
-#! /usr/bin/bc -q
-
-for (b = 2; b <= 16; ++b) {
- if (b == 10) continue
- obase = 10
- print "ibase = A; ibase = ", b, "\n"
- print "\qibase = \q\n"
- b
- obase = b
- for (i = 0; i <= 4096; ++i) {
- i
- print "0.", i, "\n"
- print ".", i, "\n"
- print "1.", i, "\n"
- print i, ".", "\n"
- print i, ".", i, "\n"
- }
-}
-
-halt
diff --git a/contrib/bc/tests/bc/scripts/parse_02.bc b/contrib/bc/tests/bc/scripts/parse_02.bc
new file mode 100644
index 000000000000..dc695e8a63ed
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_02.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 2
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_03.bc b/contrib/bc/tests/bc/scripts/parse_03.bc
new file mode 100644
index 000000000000..8418c472184e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_03.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 3
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_04.bc b/contrib/bc/tests/bc/scripts/parse_04.bc
new file mode 100644
index 000000000000..6671dc3093e6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_04.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 4
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_05.bc b/contrib/bc/tests/bc/scripts/parse_05.bc
new file mode 100644
index 000000000000..868c003a507a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_05.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 5
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_06.bc b/contrib/bc/tests/bc/scripts/parse_06.bc
new file mode 100644
index 000000000000..ddef2fd58686
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_06.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 6
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_07.bc b/contrib/bc/tests/bc/scripts/parse_07.bc
new file mode 100644
index 000000000000..83fb125d719a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_07.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 7
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_08.bc b/contrib/bc/tests/bc/scripts/parse_08.bc
new file mode 100644
index 000000000000..c8f798e4e82e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_08.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 8
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_09.bc b/contrib/bc/tests/bc/scripts/parse_09.bc
new file mode 100644
index 000000000000..98463b24edde
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_09.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 9
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_11.bc b/contrib/bc/tests/bc/scripts/parse_11.bc
new file mode 100644
index 000000000000..efaf17293ce8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_11.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 11
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_12.bc b/contrib/bc/tests/bc/scripts/parse_12.bc
new file mode 100644
index 000000000000..a71a05a3b9dd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_12.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 12
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_13.bc b/contrib/bc/tests/bc/scripts/parse_13.bc
new file mode 100644
index 000000000000..37d88e7168f0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_13.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 13
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_14.bc b/contrib/bc/tests/bc/scripts/parse_14.bc
new file mode 100644
index 000000000000..e824db979639
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_14.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 14
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_15.bc b/contrib/bc/tests/bc/scripts/parse_15.bc
new file mode 100644
index 000000000000..ad954a2ac4a8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_15.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 15
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/parse_16.bc b/contrib/bc/tests/bc/scripts/parse_16.bc
new file mode 100644
index 000000000000..3a716cbe40ec
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/parse_16.bc
@@ -0,0 +1,19 @@
+#! /usr/bin/bc -q
+
+b = 16
+
+obase = 10
+print "ibase = A; ibase = ", b, "\n"
+print "\qibase = \q\n"
+b
+obase = b
+for (i = 0; i <= 4096; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print.bc b/contrib/bc/tests/bc/scripts/print.bc
deleted file mode 100644
index 9530cbdb3fc2..000000000000
--- a/contrib/bc/tests/bc/scripts/print.bc
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /usr/bin/bc -q
-
-for (b = 2; b <= 100; ++b) {
-
- if (b == 10) continue
-
- s = b * b
-
- print "obase = ", b, "\n"
- print "\qobase = \q\n"
- b
-
- for (i = 0; i <= s; ++i) {
- i
- print "0.", i, "\n"
- print ".", i, "\n"
- print "1.", i, "\n"
- print i, ".", "\n"
- print i, ".", i, "\n"
- }
-
- 2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
-}
-
-halt
diff --git a/contrib/bc/tests/bc/scripts/print_002.bc b/contrib/bc/tests/bc/scripts/print_002.bc
new file mode 100644
index 000000000000..e96bd8d3f440
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_002.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 2
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_003.bc b/contrib/bc/tests/bc/scripts/print_003.bc
new file mode 100644
index 000000000000..46365153a3c8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_003.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 3
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_004.bc b/contrib/bc/tests/bc/scripts/print_004.bc
new file mode 100644
index 000000000000..ff0b285930fe
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_004.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 4
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_005.bc b/contrib/bc/tests/bc/scripts/print_005.bc
new file mode 100644
index 000000000000..6a5982ae6a5e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_005.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 5
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_006.bc b/contrib/bc/tests/bc/scripts/print_006.bc
new file mode 100644
index 000000000000..3b9bbccb2850
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_006.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 6
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_007.bc b/contrib/bc/tests/bc/scripts/print_007.bc
new file mode 100644
index 000000000000..f6e784792575
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_007.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 7
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_008.bc b/contrib/bc/tests/bc/scripts/print_008.bc
new file mode 100644
index 000000000000..a77d41751233
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_008.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 8
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_009.bc b/contrib/bc/tests/bc/scripts/print_009.bc
new file mode 100644
index 000000000000..1aef988112a1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_009.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 9
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_011.bc b/contrib/bc/tests/bc/scripts/print_011.bc
new file mode 100644
index 000000000000..fb2d29293ad8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_011.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 11
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_012.bc b/contrib/bc/tests/bc/scripts/print_012.bc
new file mode 100644
index 000000000000..466e64e2798e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_012.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 12
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_013.bc b/contrib/bc/tests/bc/scripts/print_013.bc
new file mode 100644
index 000000000000..55525fd1398c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_013.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 13
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_014.bc b/contrib/bc/tests/bc/scripts/print_014.bc
new file mode 100644
index 000000000000..dfa40541c7a3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_014.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 14
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_015.bc b/contrib/bc/tests/bc/scripts/print_015.bc
new file mode 100644
index 000000000000..2426e409d94a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_015.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 15
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_016.bc b/contrib/bc/tests/bc/scripts/print_016.bc
new file mode 100644
index 000000000000..44131bfe3ab7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_016.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 16
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_017.bc b/contrib/bc/tests/bc/scripts/print_017.bc
new file mode 100644
index 000000000000..e6c802166d2a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_017.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 17
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_018.bc b/contrib/bc/tests/bc/scripts/print_018.bc
new file mode 100644
index 000000000000..256c3436ab5a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_018.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 18
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_019.bc b/contrib/bc/tests/bc/scripts/print_019.bc
new file mode 100644
index 000000000000..a2552236a144
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_019.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 19
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_020.bc b/contrib/bc/tests/bc/scripts/print_020.bc
new file mode 100644
index 000000000000..df15b92c727a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_020.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 20
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_021.bc b/contrib/bc/tests/bc/scripts/print_021.bc
new file mode 100644
index 000000000000..83b3d2ad3c73
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_021.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 21
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_022.bc b/contrib/bc/tests/bc/scripts/print_022.bc
new file mode 100644
index 000000000000..9ab0d5e92f5c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_022.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 22
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_023.bc b/contrib/bc/tests/bc/scripts/print_023.bc
new file mode 100644
index 000000000000..4641ee25d325
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_023.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 23
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_024.bc b/contrib/bc/tests/bc/scripts/print_024.bc
new file mode 100644
index 000000000000..7c02ba179d71
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_024.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 24
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_025.bc b/contrib/bc/tests/bc/scripts/print_025.bc
new file mode 100644
index 000000000000..95883f34338f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_025.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 25
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_026.bc b/contrib/bc/tests/bc/scripts/print_026.bc
new file mode 100644
index 000000000000..152fe8053ddd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_026.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 26
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_027.bc b/contrib/bc/tests/bc/scripts/print_027.bc
new file mode 100644
index 000000000000..60b56ca3112e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_027.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 27
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_028.bc b/contrib/bc/tests/bc/scripts/print_028.bc
new file mode 100644
index 000000000000..b41b482aaec9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_028.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 28
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_029.bc b/contrib/bc/tests/bc/scripts/print_029.bc
new file mode 100644
index 000000000000..3637407473e3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_029.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 29
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_030.bc b/contrib/bc/tests/bc/scripts/print_030.bc
new file mode 100644
index 000000000000..066546061a72
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_030.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 30
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_031.bc b/contrib/bc/tests/bc/scripts/print_031.bc
new file mode 100644
index 000000000000..5f0ba04afdc3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_031.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 31
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_032.bc b/contrib/bc/tests/bc/scripts/print_032.bc
new file mode 100644
index 000000000000..8c1f7b83b505
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_032.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 32
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_033.bc b/contrib/bc/tests/bc/scripts/print_033.bc
new file mode 100644
index 000000000000..d4af3e843772
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_033.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 33
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_034.bc b/contrib/bc/tests/bc/scripts/print_034.bc
new file mode 100644
index 000000000000..90607dac7a14
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_034.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 34
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_035.bc b/contrib/bc/tests/bc/scripts/print_035.bc
new file mode 100644
index 000000000000..175054b155ca
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_035.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 35
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_036.bc b/contrib/bc/tests/bc/scripts/print_036.bc
new file mode 100644
index 000000000000..63c212f3723d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_036.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 36
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_037.bc b/contrib/bc/tests/bc/scripts/print_037.bc
new file mode 100644
index 000000000000..8e51d9af1c40
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_037.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 37
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_038.bc b/contrib/bc/tests/bc/scripts/print_038.bc
new file mode 100644
index 000000000000..7208ed1e8507
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_038.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 38
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_039.bc b/contrib/bc/tests/bc/scripts/print_039.bc
new file mode 100644
index 000000000000..0459f33f2e0d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_039.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 39
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_040.bc b/contrib/bc/tests/bc/scripts/print_040.bc
new file mode 100644
index 000000000000..53df241dbaf0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_040.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 40
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_041.bc b/contrib/bc/tests/bc/scripts/print_041.bc
new file mode 100644
index 000000000000..c539ad9592ee
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_041.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 41
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_042.bc b/contrib/bc/tests/bc/scripts/print_042.bc
new file mode 100644
index 000000000000..088c3b2f4cb4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_042.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 42
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_043.bc b/contrib/bc/tests/bc/scripts/print_043.bc
new file mode 100644
index 000000000000..8646a8f2af4c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_043.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 43
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_044.bc b/contrib/bc/tests/bc/scripts/print_044.bc
new file mode 100644
index 000000000000..1bd208266f4b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_044.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 44
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_045.bc b/contrib/bc/tests/bc/scripts/print_045.bc
new file mode 100644
index 000000000000..7463c3e5575a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_045.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 45
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_046.bc b/contrib/bc/tests/bc/scripts/print_046.bc
new file mode 100644
index 000000000000..dd78294c5bb1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_046.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 46
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_047.bc b/contrib/bc/tests/bc/scripts/print_047.bc
new file mode 100644
index 000000000000..3b0654918876
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_047.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 47
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_048.bc b/contrib/bc/tests/bc/scripts/print_048.bc
new file mode 100644
index 000000000000..71dba3d7e536
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_048.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 48
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_049.bc b/contrib/bc/tests/bc/scripts/print_049.bc
new file mode 100644
index 000000000000..7ab19539ef2a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_049.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 49
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_050.bc b/contrib/bc/tests/bc/scripts/print_050.bc
new file mode 100644
index 000000000000..93983f5f5c6f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_050.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 50
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_051.bc b/contrib/bc/tests/bc/scripts/print_051.bc
new file mode 100644
index 000000000000..32f5e76a46b5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_051.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 51
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_052.bc b/contrib/bc/tests/bc/scripts/print_052.bc
new file mode 100644
index 000000000000..662170d78452
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_052.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 52
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_053.bc b/contrib/bc/tests/bc/scripts/print_053.bc
new file mode 100644
index 000000000000..05986f27bd7e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_053.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 53
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_054.bc b/contrib/bc/tests/bc/scripts/print_054.bc
new file mode 100644
index 000000000000..92e20b70329a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_054.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 54
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_055.bc b/contrib/bc/tests/bc/scripts/print_055.bc
new file mode 100644
index 000000000000..014637b461c2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_055.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 55
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_056.bc b/contrib/bc/tests/bc/scripts/print_056.bc
new file mode 100644
index 000000000000..42642cb8e29d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_056.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 56
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_057.bc b/contrib/bc/tests/bc/scripts/print_057.bc
new file mode 100644
index 000000000000..e4dd3d1eb8f6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_057.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 57
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_058.bc b/contrib/bc/tests/bc/scripts/print_058.bc
new file mode 100644
index 000000000000..cc2e5e5e1dae
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_058.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 58
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_059.bc b/contrib/bc/tests/bc/scripts/print_059.bc
new file mode 100644
index 000000000000..2abe27da21da
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_059.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 59
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_060.bc b/contrib/bc/tests/bc/scripts/print_060.bc
new file mode 100644
index 000000000000..c542d10d1e57
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_060.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 60
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_061.bc b/contrib/bc/tests/bc/scripts/print_061.bc
new file mode 100644
index 000000000000..bcd520e0f38e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_061.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 61
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_062.bc b/contrib/bc/tests/bc/scripts/print_062.bc
new file mode 100644
index 000000000000..4b9875e077c3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_062.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 62
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_063.bc b/contrib/bc/tests/bc/scripts/print_063.bc
new file mode 100644
index 000000000000..9f4d77042b23
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_063.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 63
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_064.bc b/contrib/bc/tests/bc/scripts/print_064.bc
new file mode 100644
index 000000000000..8878d0a8e05a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_064.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 64
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_065.bc b/contrib/bc/tests/bc/scripts/print_065.bc
new file mode 100644
index 000000000000..faf3b4361d09
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_065.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 65
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_066.bc b/contrib/bc/tests/bc/scripts/print_066.bc
new file mode 100644
index 000000000000..07f30fa22c0f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_066.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 66
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_067.bc b/contrib/bc/tests/bc/scripts/print_067.bc
new file mode 100644
index 000000000000..202604d755b0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_067.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 67
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_068.bc b/contrib/bc/tests/bc/scripts/print_068.bc
new file mode 100644
index 000000000000..f90912bef26a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_068.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 68
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_069.bc b/contrib/bc/tests/bc/scripts/print_069.bc
new file mode 100644
index 000000000000..175263e39074
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_069.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 69
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_070.bc b/contrib/bc/tests/bc/scripts/print_070.bc
new file mode 100644
index 000000000000..0786f4d3aa14
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_070.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 70
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_071.bc b/contrib/bc/tests/bc/scripts/print_071.bc
new file mode 100644
index 000000000000..292c38e91852
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_071.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 71
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_072.bc b/contrib/bc/tests/bc/scripts/print_072.bc
new file mode 100644
index 000000000000..e6506ee7ee37
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_072.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 72
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_073.bc b/contrib/bc/tests/bc/scripts/print_073.bc
new file mode 100644
index 000000000000..6b7d3efae5cd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_073.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 73
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_074.bc b/contrib/bc/tests/bc/scripts/print_074.bc
new file mode 100644
index 000000000000..e61abaf98f94
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_074.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 74
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_075.bc b/contrib/bc/tests/bc/scripts/print_075.bc
new file mode 100644
index 000000000000..84704063a65e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_075.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 75
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_076.bc b/contrib/bc/tests/bc/scripts/print_076.bc
new file mode 100644
index 000000000000..3efed22515d9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_076.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 76
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_077.bc b/contrib/bc/tests/bc/scripts/print_077.bc
new file mode 100644
index 000000000000..ef01f150c1b0
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_077.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 77
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_078.bc b/contrib/bc/tests/bc/scripts/print_078.bc
new file mode 100644
index 000000000000..8f431f54c12f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_078.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 78
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_079.bc b/contrib/bc/tests/bc/scripts/print_079.bc
new file mode 100644
index 000000000000..5eb213c19431
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_079.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 79
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_080.bc b/contrib/bc/tests/bc/scripts/print_080.bc
new file mode 100644
index 000000000000..46b1a547d3a3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_080.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 80
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_081.bc b/contrib/bc/tests/bc/scripts/print_081.bc
new file mode 100644
index 000000000000..9b0f2415f19e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_081.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 81
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_082.bc b/contrib/bc/tests/bc/scripts/print_082.bc
new file mode 100644
index 000000000000..ac1cc4028775
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_082.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 82
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_083.bc b/contrib/bc/tests/bc/scripts/print_083.bc
new file mode 100644
index 000000000000..8f6966e280f4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_083.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 83
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_084.bc b/contrib/bc/tests/bc/scripts/print_084.bc
new file mode 100644
index 000000000000..e5e2c167c6f7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_084.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 84
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_085.bc b/contrib/bc/tests/bc/scripts/print_085.bc
new file mode 100644
index 000000000000..3e5b50b591f7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_085.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 85
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_086.bc b/contrib/bc/tests/bc/scripts/print_086.bc
new file mode 100644
index 000000000000..9cfcc8982fa7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_086.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 86
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_087.bc b/contrib/bc/tests/bc/scripts/print_087.bc
new file mode 100644
index 000000000000..ed3c6687272b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_087.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 87
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_088.bc b/contrib/bc/tests/bc/scripts/print_088.bc
new file mode 100644
index 000000000000..1e001883e576
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_088.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 88
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_089.bc b/contrib/bc/tests/bc/scripts/print_089.bc
new file mode 100644
index 000000000000..4234219f487d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_089.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 89
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_090.bc b/contrib/bc/tests/bc/scripts/print_090.bc
new file mode 100644
index 000000000000..ebe4650c1696
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_090.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 90
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_091.bc b/contrib/bc/tests/bc/scripts/print_091.bc
new file mode 100644
index 000000000000..5c5fd5c95256
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_091.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 91
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_092.bc b/contrib/bc/tests/bc/scripts/print_092.bc
new file mode 100644
index 000000000000..992a738fee41
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_092.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 92
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_093.bc b/contrib/bc/tests/bc/scripts/print_093.bc
new file mode 100644
index 000000000000..7e91b2b5e8fd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_093.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 93
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_094.bc b/contrib/bc/tests/bc/scripts/print_094.bc
new file mode 100644
index 000000000000..3567fe0bf69e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_094.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 94
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_095.bc b/contrib/bc/tests/bc/scripts/print_095.bc
new file mode 100644
index 000000000000..1945f2daee1e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_095.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 95
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_096.bc b/contrib/bc/tests/bc/scripts/print_096.bc
new file mode 100644
index 000000000000..837f87a57e63
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_096.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 96
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_097.bc b/contrib/bc/tests/bc/scripts/print_097.bc
new file mode 100644
index 000000000000..efcf4a096ece
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_097.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 97
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_098.bc b/contrib/bc/tests/bc/scripts/print_098.bc
new file mode 100644
index 000000000000..d14203d29656
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_098.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 98
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_099.bc b/contrib/bc/tests/bc/scripts/print_099.bc
new file mode 100644
index 000000000000..0bbb410318ee
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_099.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 99
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/print_100.bc b/contrib/bc/tests/bc/scripts/print_100.bc
new file mode 100644
index 000000000000..4ac46e3eba42
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/print_100.bc
@@ -0,0 +1,22 @@
+#! /usr/bin/bc -q
+
+b = 100
+
+s = b * b
+
+print "obase = ", b, "\n"
+print "\qobase = \q\n"
+b
+
+for (i = 0; i <= s; ++i) {
+ i
+ print "0.", i, "\n"
+ print ".", i, "\n"
+ print "1.", i, "\n"
+ print i, ".", "\n"
+ print i, ".", i, "\n"
+}
+
+2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
+
+halt
diff --git a/contrib/bc/tests/bc/scripts/subtract.bc b/contrib/bc/tests/bc/scripts/subtract_00100.bc
index 1e592942cab3..93339780f2f7 100644
--- a/contrib/bc/tests/bc/scripts/subtract.bc
+++ b/contrib/bc/tests/bc/scripts/subtract_00100.bc
@@ -10,7 +10,7 @@ for (i = 0; i <= len; ++i) {
a[i]
}
-for (i = 1; i <= 10000; ++i) {
+for (i = 1; i <= 100; ++i) {
for (j = 0; j < len; ++j) {
a[i] - a[j]
}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00200.bc b/contrib/bc/tests/bc/scripts/subtract_00200.bc
new file mode 100644
index 000000000000..2bcad94d76d1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 101; i <= 200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00300.bc b/contrib/bc/tests/bc/scripts/subtract_00300.bc
new file mode 100644
index 000000000000..5d5b5fd2bf61
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 201; i <= 300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00400.bc b/contrib/bc/tests/bc/scripts/subtract_00400.bc
new file mode 100644
index 000000000000..9298eeec0007
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 301; i <= 400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00500.bc b/contrib/bc/tests/bc/scripts/subtract_00500.bc
new file mode 100644
index 000000000000..581a8144fea7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 401; i <= 500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00600.bc b/contrib/bc/tests/bc/scripts/subtract_00600.bc
new file mode 100644
index 000000000000..2a1a5e6eb1ae
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 501; i <= 600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00700.bc b/contrib/bc/tests/bc/scripts/subtract_00700.bc
new file mode 100644
index 000000000000..867277161d2c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 601; i <= 700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00800.bc b/contrib/bc/tests/bc/scripts/subtract_00800.bc
new file mode 100644
index 000000000000..68dfd28f1108
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 701; i <= 800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_00900.bc b/contrib/bc/tests/bc/scripts/subtract_00900.bc
new file mode 100644
index 000000000000..b343861ecf26
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_00900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 801; i <= 900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01000.bc b/contrib/bc/tests/bc/scripts/subtract_01000.bc
new file mode 100644
index 000000000000..4e8e5951c8d9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 901; i <= 1000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01100.bc b/contrib/bc/tests/bc/scripts/subtract_01100.bc
new file mode 100644
index 000000000000..0b7d1a5ca314
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1001; i <= 1100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01200.bc b/contrib/bc/tests/bc/scripts/subtract_01200.bc
new file mode 100644
index 000000000000..bfa237043f89
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1101; i <= 1200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01300.bc b/contrib/bc/tests/bc/scripts/subtract_01300.bc
new file mode 100644
index 000000000000..c83483db9e8b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1201; i <= 1300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01400.bc b/contrib/bc/tests/bc/scripts/subtract_01400.bc
new file mode 100644
index 000000000000..e979361f49f4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1301; i <= 1400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01500.bc b/contrib/bc/tests/bc/scripts/subtract_01500.bc
new file mode 100644
index 000000000000..c2ef1ee1385e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1401; i <= 1500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01600.bc b/contrib/bc/tests/bc/scripts/subtract_01600.bc
new file mode 100644
index 000000000000..2113ddefeb5f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1501; i <= 1600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01700.bc b/contrib/bc/tests/bc/scripts/subtract_01700.bc
new file mode 100644
index 000000000000..ca9505c1983f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1601; i <= 1700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01800.bc b/contrib/bc/tests/bc/scripts/subtract_01800.bc
new file mode 100644
index 000000000000..650cc6a7d551
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1701; i <= 1800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_01900.bc b/contrib/bc/tests/bc/scripts/subtract_01900.bc
new file mode 100644
index 000000000000..72c17fd1af8a
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_01900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1801; i <= 1900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02000.bc b/contrib/bc/tests/bc/scripts/subtract_02000.bc
new file mode 100644
index 000000000000..579c84e67f8f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 1901; i <= 2000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02100.bc b/contrib/bc/tests/bc/scripts/subtract_02100.bc
new file mode 100644
index 000000000000..2ed9f5f0c8a9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2001; i <= 2100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02200.bc b/contrib/bc/tests/bc/scripts/subtract_02200.bc
new file mode 100644
index 000000000000..0a11cab25d6e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2101; i <= 2200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02300.bc b/contrib/bc/tests/bc/scripts/subtract_02300.bc
new file mode 100644
index 000000000000..29c66c1913fd
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2201; i <= 2300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02400.bc b/contrib/bc/tests/bc/scripts/subtract_02400.bc
new file mode 100644
index 000000000000..b0f2f197a2c6
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2301; i <= 2400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02500.bc b/contrib/bc/tests/bc/scripts/subtract_02500.bc
new file mode 100644
index 000000000000..7e9d46a8bc3b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2401; i <= 2500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02600.bc b/contrib/bc/tests/bc/scripts/subtract_02600.bc
new file mode 100644
index 000000000000..49acabcf66e5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2501; i <= 2600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02700.bc b/contrib/bc/tests/bc/scripts/subtract_02700.bc
new file mode 100644
index 000000000000..8d7473e93f75
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2601; i <= 2700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02800.bc b/contrib/bc/tests/bc/scripts/subtract_02800.bc
new file mode 100644
index 000000000000..588db5a26ee7
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2701; i <= 2800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_02900.bc b/contrib/bc/tests/bc/scripts/subtract_02900.bc
new file mode 100644
index 000000000000..1e6a4fea0416
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_02900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2801; i <= 2900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03000.bc b/contrib/bc/tests/bc/scripts/subtract_03000.bc
new file mode 100644
index 000000000000..0eb1e3da7cf9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 2901; i <= 3000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03100.bc b/contrib/bc/tests/bc/scripts/subtract_03100.bc
new file mode 100644
index 000000000000..6513ee49fe93
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3001; i <= 3100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03200.bc b/contrib/bc/tests/bc/scripts/subtract_03200.bc
new file mode 100644
index 000000000000..310541d4de02
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3101; i <= 3200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03300.bc b/contrib/bc/tests/bc/scripts/subtract_03300.bc
new file mode 100644
index 000000000000..c984f7c73e04
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3201; i <= 3300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03400.bc b/contrib/bc/tests/bc/scripts/subtract_03400.bc
new file mode 100644
index 000000000000..608ab651fc2b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3301; i <= 3400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03500.bc b/contrib/bc/tests/bc/scripts/subtract_03500.bc
new file mode 100644
index 000000000000..215b96d850d4
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3401; i <= 3500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03600.bc b/contrib/bc/tests/bc/scripts/subtract_03600.bc
new file mode 100644
index 000000000000..90d0d4d5144e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3501; i <= 3600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03700.bc b/contrib/bc/tests/bc/scripts/subtract_03700.bc
new file mode 100644
index 000000000000..511bf1ed4f9d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3601; i <= 3700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03800.bc b/contrib/bc/tests/bc/scripts/subtract_03800.bc
new file mode 100644
index 000000000000..99b69618b745
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3701; i <= 3800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_03900.bc b/contrib/bc/tests/bc/scripts/subtract_03900.bc
new file mode 100644
index 000000000000..a438bdfb86be
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_03900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3801; i <= 3900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04000.bc b/contrib/bc/tests/bc/scripts/subtract_04000.bc
new file mode 100644
index 000000000000..7371044e02c3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 3901; i <= 4000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04100.bc b/contrib/bc/tests/bc/scripts/subtract_04100.bc
new file mode 100644
index 000000000000..f9f47d394f65
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4001; i <= 4100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04200.bc b/contrib/bc/tests/bc/scripts/subtract_04200.bc
new file mode 100644
index 000000000000..56ff98e521b1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4101; i <= 4200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04300.bc b/contrib/bc/tests/bc/scripts/subtract_04300.bc
new file mode 100644
index 000000000000..2ee5767b2088
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4201; i <= 4300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04400.bc b/contrib/bc/tests/bc/scripts/subtract_04400.bc
new file mode 100644
index 000000000000..b355f189948f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4301; i <= 4400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04500.bc b/contrib/bc/tests/bc/scripts/subtract_04500.bc
new file mode 100644
index 000000000000..aa34485891ce
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4401; i <= 4500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04600.bc b/contrib/bc/tests/bc/scripts/subtract_04600.bc
new file mode 100644
index 000000000000..cd5bea596488
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4501; i <= 4600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04700.bc b/contrib/bc/tests/bc/scripts/subtract_04700.bc
new file mode 100644
index 000000000000..36de8058bb93
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4601; i <= 4700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04800.bc b/contrib/bc/tests/bc/scripts/subtract_04800.bc
new file mode 100644
index 000000000000..cc714dd72fd9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4701; i <= 4800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_04900.bc b/contrib/bc/tests/bc/scripts/subtract_04900.bc
new file mode 100644
index 000000000000..6e8cfb8c931d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_04900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4801; i <= 4900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05000.bc b/contrib/bc/tests/bc/scripts/subtract_05000.bc
new file mode 100644
index 000000000000..f4847219bdb9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 4901; i <= 5000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05100.bc b/contrib/bc/tests/bc/scripts/subtract_05100.bc
new file mode 100644
index 000000000000..bea4f5b09f2d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5001; i <= 5100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05200.bc b/contrib/bc/tests/bc/scripts/subtract_05200.bc
new file mode 100644
index 000000000000..38a7b5c6d234
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5101; i <= 5200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05300.bc b/contrib/bc/tests/bc/scripts/subtract_05300.bc
new file mode 100644
index 000000000000..9004108f3e8d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5201; i <= 5300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05400.bc b/contrib/bc/tests/bc/scripts/subtract_05400.bc
new file mode 100644
index 000000000000..eec164c504cb
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5301; i <= 5400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05500.bc b/contrib/bc/tests/bc/scripts/subtract_05500.bc
new file mode 100644
index 000000000000..864f05e70d25
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5401; i <= 5500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05600.bc b/contrib/bc/tests/bc/scripts/subtract_05600.bc
new file mode 100644
index 000000000000..874f45183b7c
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5501; i <= 5600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05700.bc b/contrib/bc/tests/bc/scripts/subtract_05700.bc
new file mode 100644
index 000000000000..6a5c351c574f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5601; i <= 5700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05800.bc b/contrib/bc/tests/bc/scripts/subtract_05800.bc
new file mode 100644
index 000000000000..5fc99fe84503
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5701; i <= 5800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_05900.bc b/contrib/bc/tests/bc/scripts/subtract_05900.bc
new file mode 100644
index 000000000000..cb12eba549b2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_05900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5801; i <= 5900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06000.bc b/contrib/bc/tests/bc/scripts/subtract_06000.bc
new file mode 100644
index 000000000000..0c85a7267eb1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 5901; i <= 6000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06100.bc b/contrib/bc/tests/bc/scripts/subtract_06100.bc
new file mode 100644
index 000000000000..8f43fc2687d3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6001; i <= 6100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06200.bc b/contrib/bc/tests/bc/scripts/subtract_06200.bc
new file mode 100644
index 000000000000..d508561b5838
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6101; i <= 6200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06300.bc b/contrib/bc/tests/bc/scripts/subtract_06300.bc
new file mode 100644
index 000000000000..3073a3f75dfc
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6201; i <= 6300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06400.bc b/contrib/bc/tests/bc/scripts/subtract_06400.bc
new file mode 100644
index 000000000000..ee25fc01bca3
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6301; i <= 6400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06500.bc b/contrib/bc/tests/bc/scripts/subtract_06500.bc
new file mode 100644
index 000000000000..ff59fcde38c2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6401; i <= 6500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06600.bc b/contrib/bc/tests/bc/scripts/subtract_06600.bc
new file mode 100644
index 000000000000..8bd56c8d2df9
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6501; i <= 6600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06700.bc b/contrib/bc/tests/bc/scripts/subtract_06700.bc
new file mode 100644
index 000000000000..160a31bdf4a2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6601; i <= 6700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06800.bc b/contrib/bc/tests/bc/scripts/subtract_06800.bc
new file mode 100644
index 000000000000..7d2bc99dec0d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6701; i <= 6800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_06900.bc b/contrib/bc/tests/bc/scripts/subtract_06900.bc
new file mode 100644
index 000000000000..716d7c273111
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_06900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6801; i <= 6900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07000.bc b/contrib/bc/tests/bc/scripts/subtract_07000.bc
new file mode 100644
index 000000000000..259dc55507f2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 6901; i <= 7000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07100.bc b/contrib/bc/tests/bc/scripts/subtract_07100.bc
new file mode 100644
index 000000000000..b992c30681ec
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7001; i <= 7100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07200.bc b/contrib/bc/tests/bc/scripts/subtract_07200.bc
new file mode 100644
index 000000000000..afa77522e912
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7101; i <= 7200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07300.bc b/contrib/bc/tests/bc/scripts/subtract_07300.bc
new file mode 100644
index 000000000000..5dd6997fbeff
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7201; i <= 7300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07400.bc b/contrib/bc/tests/bc/scripts/subtract_07400.bc
new file mode 100644
index 000000000000..70b88b1bc04b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7301; i <= 7400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07500.bc b/contrib/bc/tests/bc/scripts/subtract_07500.bc
new file mode 100644
index 000000000000..806565dc5fa8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7401; i <= 7500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07600.bc b/contrib/bc/tests/bc/scripts/subtract_07600.bc
new file mode 100644
index 000000000000..b063df122391
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7501; i <= 7600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07700.bc b/contrib/bc/tests/bc/scripts/subtract_07700.bc
new file mode 100644
index 000000000000..f31cb7b170a8
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7601; i <= 7700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07800.bc b/contrib/bc/tests/bc/scripts/subtract_07800.bc
new file mode 100644
index 000000000000..222b583de5c5
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7701; i <= 7800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_07900.bc b/contrib/bc/tests/bc/scripts/subtract_07900.bc
new file mode 100644
index 000000000000..8a36cb2020c2
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_07900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7801; i <= 7900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08000.bc b/contrib/bc/tests/bc/scripts/subtract_08000.bc
new file mode 100644
index 000000000000..8b10e0644622
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 7901; i <= 8000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08100.bc b/contrib/bc/tests/bc/scripts/subtract_08100.bc
new file mode 100644
index 000000000000..b7bf9481f6ff
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8001; i <= 8100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08200.bc b/contrib/bc/tests/bc/scripts/subtract_08200.bc
new file mode 100644
index 000000000000..2cf2b2282ca1
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8101; i <= 8200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08300.bc b/contrib/bc/tests/bc/scripts/subtract_08300.bc
new file mode 100644
index 000000000000..43e1090b2708
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8201; i <= 8300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08400.bc b/contrib/bc/tests/bc/scripts/subtract_08400.bc
new file mode 100644
index 000000000000..ecde1157ef8d
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8301; i <= 8400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08500.bc b/contrib/bc/tests/bc/scripts/subtract_08500.bc
new file mode 100644
index 000000000000..5e6e8ac95d34
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8401; i <= 8500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08600.bc b/contrib/bc/tests/bc/scripts/subtract_08600.bc
new file mode 100644
index 000000000000..f56db3c36a3b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8501; i <= 8600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08700.bc b/contrib/bc/tests/bc/scripts/subtract_08700.bc
new file mode 100644
index 000000000000..3d5d9b94598b
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8601; i <= 8700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08800.bc b/contrib/bc/tests/bc/scripts/subtract_08800.bc
new file mode 100644
index 000000000000..87a5449472da
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8701; i <= 8800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_08900.bc b/contrib/bc/tests/bc/scripts/subtract_08900.bc
new file mode 100644
index 000000000000..2ac715811882
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_08900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8801; i <= 8900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09000.bc b/contrib/bc/tests/bc/scripts/subtract_09000.bc
new file mode 100644
index 000000000000..7c39d922b736
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 8901; i <= 9000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09100.bc b/contrib/bc/tests/bc/scripts/subtract_09100.bc
new file mode 100644
index 000000000000..5b8c99cf0312
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09100.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9001; i <= 9100; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09200.bc b/contrib/bc/tests/bc/scripts/subtract_09200.bc
new file mode 100644
index 000000000000..173f64d70786
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09200.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9101; i <= 9200; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09300.bc b/contrib/bc/tests/bc/scripts/subtract_09300.bc
new file mode 100644
index 000000000000..6226e6fecb1f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09300.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9201; i <= 9300; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09400.bc b/contrib/bc/tests/bc/scripts/subtract_09400.bc
new file mode 100644
index 000000000000..0e76fa04f14f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09400.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9301; i <= 9400; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09500.bc b/contrib/bc/tests/bc/scripts/subtract_09500.bc
new file mode 100644
index 000000000000..b5336018e368
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09500.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9401; i <= 9500; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09600.bc b/contrib/bc/tests/bc/scripts/subtract_09600.bc
new file mode 100644
index 000000000000..479bfe29e361
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09600.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9501; i <= 9600; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09700.bc b/contrib/bc/tests/bc/scripts/subtract_09700.bc
new file mode 100644
index 000000000000..14c5df67605e
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09700.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9601; i <= 9700; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09800.bc b/contrib/bc/tests/bc/scripts/subtract_09800.bc
new file mode 100644
index 000000000000..5d62bae24a40
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09800.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9701; i <= 9800; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_09900.bc b/contrib/bc/tests/bc/scripts/subtract_09900.bc
new file mode 100644
index 000000000000..d2926980b543
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_09900.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9801; i <= 9900; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/scripts/subtract_10000.bc b/contrib/bc/tests/bc/scripts/subtract_10000.bc
new file mode 100644
index 000000000000..32cafefd324f
--- /dev/null
+++ b/contrib/bc/tests/bc/scripts/subtract_10000.bc
@@ -0,0 +1,17 @@
+#! /usr/bin/bc -lq
+
+scale = 20
+x = 1234567890 / scale
+len = length(x) + 1 + scale
+len *= 2
+
+for (i = 0; i <= len; ++i) {
+ a[i] = x * (10^i)
+ a[i]
+}
+
+for (i = 9901; i <= 10000; ++i) {
+ for (j = 0; j < len; ++j) {
+ a[i] - a[j]
+ }
+}
diff --git a/contrib/bc/tests/bc/timeconst.sh b/contrib/bc/tests/bc/timeconst.sh
index 35bd80d56040..393268843649 100755
--- a/contrib/bc/tests/bc/timeconst.sh
+++ b/contrib/bc/tests/bc/timeconst.sh
@@ -1,6 +1,6 @@
#! /bin/sh
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -81,6 +81,9 @@ base=$(basename "$timeconst")
# If the script does not exist, just skip. Running this test is not necessary.
if [ ! -f "$timeconst" ]; then
printf 'Warning: %s does not exist\n' "$timeconst"
+ printf '%s is not part of this bc because of license incompatibility\n' "$timeconst"
+ printf 'Get it at https://github.com/torvalds/linux/blob/master/kernel/time/timeconst.bc\n'
+ printf 'if you want to test it\n'
printf 'Skipping...\n'
exit 0
fi
diff --git a/contrib/bc/tests/bcl.c b/contrib/bc/tests/bcl.c
index 3a2df4488c05..fb730e773c6d 100644
--- a/contrib/bc/tests/bcl.c
+++ b/contrib/bc/tests/bcl.c
@@ -3,7 +3,7 @@
*
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+ * Copyright (c) 2018-2025 Gavin D. Howard and contributors.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
diff --git a/contrib/bc/tests/dc/scripts/easter.dc b/contrib/bc/tests/dc/scripts/easter.dc
new file mode 100644
index 000000000000..e2c126ba1129
--- /dev/null
+++ b/contrib/bc/tests/dc/scripts/easter.dc
@@ -0,0 +1,49 @@
+#! /usr/bin/dc
+
+# This is the actual script.
+[
+ ddsf
+ [
+ lfp
+ [too early
+ ]P
+ q
+ ]s@
+ 1583>@
+ ddd19%1+sg100/1+d3*4/12-sx8*5+25/5-sz5*4/lx-10-sdlg11*20+lz+lx-30%
+ d
+ [30+]s@
+ 0>@d
+ [
+ [1+]s@
+ lg11<@
+ ]s@
+ 25=@d
+ [1+]s@
+ 24=@se44le-d
+ [30+]s@
+ 21>@dld+7%-7+
+ [March ]sm
+ d
+ [
+ 31-
+ [April ]sm
+ ]s@
+ 31<@dn32PsnlmPdnsn1z>p
+ 10P
+]sp
+
+2021
+lpx
+
+2022
+lpx
+
+2023
+lpx
+
+2024
+lpx
+
+2025
+lpx
diff --git a/contrib/bc/tests/dc/scripts/easter.sh b/contrib/bc/tests/dc/scripts/easter.sh
deleted file mode 100755
index ee8fa1d94c81..000000000000
--- a/contrib/bc/tests/dc/scripts/easter.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-#
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-set -e
-
-script="$0"
-
-testdir=$(dirname "${script}")
-
-# Just print the usage and exit with an error. This can receive a message to
-# print.
-# @param 1 A message to print.
-usage() {
- if [ $# -eq 1 ]; then
- printf '%s\n\n' "$1"
- fi
- printf 'usage: %s dc_exec year [options...]\n' "$script"
- exit 1
-}
-
-. "$testdir/../../../scripts/functions.sh"
-
-if test $# -lt 2
-then
- usage "Not enough arguments; need 2"
-fi
-
-dc_exec="$1"
-shift
-check_exec_arg "$dc_exec"
-
-year="$1"
-shift
-
-echo $year '
-[
- ddsf
- [
- lfp
- [too early
- ]P
- q
- ]s@
- 1583>@
- ddd19%1+sg100/1+d3*4/12-sx8*5+25/5-sz5*4/lx-10-sdlg11*20+lz+lx-30%
- d
- [30+]s@
- 0>@d
- [
- [1+]s@
- lg11<@
- ]s@
- 25=@d
- [1+]s@
- 24=@se44le-d
- [30+]s@
- 21>@dld+7%-7+
- [March ]sm
- d
- [
- 31-
- [April ]sm
- ]s@
- 31<@psnlmPpsn1z>p
-]sp
-lpx' | "$dc_exec" "$@" | tr '\012' ' '
-echo ''
diff --git a/contrib/bc/tests/dc/scripts/easter.txt b/contrib/bc/tests/dc/scripts/easter.txt
new file mode 100644
index 000000000000..0aef9531346d
--- /dev/null
+++ b/contrib/bc/tests/dc/scripts/easter.txt
@@ -0,0 +1,5 @@
+4 April 2021
+17 April 2022
+9 April 2023
+31 March 2024
+20 April 2025
diff --git a/contrib/bc/tests/dc/scripts/prime.dc b/contrib/bc/tests/dc/scripts/prime.dc
index cc769d2bbee1..6902aaef8f0c 100644
--- a/contrib/bc/tests/dc/scripts/prime.dc
+++ b/contrib/bc/tests/dc/scripts/prime.dc
@@ -1 +1 @@
-0k2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l# x0<&2+d100000>.]ds.x
+0k2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l# x0<&2+d10000>.]ds.x
diff --git a/contrib/bc/tests/error.sh b/contrib/bc/tests/error.sh
index 15cbd5577ed6..aa229a916809 100755
--- a/contrib/bc/tests/error.sh
+++ b/contrib/bc/tests/error.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -100,8 +100,6 @@ fi
if [ "$d" = "bc" ]; then
opts="-l"
halt="halt"
- read_call="read()"
- read_expr="${read_call}\n5+5;"
else
opts="-x"
halt="q"
diff --git a/contrib/bc/tests/errors.sh b/contrib/bc/tests/errors.sh
index 47053f9c7b43..93e4f5d0dedf 100755
--- a/contrib/bc/tests/errors.sh
+++ b/contrib/bc/tests/errors.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -89,8 +89,6 @@ read_errors="read_errors"
if [ "$d" = "bc" ]; then
opts="-l"
halt="halt"
- read_call="read()"
- read_expr="${read_call}\n5+5;"
else
opts="-x"
halt="q"
diff --git a/contrib/bc/tests/extra_required.txt b/contrib/bc/tests/extra_required.txt
index 038e6775d644..b335af4d57bf 100644
--- a/contrib/bc/tests/extra_required.txt
+++ b/contrib/bc/tests/extra_required.txt
@@ -1,5 +1,20 @@
engineering
-lib2
+lib2_p
+lib2_r
+lib2_ceil
+lib2_log
+lib2_root
+lib2_gcd
+lib2_bytes
+lib2_pi
+lib2_tan
+lib2_a2
+lib2_r2d
+lib2_d2r
+lib2_fac
+lib2_perm
+lib2_uint
+lib2_rand
fib
places
rand
diff --git a/contrib/bc/tests/history.py b/contrib/bc/tests/history.py
index a3b722386a62..cf19174f6d90 100755
--- a/contrib/bc/tests/history.py
+++ b/contrib/bc/tests/history.py
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -128,7 +128,7 @@ def write_str(child, s):
def bc_banner(child):
bc_banner1 = "bc [0-9]+\\.[0-9]+\\.[0-9]+\r\n"
bc_banner2 = "Copyright \\(c\\) 2018-[2-9][0-9][0-9][0-9] Gavin D. Howard and contributors\r\n"
- bc_banner3 = "Report bugs at: https://git.gavinhoward.com/gavin/bc\r\n\r\n"
+ bc_banner3 = "Report bugs at: https://github.com/gavinhoward/bc\r\n\r\n"
bc_banner4 = "This is free software with ABSOLUTELY NO WARRANTY.\r\n\r\n"
expect(child, bc_banner1)
expect(child, bc_banner2)
diff --git a/contrib/bc/tests/history.sh b/contrib/bc/tests/history.sh
index d06d3c6af104..514ee1769903 100755
--- a/contrib/bc/tests/history.sh
+++ b/contrib/bc/tests/history.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
diff --git a/contrib/bc/tests/other.sh b/contrib/bc/tests/other.sh
deleted file mode 100755
index 1012fe919dea..000000000000
--- a/contrib/bc/tests/other.sh
+++ /dev/null
@@ -1,593 +0,0 @@
-#! /bin/sh
-#
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-set -e
-
-script="$0"
-testdir=$(dirname "$script")
-
-. "$testdir/../scripts/functions.sh"
-
-outputdir=${BC_TEST_OUTPUT_DIR:-$testdir}
-
-# Just print the usage and exit with an error. This can receive a message to
-# print.
-# @param 1 A message to print.
-usage() {
- if [ $# -eq 1 ]; then
- printf '%s\n\n' "$1"
- fi
- printf 'usage: %s dir extra_math [exec args...]\n' "$script"
- exit 1
-}
-
-# Command-line processing.
-if [ "$#" -ge 2 ]; then
-
- d="$1"
- shift
- check_d_arg "$d"
-
- extra_math="$1"
- shift
- check_bool_arg "$extra_math"
-
-else
- usage "Not enough arguments; need 2"
-fi
-
-if [ "$#" -lt 1 ]; then
- exe="$testdir/../bin/$d"
- check_exec_arg "$exe"
-else
- exe="$1"
- shift
- check_exec_arg "$exe"
-fi
-
-if [ "$d" = "bc" ]; then
- halt="quit"
-else
- halt="q"
-fi
-
-mkdir -p "$outputdir"
-
-# For tests later.
-num=100000000000000000000000000000000000000000000000000000000000000000000000000000
-num2="$num"
-numres="$num"
-num70="10000000000000000000000000000000000000000000000000000000000000000000\\
-0000000000"
-
-# Set stuff for the correct calculator.
-if [ "$d" = "bc" ]; then
- halt="halt"
- opt="x"
- lopt="extended-register"
- line_var="BC_LINE_LENGTH"
- lltest="line_length()"
-else
- halt="q"
- opt="l"
- lopt="mathlib"
- line_var="DC_LINE_LENGTH"
- num="$num pR"
- lltest="glpR"
-fi
-
-# I use these, so unset them to make the tests work.
-unset BC_ENV_ARGS
-unset BC_LINE_LENGTH
-unset DC_ENV_ARGS
-unset DC_LINE_LENGTH
-
-set +e
-
-printf '\nRunning %s quit test...' "$d"
-
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" > /dev/null 2>&1
-
-checktest_retcode "$d" "$?" "quit"
-
-# bc has two halt or quit commands, so test the second as well.
-if [ "$d" = bc ]; then
-
- printf '%s\n' "quit" 2> /dev/null | "$exe" "$@" > /dev/null 2>&1
-
- checktest_retcode "$d" "$?" quit
-
- two=$("$exe" "$@" -e 1+1 -e quit)
-
- checktest_retcode "$d" "$?" quit
-
- if [ "$two" != "2" ]; then
- err_exit "$d failed test quit" 1
- fi
-fi
-
-printf 'pass\n'
-
-base=$(basename "$exe")
-
-printf 'Running %s environment var tests...' "$d"
-
-if [ "$d" = "bc" ]; then
-
- export BC_ENV_ARGS=" '-l' '' -q"
-
- printf 's(.02893)\n' 2> /dev/null | "$exe" "$@" > /dev/null
-
- checktest_retcode "$d" "$?" "environment var"
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -e 4 > /dev/null
-
- err="$?"
- checktest_retcode "$d" "$?" "environment var"
-
- printf 'pass\n'
-
- printf 'Running keyword redefinition test...'
-
- unset BC_ENV_ARGS
-
- redefine_res="$outputdir/bc_outputs/redefine.txt"
- redefine_out="$outputdir/bc_outputs/redefine_results.txt"
-
- outdir=$(dirname "$redefine_out")
-
- if [ ! -d "$outdir" ]; then
- mkdir -p "$outdir"
- fi
-
- printf '5\n0\n' > "$redefine_res"
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" --redefine=print -e 'define print(x) { x }' -e 'print(5)' > "$redefine_out"
- err="$?"
-
- checktest "$d" "$err" "keyword redefinition" "$redefine_res" "$redefine_out"
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -r "abs" -r "else" -e 'abs = 5;else = 0' -e 'abs;else' > "$redefine_out"
- err="$?"
-
- checktest "$d" "$err" "keyword redefinition" "$redefine_res" "$redefine_out"
-
- if [ "$extra_math" -ne 0 ]; then
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -lr abs -e "perm(5, 1)" -e "0" > "$redefine_out"
- err="$?"
-
- checktest "$d" "$err" "keyword not redefined in builtin library" "$redefine_res" "$redefine_out"
-
- fi
-
- "$exe" "$@" -r "break" -e 'define break(x) { x }' 2> "$redefine_out"
- err="$?"
-
- checkerrtest "$d" "$err" "keyword redefinition error" "$redefine_out" "$d"
-
- "$exe" "$@" -e 'define read(x) { x }' 2> "$redefine_out"
- err="$?"
-
- checkerrtest "$d" "$err" "Keyword redefinition error without BC_REDEFINE_KEYWORDS" "$redefine_out" "$d"
-
- printf 'pass\n'
- printf 'Running multiline comment expression file test...'
-
- multiline_expr_res=""
- multiline_expr_out="$outputdir/bc_outputs/multiline_expr_results.txt"
-
- # tests/bc/misc1.txt happens to have a multiline comment in it.
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -f "$testdir/bc/misc1.txt" > "$multiline_expr_out"
- err="$?"
-
- checktest "$d" "$err" "multiline comment in expression file" "$testdir/bc/misc1_results.txt" \
- "$multiline_expr_out"
-
- printf 'pass\n'
- printf 'Running multiline comment expression file error test...'
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -f "$testdir/bc/errors/05.txt" 2> "$multiline_expr_out"
- err="$?"
-
- checkerrtest "$d" "$err" "multiline comment in expression file error" \
- "$multiline_expr_out" "$d"
-
- printf 'pass\n'
- printf 'Running multiline string expression file test...'
-
- # tests/bc/strings.txt happens to have a multiline string in it.
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -f "$testdir/bc/strings.txt" > "$multiline_expr_out"
- err="$?"
-
- checktest "$d" "$err" "multiline string in expression file" "$testdir/bc/strings_results.txt" \
- "$multiline_expr_out"
-
- printf 'pass\n'
- printf 'Running multiline string expression file error test...'
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -f "$testdir/bc/errors/16.txt" 2> "$multiline_expr_out"
- err="$?"
-
- checkerrtest "$d" "$err" "multiline string in expression file with backslash error" \
- "$multiline_expr_out" "$d"
-
- printf 'halt\n' 2> /dev/null | "$exe" "$@" -f "$testdir/bc/errors/04.txt" 2> "$multiline_expr_out"
- err="$?"
-
- checkerrtest "$d" "$err" "multiline string in expression file error" \
- "$multiline_expr_out" "$d"
-
- printf 'pass\n'
-
-else
-
- export DC_ENV_ARGS="'-x'"
- export DC_EXPR_EXIT="1"
-
- printf '4s stuff\n' 2> /dev/null | "$exe" "$@" > /dev/null
-
- checktest_retcode "$d" "$?" "environment var"
-
- "$exe" "$@" -e 4pR > /dev/null
-
- checktest_retcode "$d" "$?" "environment var"
-
- printf 'pass\n'
-
- set +e
-
- # dc has an extra test for a case that someone found running this easter.dc
- # script. It went into an infinite loop, so we want to check that we did not
- # regress.
- printf 'three\n' 2> /dev/null | cut -c1-3 > /dev/null
- err=$?
-
- if [ "$err" -eq 0 ]; then
-
- printf 'Running dc Easter script...'
-
- easter_out="$outputdir/dc_outputs/easter.txt"
- easter_res="$outputdir/dc_outputs/easter_results.txt"
-
- outdir=$(dirname "$easter_out")
-
- if [ ! -d "$outdir" ]; then
- mkdir -p "$outdir"
- fi
-
- printf '4 April 2021\n' > "$easter_res"
-
- "$testdir/dc/scripts/easter.sh" "$exe" 2021 "$@" 2> /dev/null | cut -c1-12 > "$easter_out"
- err="$?"
-
- checktest "$d" "$err" "Easter script" "$easter_out" "$easter_res"
-
- printf 'pass\n'
- fi
-
- unset DC_ENV_ARGS
- unset DC_EXPR_EXIT
-
- printf 'Running dc extended register command tests...'
-
- ext_reg_out="$outputdir/dc_outputs/ext_reg.txt"
- ext_reg_res="$outputdir/dc_outputs/ext_reg_results.txt"
-
- outdir=$(dirname "$ext_reg_out")
-
- if [ ! -d "$outdir" ]; then
- mkdir -p "$outdir"
- fi
-
- printf '0\n' > "$ext_reg_res"
-
- printf '%s\n' "$halt" | "$exe" "$@" -e "gxpR" 2> /dev/null > "$ext_reg_out"
- err="$?"
-
- checktest "$d" "$err" "Extended register command" "$ext_reg_out" "$ext_reg_res"
-
- printf '1\n' > "$ext_reg_res"
-
- printf '%s\n' "$halt" | "$exe" "$@" -x -e "gxpR" 2> /dev/null > "$ext_reg_out"
- err="$?"
-
- checktest "$d" "$err" "Extended register command" "$ext_reg_out" "$ext_reg_res"
-
- printf 'pass\n'
-
-fi
-
-out1="$outputdir/${d}_outputs/${d}_other.txt"
-out2="$outputdir/${d}_outputs/${d}_other_test.txt"
-
-printf 'Running %s line length tests...' "$d"
-
-printf '%s\n' "$numres" > "$out1"
-
-export "$line_var"=80
-printf '%s\n' "$num" 2> /dev/null | "$exe" "$@" > "$out2"
-
-checktest "$d" "$?" "line length" "$out1" "$out2"
-
-printf '%s\n' "$num70" > "$out1"
-
-export "$line_var"=2147483647
-printf '%s\n' "$num" 2> /dev/null | "$exe" "$@" > "$out2"
-
-checktest "$d" "$?" "line length 2" "$out1" "$out2"
-
-printf '%s\n' "$num2" > "$out1"
-
-export "$line_var"=62
-printf '%s\n' "$num" 2> /dev/null | "$exe" "$@" -L > "$out2"
-
-checktest "$d" "$?" "line length 3" "$out1" "$out2"
-
-printf '0\n' > "$out1"
-printf '%s\n' "$lltest" 2> /dev/null | "$exe" "$@" -L > "$out2"
-
-checktest "$d" "$?" "line length 3" "$out1" "$out2"
-
-printf 'pass\n'
-
-printf '%s\n' "$numres" > "$out1"
-export "$line_var"=2147483647
-
-printf 'Running %s arg tests...' "$d"
-
-f="$testdir/$d/add.txt"
-exprs=$(cat "$f")
-results=$(cat "$testdir/$d/add_results.txt")
-
-printf '%s\n%s\n%s\n%s\n' "$results" "$results" "$results" "$results" > "$out1"
-
-"$exe" "$@" -e "$exprs" -f "$f" --expression "$exprs" --file "$f" -e "$halt" > "$out2"
-
-checktest "$d" "$?" "arg" "$out1" "$out2"
-
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -- "$f" "$f" "$f" "$f" > "$out2"
-
-checktest "$d" "$?" "arg" "$out1" "$out2"
-
-if [ "$d" = "bc" ]; then
- printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -i > /dev/null 2>&1
-fi
-
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -h > /dev/null
-checktest_retcode "$d" "$?" "arg"
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -P > /dev/null
-checktest_retcode "$d" "$?" "arg"
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -R > /dev/null
-checktest_retcode "$d" "$?" "arg"
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -v > /dev/null
-checktest_retcode "$d" "$?" "arg"
-printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -V > /dev/null
-checktest_retcode "$d" "$?" "arg"
-
-out=$(printf '0.1\n-0.1\n1.1\n-1.1\n0.1\n-0.1\n')
-printf '%s\n' "$out" > "$out1"
-
-if [ "$d" = "bc" ]; then
- data=$(printf '0.1\n-0.1\n1.1\n-1.1\n.1\n-.1\n')
-else
- data=$(printf '0.1pR\n_0.1pR\n1.1pR\n_1.1pR\n.1pR\n_.1pR\n')
-fi
-
-printf '%s\n' "$data" 2> /dev/null | "$exe" "$@" -z > "$out2"
-checktest "$d" "$?" "leading zero" "$out1" "$out2"
-
-if [ "$d" = "bc" ] && [ "$extra_math" -ne 0 ]; then
-
- printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" -lz "$testdir/bc/leadingzero.txt" > "$out2"
-
- checktest "$d" "$?" "leading zero script" "$testdir/bc/leadingzero_results.txt" "$out2"
-
-fi
-
-"$exe" "$@" -f "saotehasotnehasthistohntnsahxstnhalcrgxgrlpyasxtsaosysxsatnhoy.txt" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "invalid file argument" "$out2" "$d"
-
-"$exe" "$@" "-$opt" -e "$exprs" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "invalid option argument" "$out2" "$d"
-
-"$exe" "$@" "--$lopt" -e "$exprs" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "invalid long option argument" "$out2" "$d"
-
-"$exe" "$@" "-u" -e "$exprs" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "unrecognized option argument" "$out2" "$d"
-
-"$exe" "$@" "--uniform" -e "$exprs" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "unrecognized long option argument" "$out2" "$d"
-
-"$exe" "$@" -f > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "missing required argument to short option" "$out2" "$d"
-
-"$exe" "$@" --file > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "missing required argument to long option" "$out2" "$d"
-
-"$exe" "$@" --version=5 > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "given argument to long option with no argument" "$out2" "$d"
-
-"$exe" "$@" -: > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "colon short option" "$out2" "$d"
-
-"$exe" "$@" --: > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "colon long option" "$out2" "$d"
-
-printf 'pass\n'
-
-printf 'Running %s builtin variable arg tests...' "$d"
-
-if [ "$extra_math" -ne 0 ]; then
-
- out=$(printf '14\n15\n16\n17.25\n')
- printf '%s\n' "$out" > "$out1"
-
- if [ "$d" = "bc" ]; then
- data=$(printf 's=scale;i=ibase;o=obase;t=seed@2;ibase=A;obase=A;s;i;o;t;')
- else
- data=$(printf 'J2@OIKAiAopRpRpRpR')
- fi
-
- printf '%s\n' "$data" 2> /dev/null | "$exe" "$@" -S14 -I15 -O16 -E17.25 > "$out2"
- checktest "$d" "$?" "builtin variable args" "$out1" "$out2"
-
- printf '%s\n' "$data" 2> /dev/null | "$exe" "$@" --scale=14 --ibase=15 --obase=16 --seed=17.25 > "$out2"
- checktest "$d" "$?" "builtin variable long args" "$out1" "$out2"
-
-else
-
- out=$(printf '14\n15\n16\n')
- printf '%s\n' "$out" > "$out1"
-
- if [ "$d" = "bc" ]; then
- data=$(printf 's=scale;i=ibase;o=obase;ibase=A;obase=A;s;i;o;')
- else
- data=$(printf 'OIKAiAopRpRpR')
- fi
-
- printf '%s\n' "$data" 2> /dev/null | "$exe" "$@" -S14 -I15 -O16 > "$out2"
- checktest "$d" "$?" "builtin variable args" "$out1" "$out2"
-
- printf '%s\n' "$data" 2> /dev/null | "$exe" "$@" --scale=14 --ibase=15 --obase=16 > "$out2"
- checktest "$d" "$?" "builtin variable long args" "$out1" "$out2"
-
-fi
-
-if [ "$d" = "bc" ]; then
-
- out=$(printf '100\n')
- printf '%s\n' "$out" > "$out1"
-
- printf 'scale\n' 2> /dev/null | "$exe" "$@" -S100 -l > "$out2"
- checktest "$d" "$?" "builtin variable args with math lib" "$out1" "$out2"
-
- printf 'scale\n' 2> /dev/null | "$exe" "$@" --scale=100 --mathlib > "$out2"
- checktest "$d" "$?" "builtin variable long args with math lib" "$out1" "$out2"
-
- export BC_ENV_ARGS="-l"
-
- printf 'scale\n' 2> /dev/null | "$exe" "$@" -S100 > "$out2"
- checktest "$d" "$?" "builtin variable args with math lib env arg" "$out1" "$out2"
-
- printf 'scale\n' 2> /dev/null | "$exe" "$@" --scale=100 > "$out2"
- checktest "$d" "$?" "builtin variable long args with math lib env arg" "$out1" "$out2"
-
- export BC_ENV_ARGS="-S100"
-
- printf 'scale\n' 2> /dev/null | "$exe" "$@" -l > "$out2"
- checktest "$d" "$?" "builtin variable args with math lib arg" "$out1" "$out2"
-
- export BC_ENV_ARGS="--scale=100"
-
- printf 'scale\n' 2> /dev/null | "$exe" "$@" -l > "$out2"
- checktest "$d" "$?" "builtin variable long args with math lib arg" "$out1" "$out2"
-
-fi
-
-printf 'scale\n' 2> /dev/null | "$exe" "$@" --scale=18923c.rlg > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "invalid command-line arg for builtin variable" "$out2" "$d"
-
-if [ "$extra_math" -ne 0 ]; then
-
- printf 'seed\n' 2> /dev/null | "$exe" "$@" --seed=18923c.rlg > /dev/null 2> "$out2"
- err="$?"
-
- checkerrtest "$d" "$err" "invalid command-line arg for seed" "$out2" "$d"
-
-fi
-
-printf 'pass\n'
-
-printf 'Running %s directory test...' "$d"
-
-"$exe" "$@" "$testdir" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "directory" "$out2" "$d"
-
-printf 'pass\n'
-
-printf 'Running %s binary file test...' "$d"
-
-bin="/bin/sh"
-
-"$exe" "$@" "$bin" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "binary file" "$out2" "$d"
-
-printf 'pass\n'
-
-printf 'Running %s binary stdin test...' "$d"
-
-cat "$bin" 2> /dev/null | "$exe" "$@" > /dev/null 2> "$out2"
-err="$?"
-
-checkerrtest "$d" "$err" "binary stdin" "$out2" "$d"
-
-printf 'pass\n'
-
-if [ "$d" = "bc" ]; then
-
- printf 'Running %s limits tests...' "$d"
- printf 'limits\n' 2> /dev/null | "$exe" "$@" /dev/null > "$out2" 2>&1
-
- checktest_retcode "$d" "$?" "limits"
-
- if [ ! -s "$out2" ]; then
- err_exit "$d did not produce output on the limits test" 1
- fi
-
- exec printf 'pass\n'
-
-fi
diff --git a/contrib/bc/tests/read.sh b/contrib/bc/tests/read.sh
deleted file mode 100755
index fd4b9b6721a5..000000000000
--- a/contrib/bc/tests/read.sh
+++ /dev/null
@@ -1,166 +0,0 @@
-#! /bin/sh
-#
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-set -e
-
-script="$0"
-testdir=$(dirname "$script")
-
-. "$testdir/../scripts/functions.sh"
-
-outputdir=${BC_TEST_OUTPUT_DIR:-$testdir}
-
-# Just print the usage and exit with an error. This can receive a message to
-# print.
-# @param 1 A message to print.
-usage() {
- if [ $# -eq 1 ]; then
- printf '%s\n\n' "$1"
- fi
- printf 'usage: %s dir [exe [args...]]\n' "$script"
- printf 'valid dirs are:\n'
- printf '\n'
- cat "$testdir/all.txt"
- printf '\n'
- exit 1
-}
-
-# Command-line processing.
-if [ "$#" -lt 1 ]; then
- usage "Not enough arguments"
-fi
-
-d="$1"
-shift
-check_d_arg "$d"
-
-if [ "$#" -gt 0 ]; then
- exe="$1"
- shift
- check_exec_arg "$exe"
-else
- exe="$testdir/../bin/$d"
- check_exec_arg "$exe"
-fi
-
-name="$testdir/$d/read.txt"
-results="$testdir/$d/read_results.txt"
-errors="$testdir/$d/read_errors.txt"
-
-out="$outputdir/${d}_outputs/read_results.txt"
-multiple_res="$outputdir/${d}_outputs/read_multiple_results.txt"
-outdir=$(dirname "$out")
-
-# Make sure the directory exists.
-if [ ! -d "$outdir" ]; then
- mkdir -p "$outdir"
-fi
-
-exebase=$(basename "$exe")
-
-# Set stuff for the correct calculator.
-if [ "$d" = "bc" ]; then
- options="-lq"
- halt="halt"
- read_call="read()"
- read_expr="${read_call}\n5+5;"
- read_multiple=$(printf '%s\n%s\n%s\n' "3" "2" "1")
-else
- options="-x"
- halt="q"
- read_call="?"
- read_expr="${read_call}"
- read_multiple=$(printf '%spR\n%spR\n%spR\n' "3" "2" "1")
-fi
-
-# I use these, so unset them to make the tests work.
-unset BC_ENV_ARGS
-unset BC_LINE_LENGTH
-unset DC_ENV_ARGS
-unset DC_LINE_LENGTH
-
-printf 'Running %s read...' "$d"
-
-set +e
-
-# Run read() on every line.
-while read line; do
-
- printf '%s\n%s\n' "$read_call" "$line" | "$exe" "$@" "$options" > "$out"
- checktest "$d" "$?" 'read' "$results" "$out"
-
-done < "$name"
-
-printf 'pass\n'
-
-printf 'Running %s read multiple...' "$d"
-
-printf '3\n2\n1\n' > "$multiple_res"
-
-# Run multiple read() calls.
-printf '%s\n' "$read_multiple" | "$exe" "$@" "$options" -e "$read_call" -e "$read_call" -e "$read_call" > "$out"
-checktest "$d" "$?" 'read multiple' "$multiple_res" "$out"
-
-printf 'pass\n'
-
-printf 'Running %s read errors...' "$d"
-
-# Run read on every line.
-while read line; do
-
- printf '%s\n%s\n' "$read_call" "$line" | "$exe" "$@" "$options" 2> "$out" > /dev/null
- err="$?"
-
- checkerrtest "$d" "$err" "$line" "$out" "$exebase"
-
-done < "$errors"
-
-printf 'pass\n'
-
-printf 'Running %s empty read...' "$d"
-
-read_test=$(printf '%s\n' "$read_call")
-
-printf '%s\n' "$read_test" | "$exe" "$@" "$opts" 2> "$out" > /dev/null
-err="$?"
-
-checkerrtest "$d" "$err" "$read_test" "$out" "$exebase"
-
-printf 'pass\n'
-
-printf 'Running %s read EOF...' "$d"
-
-read_test=$(printf '%s' "$read_call")
-
-printf '%s' "$read_test" | "$exe" "$@" "$opts" 2> "$out" > /dev/null
-err="$?"
-
-checkerrtest "$d" "$err" "$read_test" "$out" "$exebase"
-
-exec printf 'pass\n'
diff --git a/contrib/bc/tests/script.sh b/contrib/bc/tests/script.sh
index b1346ef09904..ce5cf19ee275 100755
--- a/contrib/bc/tests/script.sh
+++ b/contrib/bc/tests/script.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -44,7 +44,7 @@ usage() {
if [ $# -eq 1 ]; then
printf '%s\n\n' "$1"
fi
- printf 'usage: %s dir script [run_extra_tests] [run_stack_tests] [generate_tests] [time_tests] [exec args...]\n' "$script"
+ printf 'usage: %s dir script [run_extra_tests] [run_stack_tests] [generate_tests] [exec args...]\n' "$script"
exit 1
}
@@ -91,15 +91,6 @@ else
fi
if [ "$#" -gt 0 ]; then
- time_tests="$1"
- shift
- check_bool_arg "$time_tests"
-else
- time_tests=0
- check_bool_arg "$generate"
-fi
-
-if [ "$#" -gt 0 ]; then
exe="$1"
shift
check_exec_arg "$exe"
@@ -209,16 +200,8 @@ set +e
printf 'Running %s script %s...' "$d" "$f"
-# Yes this is poor timing, but it works.
-if [ "$time_tests" -ne 0 ]; then
- printf '\n'
- printf '%s\n' "$halt" 2> /dev/null | /usr/bin/time -p "$exe" "$@" $options "$s" > "$out"
- err="$?"
- printf '\n'
-else
- printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" $options "$s" > "$out"
- err="$?"
-fi
+printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" $options "$s" > "$out"
+err="$?"
checktest "$d" "$err" "script $f" "$res" "$out"
diff --git a/contrib/bc/tests/scripts.sh b/contrib/bc/tests/scripts.sh
index 2c8af6c06df0..eb2963e4a9ed 100755
--- a/contrib/bc/tests/scripts.sh
+++ b/contrib/bc/tests/scripts.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -40,7 +40,7 @@ usage() {
if [ $# -eq 1 ]; then
printf '%s\n\n' "$1"
fi
- printf 'usage: %s [-n] dir [run_extra_tests] [run_stack_tests] [generate_tests] [time_tests] [exec args...]\n' "$script"
+ printf 'usage: %s [-n] dir [run_extra_tests] [run_stack_tests] [generate_tests] [exec args...]\n' "$script"
exit 1
}
@@ -96,15 +96,6 @@ else
fi
if [ "$#" -gt 0 ]; then
- time_tests="$1"
- shift
- check_bool_arg "$time_tests"
-else
- time_tests=0
- check_bool_arg "$time_tests"
-fi
-
-if [ "$#" -gt 0 ]; then
exe="$1"
shift
check_exec_arg "$exe"
@@ -124,11 +115,11 @@ for s in $scripts; do
if [ "$pll" -ne 0 ]; then
sh "$testdir/script.sh" "$d" "$f" "$run_extra_tests" "$run_stack_tests" \
- "$generate" "$time_tests" "$exe" "$@" &
+ "$generate" "$exe" "$@" &
pids="$pids $!"
else
sh "$testdir/script.sh" "$d" "$f" "$run_extra_tests" "$run_stack_tests" \
- "$generate" "$time_tests" "$exe" "$@"
+ "$generate" "$exe" "$@"
fi
done
diff --git a/contrib/bc/tests/stdin.sh b/contrib/bc/tests/stdin.sh
index 7061e950367e..ba56606b18c4 100755
--- a/contrib/bc/tests/stdin.sh
+++ b/contrib/bc/tests/stdin.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
diff --git a/contrib/bc/tests/test.sh b/contrib/bc/tests/test.sh
index 7b5916f02990..3dd3e19963fa 100755
--- a/contrib/bc/tests/test.sh
+++ b/contrib/bc/tests/test.sh
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSD-2-Clause
#
-# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
+# Copyright (c) 2018-2025 Gavin D. Howard and contributors.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -44,7 +44,7 @@ usage() {
if [ $# -eq 1 ]; then
printf '%s\n\n' "$1"
fi
- printf 'usage: %s dir test [generate_tests] [time_tests] [exe [args...]]\n' "$0"
+ printf 'usage: %s dir test [generate_tests] [exe [args...]]\n' "$0"
printf 'valid dirs are:\n'
printf '\n'
cat "$testdir/all.txt"
@@ -78,15 +78,6 @@ else
fi
if [ "$#" -gt 0 ]; then
- time_tests="$1"
- shift
- check_bool_arg "$time_tests"
-else
- time_tests=0
- check_bool_arg "$time_tests"
-fi
-
-if [ "$#" -gt 0 ]; then
exe="$1"
shift
check_exec_arg "$exe"
@@ -155,15 +146,8 @@ set +e
printf 'Running %s %s...' "$d" "$t"
-if [ "$time_tests" -ne 0 ]; then
- printf '\n'
- printf '%s\n' "$halt" 2> /dev/null | /usr/bin/time -p "$exe" "$@" $options "$name" > "$out"
- err="$?"
- printf '\n'
-else
- printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" $options "$name" > "$out"
- err="$?"
-fi
+printf '%s\n' "$halt" 2> /dev/null | "$exe" "$@" $options "$name" > "$out"
+err="$?"
checktest "$d" "$err" "$t" "$results" "$out"