Skip to content

Commit 2d21720

Browse files
authored
Dectests: Fix scripts/dectest.jl (#95)
A wrong condition in the script resulted in valid test cases to be omitted.
1 parent f48ea84 commit 2d21720

File tree

11 files changed

+157
-2
lines changed

11 files changed

+157
-2
lines changed

scripts/dectest.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ function translate(io, dectest_path)
4747

4848
test = parse_test(line)
4949
any(isspecial, test.operands) && continue
50-
isspecial(test.result) && continue
5150

5251
dectest = decimal_test(test, directives)
5352
println(io, dectest)
@@ -57,7 +56,7 @@ end
5756

5857
function isspecial(value)
5958
value = lowercase(value)
60-
return occursin(r"(inf|nan|#|\?)", value)
59+
return occursin(r"(inf|nan|#)", value)
6160
end
6261

6362
function parse_precision(line)

test/dectests/test_abs.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ using Decimals: @with_context
4848
@with_context (Emax = 384, Emin = -383, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(abs(dec"-56267e-2") == dec"562.67")
4949
@with_context (Emax = 384, Emin = -383, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(abs(dec"-56267e-1") == dec"5626.7")
5050
@with_context (Emax = 384, Emin = -383, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(abs(dec"-56267e-0") == dec"56267")
51+
@with_context (Emax = 999999999, Emin = -999999999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, abs(dec"9.999e+999999999"))
5152
@with_context (Emax = 999, Emin = -999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test(abs(dec"1.00e-999") == dec"1.00e-999")
5253
@with_context (Emax = 999, Emin = -999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test(abs(dec"0.1e-999") == dec"1e-1000")
5354
@with_context (Emax = 999, Emin = -999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test(abs(dec"0.10e-999") == dec"1.0e-1000")

test/dectests/test_add.jl

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,16 +568,24 @@ using Decimals: @with_context
568568
@with_context (Emax = 384, Emin = -383, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-1.0" + dec"-0.0" == dec"-1.0")
569569
@with_context (Emax = 384, Emin = -383, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"1.0" + dec"0.0" == dec"1.0")
570570
@with_context (Emax = 384, Emin = -383, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"1.0" + dec"-0.0" == dec"1.0")
571+
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"1e+999999999" + dec"9e+999999999")
572+
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9e+999999999" + dec"1e+999999999")
571573
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-1.1e-999999999" + dec"1e-999999999" == dec"-1e-1000000000")
572574
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"1e-999999999" + dec"-1.1e-999999999" == dec"-1e-1000000000")
573575
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-1.0001e-999999999" + dec"1e-999999999" == dec"-1e-1000000003")
574576
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"1e-999999999" + dec"-1.0001e-999999999" == dec"-1e-1000000003")
577+
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-1e+999999999" + dec"-9e+999999999")
578+
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9e+999999999" + dec"-1e+999999999")
575579
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"+1.1e-999999999" + dec"-1e-999999999" == dec"1e-1000000000")
576580
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-1e-999999999" + dec"+1.1e-999999999" == dec"1e-1000000000")
577581
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"+1.0001e-999999999" + dec"-1e-999999999" == dec"1e-1000000003")
578582
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-1e-999999999" + dec"+1.0001e-999999999" == dec"1e-1000000003")
579583
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-1e+999999999" + dec"+9e+999999999" == dec"8e+999999999")
580584
@with_context (Emax = 999999999, Emin = -999999999, precision = 9, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9e+999999999" + dec"+1e+999999999" == dec"-8e+999999999")
585+
@with_context (Emax = 999999999, Emin = -999999999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"0" + dec"-9.999e+999999999")
586+
@with_context (Emax = 999999999, Emin = -999999999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9.999e+999999999" + dec"0")
587+
@with_context (Emax = 999999999, Emin = -999999999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"0" + dec"9.999e+999999999")
588+
@with_context (Emax = 999999999, Emin = -999999999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9.999e+999999999" + dec"0")
581589
@with_context (Emax = 999, Emin = -999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"1.00e-999" + dec"0" == dec"1.00e-999")
582590
@with_context (Emax = 999, Emin = -999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"0.1e-999" + dec"0" == dec"1e-1000")
583591
@with_context (Emax = 999, Emin = -999, precision = 3, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"0.10e-999" + dec"0" == dec"1.0e-1000")
@@ -638,13 +646,25 @@ using Decimals: @with_context
638646
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9.999999e+96" == dec"9.999999e+96")
639647
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9.999999e+96" + dec"1" == dec"9.999999e+96")
640648
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9999999e+90" + dec"1" == dec"9.999999e+96")
649+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9999999e+90" + dec"1e+90")
650+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9999999e+90" + dec"9e+89")
651+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9999999e+90" + dec"8e+89")
652+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9999999e+90" + dec"7e+89")
653+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9999999e+90" + dec"6e+89")
654+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"9999999e+90" + dec"5e+89")
641655
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9999999e+90" + dec"4e+89" == dec"9.999999e+96")
642656
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9999999e+90" + dec"3e+89" == dec"9.999999e+96")
643657
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9999999e+90" + dec"2e+89" == dec"9.999999e+96")
644658
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"9999999e+90" + dec"1e+89" == dec"9.999999e+96")
645659
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9.999999e+96" == dec"-9.999999e+96")
646660
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9.999999e+96" + dec"-1" == dec"-9.999999e+96")
647661
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9999999e+90" + dec"-1" == dec"-9.999999e+96")
662+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9999999e+90" + dec"-1e+90")
663+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9999999e+90" + dec"-9e+89")
664+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9999999e+90" + dec"-8e+89")
665+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9999999e+90" + dec"-7e+89")
666+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9999999e+90" + dec"-6e+89")
667+
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test_throws(OverflowError, dec"-9999999e+90" + dec"-5e+89")
648668
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9999999e+90" + dec"-4e+89" == dec"-9.999999e+96")
649669
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9999999e+90" + dec"-3e+89" == dec"-9.999999e+96")
650670
@with_context (Emax = 96, Emin = -95, precision = 7, rounding = RoundingMode{:NearestTiesAway}()) @test(dec"-9999999e+90" + dec"-2e+89" == dec"-9.999999e+96")
@@ -1486,13 +1506,25 @@ using Decimals: @with_context
14861506
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9.999999999999999e+384" == dec"9.999999999999999e+384")
14871507
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9.999999999999999e+384" + dec"1" == dec"9.999999999999999e+384")
14881508
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9999999999999999e+369" + dec"1" == dec"9.999999999999999e+384")
1509+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"9999999999999999e+369" + dec"1e+369")
1510+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"9999999999999999e+369" + dec"9e+368")
1511+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"9999999999999999e+369" + dec"8e+368")
1512+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"9999999999999999e+369" + dec"7e+368")
1513+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"9999999999999999e+369" + dec"6e+368")
1514+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"9999999999999999e+369" + dec"5e+368")
14891515
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9999999999999999e+369" + dec"4e+368" == dec"9.999999999999999e+384")
14901516
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9999999999999999e+369" + dec"3e+368" == dec"9.999999999999999e+384")
14911517
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9999999999999999e+369" + dec"2e+368" == dec"9.999999999999999e+384")
14921518
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"9999999999999999e+369" + dec"1e+368" == dec"9.999999999999999e+384")
14931519
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"-9.999999999999999e+384" == dec"-9.999999999999999e+384")
14941520
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"-9.999999999999999e+384" + dec"-1" == dec"-9.999999999999999e+384")
14951521
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"-9999999999999999e+369" + dec"-1" == dec"-9.999999999999999e+384")
1522+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"-9999999999999999e+369" + dec"-1e+369")
1523+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"-9999999999999999e+369" + dec"-9e+368")
1524+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"-9999999999999999e+369" + dec"-8e+368")
1525+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"-9999999999999999e+369" + dec"-7e+368")
1526+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"-9999999999999999e+369" + dec"-6e+368")
1527+
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test_throws(OverflowError, dec"-9999999999999999e+369" + dec"-5e+368")
14961528
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"-9999999999999999e+369" + dec"-4e+368" == dec"-9.999999999999999e+384")
14971529
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"-9999999999999999e+369" + dec"-3e+368" == dec"-9.999999999999999e+384")
14981530
@with_context (Emax = 384, Emin = -383, precision = 16, rounding = RoundingMode{:Nearest}()) @test(dec"-9999999999999999e+369" + dec"-2e+368" == dec"-9.999999999999999e+384")

0 commit comments

Comments
 (0)