From a9e51b087be4bdc593c1690af28da786869895a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baru=C4=8Di=C4=87?= Date: Sun, 20 Oct 2024 19:44:57 +0200 Subject: [PATCH] Context This commit introduces `Context`, a structure that holds configuration of the decimal arithmetics. Eventually, the global variable `DIGITS` should be completely removed in favor of this newly-added structure. --- .github/workflows/ci.yml | 2 +- Project.toml | 6 +- scripts/dectest.jl | 148 +++-- src/Decimals.jl | 1 + src/arithmetic.jl | 6 +- src/context.jl | 134 ++++ test/dectests/test_compare.jl | 1099 +++++++++++++++++++++++++++++++++ test/dectests/test_minus.jl | 211 +++++++ test/dectests/test_plus.jl | 229 +++++++ test/runtests.jl | 9 +- test/test_compare.jl | 827 ------------------------- test/test_context.jl | 40 ++ 12 files changed, 1819 insertions(+), 893 deletions(-) create mode 100644 src/context.jl create mode 100644 test/dectests/test_compare.jl create mode 100644 test/dectests/test_minus.jl create mode 100644 test/dectests/test_plus.jl delete mode 100644 test/test_compare.jl create mode 100644 test/test_context.jl diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 86d1295..8beedcb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: version: - - '1.6' + - '1.8' - '1' os: - ubuntu-latest diff --git a/Project.toml b/Project.toml index c1d9d2e..ee96394 100644 --- a/Project.toml +++ b/Project.toml @@ -2,8 +2,12 @@ name = "Decimals" uuid = "abce61dc-4473-55a0-ba07-351d65e31d42" version = "0.4.1" +[deps] +ScopedValues = "7e506255-f358-4e82-b7e4-beb19740aa63" + [compat] -julia = "1" +ScopedValues = "1" +julia = "1.8" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/scripts/dectest.jl b/scripts/dectest.jl index 21eae45..20a3fb0 100644 --- a/scripts/dectest.jl +++ b/scripts/dectest.jl @@ -1,24 +1,48 @@ function _precision(line) m = match(r"^precision:\s*(\d+)$", line) + isnothing(m) && throw(ArgumentError(line)) return parse(Int, m[1]) end function _rounding(line) m = match(r"^rounding:\s*(\w+)$", line) - return Symbol(m[1]) + isnothing(m) && throw(ArgumentError(line)) + r = m[1] + if r == "ceiling" + return "RoundUp" + elseif r == "down" + return "RoundToZero" + elseif r == "floor" + return "RoundDown" + elseif r == "half_even" + return "RoundNearest" + elseif r == "half_up" + return "RoundNearestTiesAway" + elseif r == "up" + return "RoundFromZero" + elseif r == "half_down" + return "RoundHalfDownUnsupported" + elseif r == "05up" + return "Round05UpUnsupported" + else + throw(ArgumentError(r)) + end end function _maxexponent(line) - m = match(r"^maxexponent:\s*(\d+)$", line) + m = match(r"^maxexponent:\s*\+?(\d+)$", line) + isnothing(m) && throw(ArgumentError(line)) return parse(Int, m[1]) end function _minexponent(line) m = match(r"^minexponent:\s*(-\d+)$", line) + isnothing(m) && throw(ArgumentError(line)) return parse(Int, m[1]) end function _test(line) + occursin("->", line) || throw(ArgumentError(line)) lhs, rhs = split(line, "->") id, operation, operands... = split(lhs) result, conditions... = split(rhs) @@ -31,47 +55,55 @@ function decimal(x) return "dec\"$x\"" end -print_precision(io, p::Int) = println(io, " setprecision(Decimal, $p)") -print_maxexponent(io, e::Int) = println(io, " Decimals.CONTEXT.Emax = $e") -print_minexponent(io, e::Int) = println(io, " Decimals.CONTEXT.Emin = $e") -function print_rounding(io, r::Symbol) - modes = Dict(:ceiling => "RoundUp", - :down => "RoundToZero", - :floor => "RoundDown", - :half_even => "RoundNearest", - :half_up => "RoundNearestTiesAway", - :up => "RoundFromZero", - :half_down => "RoundHalfDownUnsupported", - Symbol("05up") => "Round05UpUnsupported") - haskey(modes, r) || throw(ArgumentError(r)) - rmod = modes[r] - println(io, " setrounding(Decimal, $rmod)") -end - function print_operation(io, operation, operands) - if operation == "plus" - print_plus(io, operands...) - elseif operation == "minus" - print_minus(io, operands...) + if operation == "abs" + print_abs(io, operands...) + elseif operation == "add" + print_add(io, operands...) + elseif operation == "apply" + print_apply(io, operands...) elseif operation == "compare" print_compare(io, operands...) + elseif operation == "divide" + print_divide(io, operands...) + elseif operation == "minus" + print_minus(io, operands...) + elseif operation == "multiply" + print_multiply(io, operands...) + elseif operation == "plus" + print_plus(io, operands...) + elseif operation == "reduce" + print_reduce(io, operands...) + elseif operation == "subtract" + print_subtract(io, operands...) else throw(ArgumentError(operation)) end end +print_abs(io, x) = print(io, "abs(", decimal(x), ")") +print_add(io, x, y) = print(io, decimal(x), " + ", decimal(y)) +print_apply(io, x) = print(io, decimal(x)) print_compare(io, x, y) = print(io, "cmp(", decimal(x), ", ", decimal(y), ")") +print_divide(io, x, y) = print(io, decimal(x), " / ", decimal(y)) print_minus(io, x) = print(io, "-(", decimal(x), ")") +print_multiply(io, x, y) = print(io, decimal(x), " * ", decimal(y)) print_plus(io, x) = print(io, "+(", decimal(x), ")") +print_reduce(io, x) = print(io, "reduce(", decimal(x), ")") +print_subtract(io, x, y) = print(io, decimal(x), " - ", decimal(y)) -function print_test(io, test) +function print_test(io, test, directives) println(io, " # $(test.id)") + names = sort!(collect(keys(directives))) + params = join(("$k=$(directives[k])" for k in names), ", ") + print(io, " @with_context ($params) ") + if :overflow ∈ test.conditions - print(io, " @test_throws OverflowError ") + print(io, "@test_throws OverflowError ") print_operation(io, test.operation, test.operands) println(io) else - print(io, " @test ") + print(io, "@test ") print_operation(io, test.operation, test.operands) print(io, " == ") println(io, decimal(test.result)) @@ -83,34 +115,36 @@ function isspecial(value) return occursin(r"(inf|nan|#)", value) end -function translate(io, line) - isempty(line) && return - startswith(line, "--") && return - - line = lowercase(line) - - if startswith(line, "version:") - # ... - elseif startswith(line, "extended:") - # ... - elseif startswith(line, "clamp:") - # ... - elseif startswith(line, "precision:") - precision = _precision(line) - print_precision(io, precision) - elseif startswith(line, "rounding:") - rounding = _rounding(line) - print_rounding(io, rounding) - elseif startswith(line, "maxexponent:") - maxexponent = _maxexponent(line) - print_maxexponent(io, maxexponent) - elseif startswith(line, "minexponent:") - minexponent = _minexponent(line) - print_minexponent(io, minexponent) - else - test = _test(line) - any(isspecial, test.operands) && return - print_test(io, test) +function translate(io, dectest_path) + directives = Dict{String, Any}() + + for line in eachline(dectest_path) + line = strip(line) + + isempty(line) && continue + startswith(line, "--") && continue + + line = lowercase(line) + + if startswith(line, "version:") + # ... + elseif startswith(line, "extended:") + # ... + elseif startswith(line, "clamp:") + # ... + elseif startswith(line, "precision:") + directives["precision"] = _precision(line) + elseif startswith(line, "rounding:") + directives["rounding"] = _rounding(line) + elseif startswith(line, "maxexponent:") + directives["Emax"] = _maxexponent(line) + elseif startswith(line, "minexponent:") + directives["Emin"] = _minexponent(line) + else + test = _test(line) + any(isspecial, test.operands) && continue + print_test(io, test, directives) + end end end @@ -120,13 +154,13 @@ function (@main)(args=ARGS) open(output_path, "w") do io println(io, """ using Decimals + using ScopedValues using Test + using Decimals: @with_context @testset \"$name\" begin""") - for line in eachline(dectest_path) - translate(io, line) - end + translate(io, dectest_path) println(io, "end") end diff --git a/src/Decimals.jl b/src/Decimals.jl index 2160794..7e8ab6c 100644 --- a/src/Decimals.jl +++ b/src/Decimals.jl @@ -21,6 +21,7 @@ struct Decimal <: AbstractFloat end include("bigint.jl") +include("context.jl") # Convert between Decimal objects, numbers, and strings include("decimal.jl") diff --git a/src/arithmetic.jl b/src/arithmetic.jl index 549c10b..a8f1289 100644 --- a/src/arithmetic.jl +++ b/src/arithmetic.jl @@ -4,7 +4,8 @@ Base.promote_rule(::Type{Decimal}, ::Type{<:Real}) = Decimal Base.promote_rule(::Type{BigFloat}, ::Type{Decimal}) = Decimal Base.promote_rule(::Type{BigInt}, ::Type{Decimal}) = Decimal -const BigTen = BigInt(10) +Base.:(+)(x::Decimal) = fix(x) +Base.:(-)(x::Decimal) = fix(Decimal(!x.s, x.c, x.q)) # Addition # To add, convert both decimals to the same exponent. @@ -24,9 +25,6 @@ function Base.:(+)(x::Decimal, y::Decimal) return normalize(Decimal(s, abs(c), y.q)) end -# Negation -Base.:(-)(x::Decimal) = Decimal(!x.s, x.c, x.q) - # Subtraction Base.:(-)(x::Decimal, y::Decimal) = +(x, -y) diff --git a/src/context.jl b/src/context.jl new file mode 100644 index 0000000..825fcbf --- /dev/null +++ b/src/context.jl @@ -0,0 +1,134 @@ +using ScopedValues + +Base.@kwdef struct Context + precision::Int=28 + rounding::RoundingMode=RoundNearest + Emax::Int=999999 + Emin::Int=-999999 +end + +const CONTEXT = ScopedValue(Context()) + +Base.precision(::Type{Decimal}) = CONTEXT[].precision +Base.rounding(::Type{Decimal}) = CONTEXT[].rounding + +""" + with_context(f; kwargs...) + +Run `f` with [`Context`](@ref) parametrized by `kwargs`. + +# Examples + +```jldoctest +julia> Decimals.with_context(precision=42) do + precision(Decimal) +end +42 +``` + +See also [`@with_context`](@ref). +""" +function with_context(f; kwargs...) + with(f, CONTEXT => Context(;kwargs...)) +end + +""" + @with_context params expr + +Run `expr` with [`Context`](@ref) parametrized by a named tuple `params`. + +# Examples + +```jldoctest +julia> Decimals.@with_context (precision=42, ) precision(Decimal) +42 +``` + +See also [`with_context`](@ref). +""" +macro with_context(params, expr) + return quote + @with Decimals.CONTEXT => Decimals.Context(;$params...) $(esc(expr)) + end +end + +""" + fix(x) + +Round and fix the exponent of `x` to keep it within the precision and exponent +limits as given by the current `CONTEXT`. +""" +function fix(x::Decimal) + prec = precision(Decimal) + rmod = rounding(Decimal) + + Emin, Emax = CONTEXT[].Emin, CONTEXT[].Emax + Etiny = Emin - prec + 1 + Etop = Emax - prec + 1 + + if iszero(x) + return Decimal(x.s, x.c, clamp(x.q, Etiny, Etop)) + end + + clen = ndigits(x.c) + exp_min = clen + x.q - prec + + # Equivalent to `clen + x.q - 1 > Emax` + if exp_min > Etop + throw(OverflowError("Exponent limit ($Emax) exceeded: $x")) + end + + subnormal = exp_min < Etiny + if subnormal + exp_min = Etiny + end + + # Number of digits and exponent within bounds + if x.q ≥ exp_min + return x + end + + # Number of digits of the resulting coefficient + digits = clen + x.q - exp_min + if digits < 0 + x = Decimal(x.s, BigOne, exp_min - 1) + digits = 0 + end + + # Number of least significant digits to remove from `c` + trun_len = clen - digits + + # Signed coefficient for rounding modes like RoundToZero + c = (-1)^x.s * x.c + + # Split `c` into `digits` most significant digits and `trun_len` least + # significant digits + # This is like round(c, rmod, sigdigits=digits), except here we can + # tell from `rem` if the rounding was lossless + c, rem = divrem(c, BigTen ^ trun_len, rmod) + + # Rounding is exact if the truncated digits were zero + exact = iszero(rem) + + # If the number of digits exceeded `digits` after rounding, + # it means that `c` was like 99...9 and was rounded up, + # becoming 100...0, so `c` is divisible by 10 + if ndigits(c) > prec + c = exactdiv(c, 10) + exp_min += 1 + end + + # Exponent might have exceeded due to rounding + if exp_min > Etop + throw(OverflowError("Exponent limit ($Emax) exceeded: $x")) + end + + x = Decimal(x.s, abs(c), exp_min) + + #if subnormal && !exact + # throw(ErrorException("Underflow")) + #end + + return x +end + diff --git a/test/dectests/test_compare.jl b/test/dectests/test_compare.jl new file mode 100644 index 0000000..b025592 --- /dev/null +++ b/test/dectests/test_compare.jl @@ -0,0 +1,1099 @@ +using Decimals +using ScopedValues +using Test +using Decimals: @with_context + +@testset "Compare" begin + # comx001 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2", dec"-2") == dec"0" + # comx002 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2", dec"-1") == dec"-1" + # comx003 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2", dec"0") == dec"-1" + # comx004 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2", dec"1") == dec"-1" + # comx005 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2", dec"2") == dec"-1" + # comx006 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1", dec"-2") == dec"1" + # comx007 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1", dec"-1") == dec"0" + # comx008 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1", dec"0") == dec"-1" + # comx009 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1", dec"1") == dec"-1" + # comx010 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1", dec"2") == dec"-1" + # comx011 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"-2") == dec"1" + # comx012 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"-1") == dec"1" + # comx013 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"0") == dec"0" + # comx014 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"1") == dec"-1" + # comx015 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"2") == dec"-1" + # comx016 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"-2") == dec"1" + # comx017 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"-1") == dec"1" + # comx018 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"0") == dec"1" + # comx019 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1") == dec"0" + # comx020 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"2") == dec"-1" + # comx021 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2", dec"-2") == dec"1" + # comx022 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2", dec"-1") == dec"1" + # comx023 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2", dec"0") == dec"1" + # comx025 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2", dec"1") == dec"1" + # comx026 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2", dec"2") == dec"0" + # comx031 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-20", dec"-20") == dec"0" + # comx032 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-20", dec"-10") == dec"-1" + # comx033 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-20", dec"00") == dec"-1" + # comx034 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-20", dec"10") == dec"-1" + # comx035 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-20", dec"20") == dec"-1" + # comx036 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-10", dec"-20") == dec"1" + # comx037 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-10", dec"-10") == dec"0" + # comx038 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-10", dec"00") == dec"-1" + # comx039 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-10", dec"10") == dec"-1" + # comx040 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-10", dec"20") == dec"-1" + # comx041 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"00", dec"-20") == dec"1" + # comx042 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"00", dec"-10") == dec"1" + # comx043 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"00", dec"00") == dec"0" + # comx044 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"00", dec"10") == dec"-1" + # comx045 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"00", dec"20") == dec"-1" + # comx046 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10", dec"-20") == dec"1" + # comx047 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10", dec"-10") == dec"1" + # comx048 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10", dec"00") == dec"1" + # comx049 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10", dec"10") == dec"0" + # comx050 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10", dec"20") == dec"-1" + # comx051 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"20", dec"-20") == dec"1" + # comx052 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"20", dec"-10") == dec"1" + # comx053 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"20", dec"00") == dec"1" + # comx055 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"20", dec"10") == dec"1" + # comx056 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"20", dec"20") == dec"0" + # comx061 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2.0", dec"-2.0") == dec"0" + # comx062 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2.0", dec"-1.0") == dec"-1" + # comx063 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2.0", dec"0.0") == dec"-1" + # comx064 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2.0", dec"1.0") == dec"-1" + # comx065 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-2.0", dec"2.0") == dec"-1" + # comx066 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1.0", dec"-2.0") == dec"1" + # comx067 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1.0", dec"-1.0") == dec"0" + # comx068 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1.0", dec"0.0") == dec"-1" + # comx069 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1.0", dec"1.0") == dec"-1" + # comx070 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1.0", dec"2.0") == dec"-1" + # comx071 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"-2.0") == dec"1" + # comx072 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"-1.0") == dec"1" + # comx073 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"0.0") == dec"0" + # comx074 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"1.0") == dec"-1" + # comx075 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"2.0") == dec"-1" + # comx076 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"-2.0") == dec"1" + # comx077 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"-1.0") == dec"1" + # comx078 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"0.0") == dec"1" + # comx079 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"1.0") == dec"0" + # comx080 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"2.0") == dec"-1" + # comx081 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2.0", dec"-2.0") == dec"1" + # comx082 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2.0", dec"-1.0") == dec"1" + # comx083 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2.0", dec"0.0") == dec"1" + # comx085 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2.0", dec"1.0") == dec"1" + # comx086 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"2.0", dec"2.0") == dec"0" + # comx095 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9.99999999e+999999999", dec"9.99999999e+999999999") == dec"0" + # comx096 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-9.99999999e+999999999", dec"9.99999999e+999999999") == dec"-1" + # comx097 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9.99999999e+999999999", dec"-9.99999999e+999999999") == dec"1" + # comx098 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-9.99999999e+999999999", dec"-9.99999999e+999999999") == dec"0" + # comx100 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"7.0") == dec"0" + # comx101 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"7") == dec"0" + # comx102 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7", dec"7.0") == dec"0" + # comx103 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7e+0", dec"7.0") == dec"0" + # comx104 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"70e-1", dec"7.0") == dec"0" + # comx105 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.7e+1", dec"7") == dec"0" + # comx106 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"70e-1", dec"7") == dec"0" + # comx107 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"7e+0") == dec"0" + # comx108 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"70e-1") == dec"0" + # comx109 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7", dec"0.7e+1") == dec"0" + # comx110 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7", dec"70e-1") == dec"0" + # comx120 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"7.0") == dec"1" + # comx121 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"7") == dec"1" + # comx122 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"7.0") == dec"1" + # comx123 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8e+0", dec"7.0") == dec"1" + # comx124 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"7.0") == dec"1" + # comx125 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.8e+1", dec"7") == dec"1" + # comx126 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"7") == dec"1" + # comx127 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"7e+0") == dec"1" + # comx128 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"70e-1") == dec"1" + # comx129 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"0.7e+1") == dec"1" + # comx130 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"70e-1") == dec"1" + # comx140 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"9.0") == dec"-1" + # comx141 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"9") == dec"-1" + # comx142 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"9.0") == dec"-1" + # comx143 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8e+0", dec"9.0") == dec"-1" + # comx144 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"9.0") == dec"-1" + # comx145 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.8e+1", dec"9") == dec"-1" + # comx146 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"9") == dec"-1" + # comx147 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"9e+0") == dec"-1" + # comx148 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"90e-1") == dec"-1" + # comx149 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"0.9e+1") == dec"-1" + # comx150 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"90e-1") == dec"-1" + # comx200 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"7.0") == dec"-1" + # comx201 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"7") == dec"-1" + # comx202 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7", dec"7.0") == dec"-1" + # comx203 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7e+0", dec"7.0") == dec"-1" + # comx204 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-70e-1", dec"7.0") == dec"-1" + # comx205 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.7e+1", dec"7") == dec"-1" + # comx206 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-70e-1", dec"7") == dec"-1" + # comx207 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"7e+0") == dec"-1" + # comx208 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"70e-1") == dec"-1" + # comx209 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7", dec"0.7e+1") == dec"-1" + # comx210 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7", dec"70e-1") == dec"-1" + # comx220 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"7.0") == dec"-1" + # comx221 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"7") == dec"-1" + # comx222 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"7.0") == dec"-1" + # comx223 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8e+0", dec"7.0") == dec"-1" + # comx224 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"7.0") == dec"-1" + # comx225 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.8e+1", dec"7") == dec"-1" + # comx226 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"7") == dec"-1" + # comx227 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"7e+0") == dec"-1" + # comx228 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"70e-1") == dec"-1" + # comx229 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"0.7e+1") == dec"-1" + # comx230 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"70e-1") == dec"-1" + # comx240 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"9.0") == dec"-1" + # comx241 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"9") == dec"-1" + # comx242 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"9.0") == dec"-1" + # comx243 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8e+0", dec"9.0") == dec"-1" + # comx244 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"9.0") == dec"-1" + # comx245 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.8e+1", dec"9") == dec"-1" + # comx246 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"9") == dec"-1" + # comx247 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"9e+0") == dec"-1" + # comx248 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"90e-1") == dec"-1" + # comx249 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"0.9e+1") == dec"-1" + # comx250 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"90e-1") == dec"-1" + # comx300 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"-7.0") == dec"1" + # comx301 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"-7") == dec"1" + # comx302 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7", dec"-7.0") == dec"1" + # comx303 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7e+0", dec"-7.0") == dec"1" + # comx304 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"70e-1", dec"-7.0") == dec"1" + # comx305 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec".7e+1", dec"-7") == dec"1" + # comx306 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"70e-1", dec"-7") == dec"1" + # comx307 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"-7e+0") == dec"1" + # comx308 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7.0", dec"-70e-1") == dec"1" + # comx309 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7", dec"-.7e+1") == dec"1" + # comx310 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"7", dec"-70e-1") == dec"1" + # comx320 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-7.0") == dec"1" + # comx321 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-7") == dec"1" + # comx322 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"-7.0") == dec"1" + # comx323 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8e+0", dec"-7.0") == dec"1" + # comx324 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"-7.0") == dec"1" + # comx325 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec".8e+1", dec"-7") == dec"1" + # comx326 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"-7") == dec"1" + # comx327 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-7e+0") == dec"1" + # comx328 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-70e-1") == dec"1" + # comx329 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"-.7e+1") == dec"1" + # comx330 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"-70e-1") == dec"1" + # comx340 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-9.0") == dec"1" + # comx341 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-9") == dec"1" + # comx342 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"-9.0") == dec"1" + # comx343 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8e+0", dec"-9.0") == dec"1" + # comx344 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"-9.0") == dec"1" + # comx345 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec".8e+1", dec"-9") == dec"1" + # comx346 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"80e-1", dec"-9") == dec"1" + # comx347 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-9e+0") == dec"1" + # comx348 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8.0", dec"-90e-1") == dec"1" + # comx349 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"-.9e+1") == dec"1" + # comx350 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"8", dec"-90e-1") == dec"1" + # comx400 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"-7.0") == dec"0" + # comx401 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"-7") == dec"0" + # comx402 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7", dec"-7.0") == dec"0" + # comx403 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7e+0", dec"-7.0") == dec"0" + # comx404 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-70e-1", dec"-7.0") == dec"0" + # comx405 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-.7e+1", dec"-7") == dec"0" + # comx406 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-70e-1", dec"-7") == dec"0" + # comx407 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"-7e+0") == dec"0" + # comx408 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7.0", dec"-70e-1") == dec"0" + # comx409 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7", dec"-.7e+1") == dec"0" + # comx410 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-7", dec"-70e-1") == dec"0" + # comx420 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-7.0") == dec"-1" + # comx421 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-7") == dec"-1" + # comx422 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"-7.0") == dec"-1" + # comx423 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8e+0", dec"-7.0") == dec"-1" + # comx424 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"-7.0") == dec"-1" + # comx425 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-.8e+1", dec"-7") == dec"-1" + # comx426 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"-7") == dec"-1" + # comx427 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-7e+0") == dec"-1" + # comx428 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-70e-1") == dec"-1" + # comx429 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"-.7e+1") == dec"-1" + # comx430 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"-70e-1") == dec"-1" + # comx440 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-9.0") == dec"1" + # comx441 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-9") == dec"1" + # comx442 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"-9.0") == dec"1" + # comx443 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8e+0", dec"-9.0") == dec"1" + # comx444 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"-9.0") == dec"1" + # comx445 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-.8e+1", dec"-9") == dec"1" + # comx446 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-80e-1", dec"-9") == dec"1" + # comx447 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-9e+0") == dec"1" + # comx448 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8.0", dec"-90e-1") == dec"1" + # comx449 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"-.9e+1") == dec"1" + # comx450 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-8", dec"-90e-1") == dec"1" + # comx451 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"0.1") == dec"1" + # comx452 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.1", dec"1.0") == dec"-1" + # comx453 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10.0", dec"0.1") == dec"1" + # comx454 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.1", dec"10.0") == dec"-1" + # comx455 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"100", dec"1.0") == dec"1" + # comx456 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1.0", dec"100") == dec"-1" + # comx457 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1000", dec"10.0") == dec"1" + # comx458 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10.0", dec"1000") == dec"-1" + # comx459 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10000", dec"100.0") == dec"1" + # comx460 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"100.0", dec"10000") == dec"-1" + # comx461 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"100000", dec"1000.0") == dec"1" + # comx462 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1000.0", dec"100000") == dec"-1" + # comx463 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1000000", dec"10000.0") == dec"1" + # comx464 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"10000.0", dec"1000000") == dec"-1" + # comx470 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.4560000000000000e789", dec"123.456e789") == dec"0" + # comx471 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456000000000000e-89", dec"123.456e-89") == dec"0" + # comx472 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.45600000000000e789", dec"123.456e789") == dec"0" + # comx473 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.4560000000000e-89", dec"123.456e-89") == dec"0" + # comx474 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456000000000e789", dec"123.456e789") == dec"0" + # comx475 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.45600000000e-89", dec"123.456e-89") == dec"0" + # comx476 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.4560000000e789", dec"123.456e789") == dec"0" + # comx477 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456000000e-89", dec"123.456e-89") == dec"0" + # comx478 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.45600000e789", dec"123.456e789") == dec"0" + # comx479 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.4560000e-89", dec"123.456e-89") == dec"0" + # comx480 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456000e789", dec"123.456e789") == dec"0" + # comx481 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.45600e-89", dec"123.456e-89") == dec"0" + # comx482 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.4560e789", dec"123.456e789") == dec"0" + # comx483 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.456e-89") == dec"0" + # comx484 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.4560000000000000e-89") == dec"0" + # comx485 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.456000000000000e789") == dec"0" + # comx486 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.45600000000000e-89") == dec"0" + # comx487 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.4560000000000e789") == dec"0" + # comx488 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.456000000000e-89") == dec"0" + # comx489 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.45600000000e789") == dec"0" + # comx490 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.4560000000e-89") == dec"0" + # comx491 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.456000000e789") == dec"0" + # comx492 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.45600000e-89") == dec"0" + # comx493 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.4560000e789") == dec"0" + # comx494 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.456000e-89") == dec"0" + # comx495 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.45600e789") == dec"0" + # comx496 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e-89", dec"123.4560e-89") == dec"0" + # comx497 + @with_context (Emax=999999999, Emin=-999999999, precision=40, rounding=RoundNearestTiesAway) @test cmp(dec"123.456e789", dec"123.456e789") == dec"0" + # comx500 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-15") == dec"1" + # comx501 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-14") == dec"1" + # comx502 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-13") == dec"1" + # comx503 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-12") == dec"1" + # comx504 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-11") == dec"1" + # comx505 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-10") == dec"1" + # comx506 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-9") == dec"1" + # comx507 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-8") == dec"1" + # comx508 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-7") == dec"1" + # comx509 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-6") == dec"1" + # comx510 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-5") == dec"1" + # comx511 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-4") == dec"1" + # comx512 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-3") == dec"1" + # comx513 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-2") == dec"1" + # comx514 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-1") == dec"1" + # comx515 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e-0") == dec"0" + # comx516 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+1") == dec"-1" + # comx517 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+2") == dec"-1" + # comx518 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+3") == dec"-1" + # comx519 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+4") == dec"-1" + # comx521 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+5") == dec"-1" + # comx522 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+6") == dec"-1" + # comx523 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+7") == dec"-1" + # comx524 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+8") == dec"-1" + # comx525 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+9") == dec"-1" + # comx526 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+10") == dec"-1" + # comx527 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+11") == dec"-1" + # comx528 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+12") == dec"-1" + # comx529 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+13") == dec"-1" + # comx530 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+14") == dec"-1" + # comx531 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1e+15") == dec"-1" + # comx540 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-15", dec"1") == dec"-1" + # comx541 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-14", dec"1") == dec"-1" + # comx542 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-13", dec"1") == dec"-1" + # comx543 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-12", dec"1") == dec"-1" + # comx544 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-11", dec"1") == dec"-1" + # comx545 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-10", dec"1") == dec"-1" + # comx546 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-9", dec"1") == dec"-1" + # comx547 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-8", dec"1") == dec"-1" + # comx548 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-7", dec"1") == dec"-1" + # comx549 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-6", dec"1") == dec"-1" + # comx550 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-5", dec"1") == dec"-1" + # comx551 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-4", dec"1") == dec"-1" + # comx552 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-3", dec"1") == dec"-1" + # comx553 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-2", dec"1") == dec"-1" + # comx554 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-1", dec"1") == dec"-1" + # comx555 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-0", dec"1") == dec"0" + # comx556 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+1", dec"1") == dec"1" + # comx557 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+2", dec"1") == dec"1" + # comx558 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+3", dec"1") == dec"1" + # comx559 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+4", dec"1") == dec"1" + # comx561 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+5", dec"1") == dec"1" + # comx562 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+6", dec"1") == dec"1" + # comx563 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+7", dec"1") == dec"1" + # comx564 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+8", dec"1") == dec"1" + # comx565 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+9", dec"1") == dec"1" + # comx566 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+10", dec"1") == dec"1" + # comx567 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+11", dec"1") == dec"1" + # comx568 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+12", dec"1") == dec"1" + # comx569 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+13", dec"1") == dec"1" + # comx570 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+14", dec"1") == dec"1" + # comx571 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+15", dec"1") == dec"1" + # comx580 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-15") == dec"1" + # comx581 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-14") == dec"1" + # comx582 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-13") == dec"1" + # comx583 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-12") == dec"1" + # comx584 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-11") == dec"1" + # comx585 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-10") == dec"1" + # comx586 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-9") == dec"1" + # comx587 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-8") == dec"1" + # comx588 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-7") == dec"1" + # comx589 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-6") == dec"-1" + # comx590 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-5") == dec"-1" + # comx591 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-4") == dec"-1" + # comx592 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-3") == dec"-1" + # comx593 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-2") == dec"-1" + # comx594 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-1") == dec"-1" + # comx595 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e-0") == dec"-1" + # comx596 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e+1") == dec"-1" + # comx597 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e+2") == dec"-1" + # comx598 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e+3") == dec"-1" + # comx599 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.000000987654321", dec"1e+4") == dec"-1" + # comx600 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.2345") == dec"-1" + # comx601 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.0", dec"12.2345") == dec"-1" + # comx602 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.00", dec"12.2345") == dec"-1" + # comx603 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.000", dec"12.2345") == dec"-1" + # comx604 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.0000", dec"12.2345") == dec"-1" + # comx605 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.00000", dec"12.2345") == dec"-1" + # comx606 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.000000", dec"12.2345") == dec"-1" + # comx607 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.0000000", dec"12.2345") == dec"-1" + # comx608 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.00000000", dec"12.2345") == dec"-1" + # comx609 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.000000000", dec"12.2345") == dec"-1" + # comx610 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12") == dec"1" + # comx611 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.0") == dec"1" + # comx612 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.00") == dec"1" + # comx613 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.000") == dec"1" + # comx614 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.0000") == dec"1" + # comx615 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.00000") == dec"1" + # comx616 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.000000") == dec"1" + # comx617 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.0000000") == dec"1" + # comx618 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.00000000") == dec"1" + # comx619 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.1234", dec"12.000000000") == dec"1" + # comx620 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12", dec"-12.2345") == dec"1" + # comx621 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.0", dec"-12.2345") == dec"1" + # comx622 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.00", dec"-12.2345") == dec"1" + # comx623 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.000", dec"-12.2345") == dec"1" + # comx624 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.0000", dec"-12.2345") == dec"1" + # comx625 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.00000", dec"-12.2345") == dec"1" + # comx626 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.000000", dec"-12.2345") == dec"1" + # comx627 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.0000000", dec"-12.2345") == dec"1" + # comx628 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.00000000", dec"-12.2345") == dec"1" + # comx629 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.000000000", dec"-12.2345") == dec"1" + # comx630 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12") == dec"-1" + # comx631 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.0") == dec"-1" + # comx632 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.00") == dec"-1" + # comx633 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.000") == dec"-1" + # comx634 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.0000") == dec"-1" + # comx635 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.00000") == dec"-1" + # comx636 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.000000") == dec"-1" + # comx637 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.0000000") == dec"-1" + # comx638 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.00000000") == dec"-1" + # comx639 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"-12.1234", dec"-12.000000000") == dec"-1" + # comx640 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"0") == dec"0" + # comx641 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"-0") == dec"0" + # comx642 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"-0.0") == dec"0" + # comx643 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"0.0") == dec"0" + # comx644 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"0") == dec"0" + # comx645 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"-0") == dec"0" + # comx646 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"-0.0") == dec"0" + # comx647 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"0.0") == dec"0" + # comx648 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"0") == dec"0" + # comx649 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"-0") == dec"0" + # comx650 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"-0.0") == dec"0" + # comx651 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.0", dec"0.0") == dec"0" + # comx652 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.0", dec"0") == dec"0" + # comx653 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.0", dec"-0") == dec"0" + # comx654 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.0", dec"-0.0") == dec"0" + # comx655 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.0", dec"0.0") == dec"0" + # comx656 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e1", dec"0.0") == dec"0" + # comx657 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e2", dec"0.0") == dec"0" + # comx658 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e1", dec"0.0") == dec"0" + # comx659 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e2", dec"0.0") == dec"0" + # comx660 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e1", dec"0") == dec"0" + # comx661 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e2", dec"0") == dec"0" + # comx662 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e1", dec"0") == dec"0" + # comx663 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e2", dec"0") == dec"0" + # comx664 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e1", dec"-0e1") == dec"0" + # comx665 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e2", dec"-0e1") == dec"0" + # comx666 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e1", dec"-0e1") == dec"0" + # comx667 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e2", dec"-0e1") == dec"0" + # comx668 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e1", dec"-0e2") == dec"0" + # comx669 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e2", dec"-0e2") == dec"0" + # comx670 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e1", dec"-0e2") == dec"0" + # comx671 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e2", dec"-0e2") == dec"0" + # comx672 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e1", dec"0e1") == dec"0" + # comx673 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e2", dec"0e1") == dec"0" + # comx674 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e1", dec"0e1") == dec"0" + # comx675 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e2", dec"0e1") == dec"0" + # comx676 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e1", dec"0e2") == dec"0" + # comx677 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e2", dec"0e2") == dec"0" + # comx678 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e1", dec"0e2") == dec"0" + # comx679 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e2", dec"0e2") == dec"0" + # comx680 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12") == dec"0" + # comx681 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.0") == dec"0" + # comx682 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.00") == dec"0" + # comx683 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.000") == dec"0" + # comx684 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.0000") == dec"0" + # comx685 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.00000") == dec"0" + # comx686 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.000000") == dec"0" + # comx687 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.0000000") == dec"0" + # comx688 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.00000000") == dec"0" + # comx689 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12.000000000") == dec"0" + # comx690 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12", dec"12") == dec"0" + # comx691 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.0", dec"12") == dec"0" + # comx692 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.00", dec"12") == dec"0" + # comx693 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.000", dec"12") == dec"0" + # comx694 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.0000", dec"12") == dec"0" + # comx695 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.00000", dec"12") == dec"0" + # comx696 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.000000", dec"12") == dec"0" + # comx697 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.0000000", dec"12") == dec"0" + # comx698 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.00000000", dec"12") == dec"0" + # comx699 + @with_context (Emax=999999999, Emin=-999999999, precision=20, rounding=RoundNearestTiesAway) @test cmp(dec"12.000000000", dec"12") == dec"0" + # comx701 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"12345678000", dec"1") == dec"1" + # comx702 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"12345678000") == dec"-1" + # comx703 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1234567800", dec"1") == dec"1" + # comx704 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567800") == dec"-1" + # comx705 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1234567890", dec"1") == dec"1" + # comx706 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567890") == dec"-1" + # comx707 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1234567891", dec"1") == dec"1" + # comx708 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567891") == dec"-1" + # comx709 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"12345678901", dec"1") == dec"1" + # comx710 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"12345678901") == dec"-1" + # comx711 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1234567896", dec"1") == dec"1" + # comx712 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567896") == dec"-1" + # comx713 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1234567891", dec"1") == dec"-1" + # comx714 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"-1234567891") == dec"1" + # comx715 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-12345678901", dec"1") == dec"-1" + # comx716 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"-12345678901") == dec"1" + # comx717 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1234567896", dec"1") == dec"-1" + # comx718 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"-1234567896") == dec"1" + # comx721 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"12345678000", dec"1") == dec"1" + # comx722 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"12345678000") == dec"-1" + # comx723 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1234567800", dec"1") == dec"1" + # comx724 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567800") == dec"-1" + # comx725 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1234567890", dec"1") == dec"1" + # comx726 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567890") == dec"-1" + # comx727 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1234567891", dec"1") == dec"1" + # comx728 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567891") == dec"-1" + # comx729 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"12345678901", dec"1") == dec"1" + # comx730 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"12345678901") == dec"-1" + # comx731 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1234567896", dec"1") == dec"1" + # comx732 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1234567896") == dec"-1" + # comx740 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"0.9999999") == dec"1" + # comx741 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"0.999999") == dec"1" + # comx742 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"0.99999") == dec"1" + # comx743 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1.0000") == dec"0" + # comx744 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1.00001") == dec"-1" + # comx745 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1.000001") == dec"-1" + # comx746 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1", dec"1.0000001") == dec"-1" + # comx750 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"0.9999999", dec"1") == dec"-1" + # comx751 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"0.999999", dec"1") == dec"-1" + # comx752 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"0.99999", dec"1") == dec"-1" + # comx753 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1.0000", dec"1") == dec"0" + # comx754 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1.00001", dec"1") == dec"1" + # comx755 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1.000001", dec"1") == dec"1" + # comx756 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"1.0000001", dec"1") == dec"1" + # comx760 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-5830629.8347085025808756560357940") == dec"-1" + # comx761 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.84194296250843579428931") == dec"0" + # comx762 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.94194296250843579428931", dec"-36852134.84194296250843579428931") == dec"-1" + # comx763 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx764 + @with_context (Emax=999, Emin=-999, precision=11, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx765 + @with_context (Emax=999, Emin=-999, precision=10, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx766 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx767 + @with_context (Emax=999, Emin=-999, precision=8, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx768 + @with_context (Emax=999, Emin=-999, precision=7, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx769 + @with_context (Emax=999, Emin=-999, precision=6, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx770 + @with_context (Emax=999, Emin=-999, precision=5, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx771 + @with_context (Emax=999, Emin=-999, precision=4, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx772 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx773 + @with_context (Emax=999, Emin=-999, precision=2, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx774 + @with_context (Emax=999, Emin=-999, precision=1, rounding=RoundNearestTiesAway) @test cmp(dec"-36852134.84194296250843579428931", dec"-36852134.94194296250843579428931") == dec"1" + # comx880 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"+1.23456789012345e-0", dec"9e+999999999") == dec"-1" + # comx881 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e+999999999", dec"+1.23456789012345e-0") == dec"1" + # comx882 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"+0.100", dec"9e-999999999") == dec"1" + # comx883 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e-999999999", dec"+0.100") == dec"-1" + # comx885 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1.23456789012345e-0", dec"9e+999999999") == dec"-1" + # comx886 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e+999999999", dec"-1.23456789012345e-0") == dec"1" + # comx887 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0.100", dec"9e-999999999") == dec"-1" + # comx888 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e-999999999", dec"-0.100") == dec"1" + # comx889 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-599999999", dec"1e-400000001") == dec"-1" + # comx890 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-599999999", dec"1e-400000000") == dec"-1" + # comx891 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-600000000", dec"1e-400000000") == dec"-1" + # comx892 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e-999999998", dec"0.01") == dec"-1" + # comx893 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e-999999998", dec"0.1") == dec"-1" + # comx894 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0.01", dec"9e-999999998") == dec"1" + # comx895 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e599999999", dec"1e400000001") == dec"1" + # comx896 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e599999999", dec"1e400000000") == dec"1" + # comx897 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e600000000", dec"1e400000000") == dec"1" + # comx898 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e999999998", dec"100") == dec"1" + # comx899 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"9e999999998", dec"10") == dec"1" + # comx900 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"100", dec"9e999999998") == dec"-1" + # comx901 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+777777777", dec"1e+411111111") == dec"1" + # comx902 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e+777777777", dec"-1e+411111111") == dec"1" + # comx903 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1e+777777777", dec"1e+411111111") == dec"-1" + # comx904 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1e+777777777", dec"-1e+411111111") == dec"-1" + # comx905 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-777777777", dec"1e-411111111") == dec"-1" + # comx906 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"1e-777777777", dec"-1e-411111111") == dec"1" + # comx907 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1e-777777777", dec"1e-411111111") == dec"-1" + # comx908 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-1e-777777777", dec"-1e-411111111") == dec"1" + # comx910 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e-383", dec"0") == dec"0" + # comx911 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e-383", dec"-0") == dec"0" + # comx912 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e-383", dec"0") == dec"0" + # comx913 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e-383", dec"-0") == dec"0" + # comx914 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e-383", dec"0e+384") == dec"0" + # comx915 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e-383", dec"-0e+384") == dec"0" + # comx916 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e-383", dec"0e+384") == dec"0" + # comx917 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e-383", dec"-0e+384") == dec"0" + # comx918 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"0e+384") == dec"0" + # comx919 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"-0e+384") == dec"0" + # comx920 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"0e+384") == dec"0" + # comx921 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"-0e+384") == dec"0" + # comx930 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e+384", dec"0") == dec"0" + # comx931 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e+384", dec"-0") == dec"0" + # comx932 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e+384", dec"0") == dec"0" + # comx933 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e+384", dec"-0") == dec"0" + # comx934 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e+384", dec"0e-383") == dec"0" + # comx935 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0e+384", dec"-0e-383") == dec"0" + # comx936 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e+384", dec"0e-383") == dec"0" + # comx937 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0e+384", dec"-0e-383") == dec"0" + # comx938 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"0e-383") == dec"0" + # comx939 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"0", dec"-0e-383") == dec"0" + # comx940 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"0e-383") == dec"0" + # comx941 + @with_context (Emax=999999999, Emin=-999999999, precision=9, rounding=RoundNearestTiesAway) @test cmp(dec"-0", dec"-0e-383") == dec"0" +end diff --git a/test/dectests/test_minus.jl b/test/dectests/test_minus.jl new file mode 100644 index 0000000..9e05567 --- /dev/null +++ b/test/dectests/test_minus.jl @@ -0,0 +1,211 @@ +using Decimals +using ScopedValues +using Test +using Decimals: @with_context + +@testset "Minus" begin + # minx001 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"1") == dec"-1" + # minx002 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-1") == dec"1" + # minx003 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"1.00") == dec"-1.00" + # minx004 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-1.00") == dec"1.00" + # minx005 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"0") == dec"0" + # minx006 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"0.00") == dec"0.00" + # minx007 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"00.0") == dec"0.0" + # minx008 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"00.00") == dec"0.00" + # minx009 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"00") == dec"0" + # minx010 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-2") == dec"2" + # minx011 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"2") == dec"-2" + # minx012 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-2.00") == dec"2.00" + # minx013 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"2.00") == dec"-2.00" + # minx014 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-0") == dec"0" + # minx015 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-0.00") == dec"0.00" + # minx016 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-00.0") == dec"0.0" + # minx017 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-00.00") == dec"0.00" + # minx018 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-00") == dec"0" + # minx020 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-0e3") == dec"0e+3" + # minx021 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-0e2") == dec"0e+2" + # minx022 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-0e1") == dec"0e+1" + # minx023 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-0e0") == dec"0" + # minx024 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+0e0") == dec"0" + # minx025 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+0e1") == dec"0e+1" + # minx026 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+0e2") == dec"0e+2" + # minx027 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+0e3") == dec"0e+3" + # minx030 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-5e3") == dec"5e+3" + # minx031 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-5e8") == dec"5e+8" + # minx032 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-5e13") == dec"5e+13" + # minx033 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-5e18") == dec"5e+18" + # minx034 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+5e3") == dec"-5e+3" + # minx035 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+5e8") == dec"-5e+8" + # minx036 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+5e13") == dec"-5e+13" + # minx037 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"+5e18") == dec"-5e+18" + # minx050 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-2000000") == dec"2000000" + # minx051 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"2000000") == dec"-2000000" + # minx052 + @with_context (Emax=384, Emin=-383, precision=7, rounding=RoundNearestTiesAway) @test -(dec"-2000000") == dec"2000000" + # minx053 + @with_context (Emax=384, Emin=-383, precision=7, rounding=RoundNearestTiesAway) @test -(dec"2000000") == dec"-2000000" + # minx054 + @with_context (Emax=384, Emin=-383, precision=6, rounding=RoundNearestTiesAway) @test -(dec"-2000000") == dec"2.00000e+6" + # minx055 + @with_context (Emax=384, Emin=-383, precision=6, rounding=RoundNearestTiesAway) @test -(dec"2000000") == dec"-2.00000e+6" + # minx056 + @with_context (Emax=384, Emin=-383, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-2000000") == dec"2.00e+6" + # minx057 + @with_context (Emax=384, Emin=-383, precision=3, rounding=RoundNearestTiesAway) @test -(dec"2000000") == dec"-2.00e+6" + # minx060 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e-10") == dec"-0.0000056267" + # minx061 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e-5") == dec"-0.56267" + # minx062 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e-2") == dec"-562.67" + # minx063 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e-1") == dec"-5626.7" + # minx065 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e-0") == dec"-56267" + # minx066 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+0") == dec"-56267" + # minx067 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+1") == dec"-5.6267e+5" + # minx068 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+2") == dec"-5.6267e+6" + # minx069 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+3") == dec"-5.6267e+7" + # minx070 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+4") == dec"-5.6267e+8" + # minx071 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+5") == dec"-5.6267e+9" + # minx072 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"56267e+6") == dec"-5.6267e+10" + # minx080 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e-10") == dec"0.0000056267" + # minx081 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e-5") == dec"0.56267" + # minx082 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e-2") == dec"562.67" + # minx083 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e-1") == dec"5626.7" + # minx085 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e-0") == dec"56267" + # minx086 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+0") == dec"56267" + # minx087 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+1") == dec"5.6267e+5" + # minx088 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+2") == dec"5.6267e+6" + # minx089 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+3") == dec"5.6267e+7" + # minx090 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+4") == dec"5.6267e+8" + # minx091 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+5") == dec"5.6267e+9" + # minx092 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test -(dec"-56267e+6") == dec"5.6267e+10" + # minx100 + @with_context (Emax=999999999, Emin=-999999999, precision=3, rounding=RoundNearestTiesAway) @test_throws OverflowError -(dec"9.999e+999999999") + # minx101 + @with_context (Emax=999999999, Emin=-999999999, precision=3, rounding=RoundNearestTiesAway) @test_throws OverflowError -(dec"-9.999e+999999999") + # minx110 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"1.00e-999") == dec"-1.00e-999" + # minx111 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.1e-999") == dec"-1e-1000" + # minx112 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.10e-999") == dec"-1.0e-1000" + # minx113 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.100e-999") == dec"-1.0e-1000" + # minx114 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.01e-999") == dec"-1e-1001" + # minx115 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.999e-999") == dec"-1.00e-999" + # minx116 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.099e-999") == dec"-1.0e-1000" + # minx117 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.009e-999") == dec"-1e-1001" + # minx118 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.001e-999") == dec"-0e-1001" + # minx119 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.0009e-999") == dec"-0e-1001" + # minx120 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"0.0001e-999") == dec"-0e-1001" + # minx130 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-1.00e-999") == dec"1.00e-999" + # minx131 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.1e-999") == dec"1e-1000" + # minx132 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.10e-999") == dec"1.0e-1000" + # minx133 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.100e-999") == dec"1.0e-1000" + # minx134 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.01e-999") == dec"1e-1001" + # minx135 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.999e-999") == dec"1.00e-999" + # minx136 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.099e-999") == dec"1.0e-1000" + # minx137 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.009e-999") == dec"1e-1001" + # minx138 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.001e-999") == dec"0e-1001" + # minx139 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.0009e-999") == dec"0e-1001" + # minx140 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test -(dec"-0.0001e-999") == dec"0e-1001" + # minx301 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test -(dec"12345678000") == dec"-1.23456780e+10" + # minx302 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test -(dec"1234567800") == dec"-1.23456780e+9" + # minx303 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test -(dec"1234567890") == dec"-1.23456789e+9" + # minx304 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test -(dec"1234567891") == dec"-1.23456789e+9" + # minx305 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test -(dec"12345678901") == dec"-1.23456789e+10" + # minx306 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test -(dec"1234567896") == dec"-1.23456790e+9" + # minx321 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test -(dec"12345678000") == dec"-12345678000" + # minx322 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test -(dec"1234567800") == dec"-1234567800" + # minx323 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test -(dec"1234567890") == dec"-1234567890" + # minx324 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test -(dec"1234567891") == dec"-1234567891" + # minx325 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test -(dec"12345678901") == dec"-12345678901" + # minx326 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test -(dec"1234567896") == dec"-1234567896" +end diff --git a/test/dectests/test_plus.jl b/test/dectests/test_plus.jl new file mode 100644 index 0000000..517ca76 --- /dev/null +++ b/test/dectests/test_plus.jl @@ -0,0 +1,229 @@ +using Decimals +using ScopedValues +using Test +using Decimals: @with_context + +@testset "Plus" begin + # plux001 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"1") == dec"1" + # plux002 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-1") == dec"-1" + # plux003 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"1.00") == dec"1.00" + # plux004 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-1.00") == dec"-1.00" + # plux005 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"0") == dec"0" + # plux006 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"0.00") == dec"0.00" + # plux007 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"00.0") == dec"0.0" + # plux008 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"00.00") == dec"0.00" + # plux009 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"00") == dec"0" + # plux010 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-2") == dec"-2" + # plux011 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"2") == dec"2" + # plux012 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-2.00") == dec"-2.00" + # plux013 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"2.00") == dec"2.00" + # plux014 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-0") == dec"0" + # plux015 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-0.00") == dec"0.00" + # plux016 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-00.0") == dec"0.0" + # plux017 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-00.00") == dec"0.00" + # plux018 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-00") == dec"0" + # plux020 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-2000000") == dec"-2000000" + # plux021 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"2000000") == dec"2000000" + # plux022 + @with_context (Emax=384, Emin=-383, precision=7, rounding=RoundNearestTiesAway) @test +(dec"-2000000") == dec"-2000000" + # plux023 + @with_context (Emax=384, Emin=-383, precision=7, rounding=RoundNearestTiesAway) @test +(dec"2000000") == dec"2000000" + # plux024 + @with_context (Emax=384, Emin=-383, precision=6, rounding=RoundNearestTiesAway) @test +(dec"-2000000") == dec"-2.00000e+6" + # plux025 + @with_context (Emax=384, Emin=-383, precision=6, rounding=RoundNearestTiesAway) @test +(dec"2000000") == dec"2.00000e+6" + # plux026 + @with_context (Emax=384, Emin=-383, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-2000000") == dec"-2.00e+6" + # plux027 + @with_context (Emax=384, Emin=-383, precision=3, rounding=RoundNearestTiesAway) @test +(dec"2000000") == dec"2.00e+6" + # plux060 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e-10") == dec"0.0000056267" + # plux061 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e-5") == dec"0.56267" + # plux062 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e-2") == dec"562.67" + # plux063 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e-1") == dec"5626.7" + # plux065 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e-0") == dec"56267" + # plux066 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+0") == dec"56267" + # plux067 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+1") == dec"5.6267e+5" + # plux068 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+2") == dec"5.6267e+6" + # plux069 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+3") == dec"5.6267e+7" + # plux070 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+4") == dec"5.6267e+8" + # plux071 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+5") == dec"5.6267e+9" + # plux072 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"56267e+6") == dec"5.6267e+10" + # plux080 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e-10") == dec"-0.0000056267" + # plux081 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e-5") == dec"-0.56267" + # plux082 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e-2") == dec"-562.67" + # plux083 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e-1") == dec"-5626.7" + # plux085 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e-0") == dec"-56267" + # plux086 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+0") == dec"-56267" + # plux087 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+1") == dec"-5.6267e+5" + # plux088 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+2") == dec"-5.6267e+6" + # plux089 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+3") == dec"-5.6267e+7" + # plux090 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+4") == dec"-5.6267e+8" + # plux091 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+5") == dec"-5.6267e+9" + # plux092 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-56267e+6") == dec"-5.6267e+10" + # plux120 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-0e3") == dec"0e+3" + # plux121 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-0e2") == dec"0e+2" + # plux122 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-0e1") == dec"0e+1" + # plux123 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-0e0") == dec"0" + # plux124 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+0e0") == dec"0" + # plux125 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+0e1") == dec"0e+1" + # plux126 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+0e2") == dec"0e+2" + # plux127 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+0e3") == dec"0e+3" + # plux130 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-5e3") == dec"-5e+3" + # plux131 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-5e8") == dec"-5e+8" + # plux132 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-5e13") == dec"-5e+13" + # plux133 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"-5e18") == dec"-5e+18" + # plux134 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+5e3") == dec"5e+3" + # plux135 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+5e8") == dec"5e+8" + # plux136 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+5e13") == dec"5e+13" + # plux137 + @with_context (Emax=384, Emin=-383, precision=9, rounding=RoundNearestTiesAway) @test +(dec"+5e18") == dec"5e+18" + # plux160 + @with_context (Emax=999999999, Emin=-999999999, precision=3, rounding=RoundNearestTiesAway) @test_throws OverflowError +(dec"9.999e+999999999") + # plux161 + @with_context (Emax=999999999, Emin=-999999999, precision=3, rounding=RoundNearestTiesAway) @test_throws OverflowError +(dec"-9.999e+999999999") + # plux210 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"1.00e-999") == dec"1.00e-999" + # plux211 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.1e-999") == dec"1e-1000" + # plux212 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.10e-999") == dec"1.0e-1000" + # plux213 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.100e-999") == dec"1.0e-1000" + # plux214 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.01e-999") == dec"1e-1001" + # plux215 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.999e-999") == dec"1.00e-999" + # plux216 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.099e-999") == dec"1.0e-1000" + # plux217 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.009e-999") == dec"1e-1001" + # plux218 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.001e-999") == dec"0e-1001" + # plux219 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.0009e-999") == dec"0e-1001" + # plux220 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"0.0001e-999") == dec"0e-1001" + # plux230 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-1.00e-999") == dec"-1.00e-999" + # plux231 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.1e-999") == dec"-1e-1000" + # plux232 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.10e-999") == dec"-1.0e-1000" + # plux233 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.100e-999") == dec"-1.0e-1000" + # plux234 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.01e-999") == dec"-1e-1001" + # plux235 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.999e-999") == dec"-1.00e-999" + # plux236 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.099e-999") == dec"-1.0e-1000" + # plux237 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.009e-999") == dec"-1e-1001" + # plux238 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.001e-999") == dec"-0e-1001" + # plux239 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.0009e-999") == dec"-0e-1001" + # plux240 + @with_context (Emax=999, Emin=-999, precision=3, rounding=RoundNearestTiesAway) @test +(dec"-0.0001e-999") == dec"-0e-1001" + # plux251 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"7e-398") == dec"7e-398" + # plux252 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"0e-398") == dec"0e-398" + # plux253 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"7e-399") == dec"1e-398" + # plux254 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"4e-399") == dec"0e-398" + # plux255 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"7e-400") == dec"0e-398" + # plux256 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"7e-401") == dec"0e-398" + # plux257 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"0e-399") == dec"0e-398" + # plux258 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"0e-400") == dec"0e-398" + # plux259 + @with_context (Emax=384, Emin=-383, precision=16, rounding=RoundNearestTiesAway) @test +(dec"0e-401") == dec"0e-398" + # plux301 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test +(dec"12345678000") == dec"1.23456780e+10" + # plux302 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test +(dec"1234567800") == dec"1.23456780e+9" + # plux303 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test +(dec"1234567890") == dec"1.23456789e+9" + # plux304 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test +(dec"1234567891") == dec"1.23456789e+9" + # plux305 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test +(dec"12345678901") == dec"1.23456789e+10" + # plux306 + @with_context (Emax=999, Emin=-999, precision=9, rounding=RoundNearestTiesAway) @test +(dec"1234567896") == dec"1.23456790e+9" + # plux321 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test +(dec"12345678000") == dec"12345678000" + # plux322 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test +(dec"1234567800") == dec"1234567800" + # plux323 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test +(dec"1234567890") == dec"1234567890" + # plux324 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test +(dec"1234567891") == dec"1234567891" + # plux325 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test +(dec"12345678901") == dec"12345678901" + # plux326 + @with_context (Emax=999, Emin=-999, precision=15, rounding=RoundNearestTiesAway) @test +(dec"1234567896") == dec"1234567896" +end diff --git a/test/runtests.jl b/test/runtests.jl index cf0e978..5bf5c95 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -15,14 +15,17 @@ global d = [ include("test_arithmetic.jl") include("test_bigint.jl") include("test_constructor.jl") -include("test_parse.jl") -include("test_show.jl") +include("test_context.jl") include("test_decimal.jl") include("test_equals.jl") include("test_hash.jl") include("test_norm.jl") +include("test_parse.jl") include("test_round.jl") +include("test_show.jl") -include("test_compare.jl") +include("dectests/test_compare.jl") +include("dectests/test_minus.jl") +include("dectests/test_plus.jl") end diff --git a/test/test_compare.jl b/test/test_compare.jl deleted file mode 100644 index ace7c50..0000000 --- a/test/test_compare.jl +++ /dev/null @@ -1,827 +0,0 @@ -using Decimals -using Test - -@testset "Compare" begin - # com001 - @test cmp(dec"-2", dec"-2") == 0 - # com002 - @test cmp(dec"-2", dec"-1") == -1 - # com003 - @test cmp(dec"-2", dec"0") == -1 - # com004 - @test cmp(dec"-2", dec"1") == -1 - # com005 - @test cmp(dec"-2", dec"2") == -1 - # com006 - @test cmp(dec"-1", dec"-2") == 1 - # com007 - @test cmp(dec"-1", dec"-1") == 0 - # com008 - @test cmp(dec"-1", dec"0") == -1 - # com009 - @test cmp(dec"-1", dec"1") == -1 - # com010 - @test cmp(dec"-1", dec"2") == -1 - # com011 - @test cmp(dec"0", dec"-2") == 1 - # com012 - @test cmp(dec"0", dec"-1") == 1 - # com013 - @test cmp(dec"0", dec"0") == 0 - # com014 - @test cmp(dec"0", dec"1") == -1 - # com015 - @test cmp(dec"0", dec"2") == -1 - # com016 - @test cmp(dec"1", dec"-2") == 1 - # com017 - @test cmp(dec"1", dec"-1") == 1 - # com018 - @test cmp(dec"1", dec"0") == 1 - # com019 - @test cmp(dec"1", dec"1") == 0 - # com020 - @test cmp(dec"1", dec"2") == -1 - # com021 - @test cmp(dec"2", dec"-2") == 1 - # com022 - @test cmp(dec"2", dec"-1") == 1 - # com023 - @test cmp(dec"2", dec"0") == 1 - # com025 - @test cmp(dec"2", dec"1") == 1 - # com026 - @test cmp(dec"2", dec"2") == 0 - # com031 - @test cmp(dec"-20", dec"-20") == 0 - # com032 - @test cmp(dec"-20", dec"-10") == -1 - # com033 - @test cmp(dec"-20", dec"00") == -1 - # com034 - @test cmp(dec"-20", dec"10") == -1 - # com035 - @test cmp(dec"-20", dec"20") == -1 - # com036 - @test cmp(dec"-10", dec"-20") == 1 - # com037 - @test cmp(dec"-10", dec"-10") == 0 - # com038 - @test cmp(dec"-10", dec"00") == -1 - # com039 - @test cmp(dec"-10", dec"10") == -1 - # com040 - @test cmp(dec"-10", dec"20") == -1 - # com041 - @test cmp(dec"00", dec"-20") == 1 - # com042 - @test cmp(dec"00", dec"-10") == 1 - # com043 - @test cmp(dec"00", dec"00") == 0 - # com044 - @test cmp(dec"00", dec"10") == -1 - # com045 - @test cmp(dec"00", dec"20") == -1 - # com046 - @test cmp(dec"10", dec"-20") == 1 - # com047 - @test cmp(dec"10", dec"-10") == 1 - # com048 - @test cmp(dec"10", dec"00") == 1 - # com049 - @test cmp(dec"10", dec"10") == 0 - # com050 - @test cmp(dec"10", dec"20") == -1 - # com051 - @test cmp(dec"20", dec"-20") == 1 - # com052 - @test cmp(dec"20", dec"-10") == 1 - # com053 - @test cmp(dec"20", dec"00") == 1 - # com055 - @test cmp(dec"20", dec"10") == 1 - # com056 - @test cmp(dec"20", dec"20") == 0 - # com061 - @test cmp(dec"-2.0", dec"-2.0") == 0 - # com062 - @test cmp(dec"-2.0", dec"-1.0") == -1 - # com063 - @test cmp(dec"-2.0", dec"0.0") == -1 - # com064 - @test cmp(dec"-2.0", dec"1.0") == -1 - # com065 - @test cmp(dec"-2.0", dec"2.0") == -1 - # com066 - @test cmp(dec"-1.0", dec"-2.0") == 1 - # com067 - @test cmp(dec"-1.0", dec"-1.0") == 0 - # com068 - @test cmp(dec"-1.0", dec"0.0") == -1 - # com069 - @test cmp(dec"-1.0", dec"1.0") == -1 - # com070 - @test cmp(dec"-1.0", dec"2.0") == -1 - # com071 - @test cmp(dec"0.0", dec"-2.0") == 1 - # com072 - @test cmp(dec"0.0", dec"-1.0") == 1 - # com073 - @test cmp(dec"0.0", dec"0.0") == 0 - # com074 - @test cmp(dec"0.0", dec"1.0") == -1 - # com075 - @test cmp(dec"0.0", dec"2.0") == -1 - # com076 - @test cmp(dec"1.0", dec"-2.0") == 1 - # com077 - @test cmp(dec"1.0", dec"-1.0") == 1 - # com078 - @test cmp(dec"1.0", dec"0.0") == 1 - # com079 - @test cmp(dec"1.0", dec"1.0") == 0 - # com080 - @test cmp(dec"1.0", dec"2.0") == -1 - # com081 - @test cmp(dec"2.0", dec"-2.0") == 1 - # com082 - @test cmp(dec"2.0", dec"-1.0") == 1 - # com083 - @test cmp(dec"2.0", dec"0.0") == 1 - # com085 - @test cmp(dec"2.0", dec"1.0") == 1 - # com086 - @test cmp(dec"2.0", dec"2.0") == 0 - # com100 - @test cmp(dec"7.0", dec"7.0") == 0 - # com101 - @test cmp(dec"7.0", dec"7") == 0 - # com102 - @test cmp(dec"7", dec"7.0") == 0 - # com103 - @test cmp(dec"7E+0", dec"7.0") == 0 - # com104 - @test cmp(dec"70E-1", dec"7.0") == 0 - # com105 - @test cmp(dec"0.7E+1", dec"7") == 0 - # com106 - @test cmp(dec"70E-1", dec"7") == 0 - # com107 - @test cmp(dec"7.0", dec"7E+0") == 0 - # com108 - @test cmp(dec"7.0", dec"70E-1") == 0 - # com109 - @test cmp(dec"7", dec"0.7E+1") == 0 - # com110 - @test cmp(dec"7", dec"70E-1") == 0 - # com120 - @test cmp(dec"8.0", dec"7.0") == 1 - # com121 - @test cmp(dec"8.0", dec"7") == 1 - # com122 - @test cmp(dec"8", dec"7.0") == 1 - # com123 - @test cmp(dec"8E+0", dec"7.0") == 1 - # com124 - @test cmp(dec"80E-1", dec"7.0") == 1 - # com125 - @test cmp(dec"0.8E+1", dec"7") == 1 - # com126 - @test cmp(dec"80E-1", dec"7") == 1 - # com127 - @test cmp(dec"8.0", dec"7E+0") == 1 - # com128 - @test cmp(dec"8.0", dec"70E-1") == 1 - # com129 - @test cmp(dec"8", dec"0.7E+1") == 1 - # com130 - @test cmp(dec"8", dec"70E-1") == 1 - # com140 - @test cmp(dec"8.0", dec"9.0") == -1 - # com141 - @test cmp(dec"8.0", dec"9") == -1 - # com142 - @test cmp(dec"8", dec"9.0") == -1 - # com143 - @test cmp(dec"8E+0", dec"9.0") == -1 - # com144 - @test cmp(dec"80E-1", dec"9.0") == -1 - # com145 - @test cmp(dec"0.8E+1", dec"9") == -1 - # com146 - @test cmp(dec"80E-1", dec"9") == -1 - # com147 - @test cmp(dec"8.0", dec"9E+0") == -1 - # com148 - @test cmp(dec"8.0", dec"90E-1") == -1 - # com149 - @test cmp(dec"8", dec"0.9E+1") == -1 - # com150 - @test cmp(dec"8", dec"90E-1") == -1 - # com200 - @test cmp(dec"-7.0", dec"7.0") == -1 - # com201 - @test cmp(dec"-7.0", dec"7") == -1 - # com202 - @test cmp(dec"-7", dec"7.0") == -1 - # com203 - @test cmp(dec"-7E+0", dec"7.0") == -1 - # com204 - @test cmp(dec"-70E-1", dec"7.0") == -1 - # com205 - @test cmp(dec"-0.7E+1", dec"7") == -1 - # com206 - @test cmp(dec"-70E-1", dec"7") == -1 - # com207 - @test cmp(dec"-7.0", dec"7E+0") == -1 - # com208 - @test cmp(dec"-7.0", dec"70E-1") == -1 - # com209 - @test cmp(dec"-7", dec"0.7E+1") == -1 - # com210 - @test cmp(dec"-7", dec"70E-1") == -1 - # com220 - @test cmp(dec"-8.0", dec"7.0") == -1 - # com221 - @test cmp(dec"-8.0", dec"7") == -1 - # com222 - @test cmp(dec"-8", dec"7.0") == -1 - # com223 - @test cmp(dec"-8E+0", dec"7.0") == -1 - # com224 - @test cmp(dec"-80E-1", dec"7.0") == -1 - # com225 - @test cmp(dec"-0.8E+1", dec"7") == -1 - # com226 - @test cmp(dec"-80E-1", dec"7") == -1 - # com227 - @test cmp(dec"-8.0", dec"7E+0") == -1 - # com228 - @test cmp(dec"-8.0", dec"70E-1") == -1 - # com229 - @test cmp(dec"-8", dec"0.7E+1") == -1 - # com230 - @test cmp(dec"-8", dec"70E-1") == -1 - # com240 - @test cmp(dec"-8.0", dec"9.0") == -1 - # com241 - @test cmp(dec"-8.0", dec"9") == -1 - # com242 - @test cmp(dec"-8", dec"9.0") == -1 - # com243 - @test cmp(dec"-8E+0", dec"9.0") == -1 - # com244 - @test cmp(dec"-80E-1", dec"9.0") == -1 - # com245 - @test cmp(dec"-0.8E+1", dec"9") == -1 - # com246 - @test cmp(dec"-80E-1", dec"9") == -1 - # com247 - @test cmp(dec"-8.0", dec"9E+0") == -1 - # com248 - @test cmp(dec"-8.0", dec"90E-1") == -1 - # com249 - @test cmp(dec"-8", dec"0.9E+1") == -1 - # com250 - @test cmp(dec"-8", dec"90E-1") == -1 - # com300 - @test cmp(dec"7.0", dec"-7.0") == 1 - # com301 - @test cmp(dec"7.0", dec"-7") == 1 - # com302 - @test cmp(dec"7", dec"-7.0") == 1 - # com303 - @test cmp(dec"7E+0", dec"-7.0") == 1 - # com304 - @test cmp(dec"70E-1", dec"-7.0") == 1 - # com305 - @test cmp(dec".7E+1", dec"-7") == 1 - # com306 - @test cmp(dec"70E-1", dec"-7") == 1 - # com307 - @test cmp(dec"7.0", dec"-7E+0") == 1 - # com308 - @test cmp(dec"7.0", dec"-70E-1") == 1 - # com309 - @test cmp(dec"7", dec"-.7E+1") == 1 - # com310 - @test cmp(dec"7", dec"-70E-1") == 1 - # com320 - @test cmp(dec"8.0", dec"-7.0") == 1 - # com321 - @test cmp(dec"8.0", dec"-7") == 1 - # com322 - @test cmp(dec"8", dec"-7.0") == 1 - # com323 - @test cmp(dec"8E+0", dec"-7.0") == 1 - # com324 - @test cmp(dec"80E-1", dec"-7.0") == 1 - # com325 - @test cmp(dec".8E+1", dec"-7") == 1 - # com326 - @test cmp(dec"80E-1", dec"-7") == 1 - # com327 - @test cmp(dec"8.0", dec"-7E+0") == 1 - # com328 - @test cmp(dec"8.0", dec"-70E-1") == 1 - # com329 - @test cmp(dec"8", dec"-.7E+1") == 1 - # com330 - @test cmp(dec"8", dec"-70E-1") == 1 - # com340 - @test cmp(dec"8.0", dec"-9.0") == 1 - # com341 - @test cmp(dec"8.0", dec"-9") == 1 - # com342 - @test cmp(dec"8", dec"-9.0") == 1 - # com343 - @test cmp(dec"8E+0", dec"-9.0") == 1 - # com344 - @test cmp(dec"80E-1", dec"-9.0") == 1 - # com345 - @test cmp(dec".8E+1", dec"-9") == 1 - # com346 - @test cmp(dec"80E-1", dec"-9") == 1 - # com347 - @test cmp(dec"8.0", dec"-9E+0") == 1 - # com348 - @test cmp(dec"8.0", dec"-90E-1") == 1 - # com349 - @test cmp(dec"8", dec"-.9E+1") == 1 - # com350 - @test cmp(dec"8", dec"-90E-1") == 1 - # com400 - @test cmp(dec"-7.0", dec"-7.0") == 0 - # com401 - @test cmp(dec"-7.0", dec"-7") == 0 - # com402 - @test cmp(dec"-7", dec"-7.0") == 0 - # com403 - @test cmp(dec"-7E+0", dec"-7.0") == 0 - # com404 - @test cmp(dec"-70E-1", dec"-7.0") == 0 - # com405 - @test cmp(dec"-.7E+1", dec"-7") == 0 - # com406 - @test cmp(dec"-70E-1", dec"-7") == 0 - # com407 - @test cmp(dec"-7.0", dec"-7E+0") == 0 - # com408 - @test cmp(dec"-7.0", dec"-70E-1") == 0 - # com409 - @test cmp(dec"-7", dec"-.7E+1") == 0 - # com410 - @test cmp(dec"-7", dec"-70E-1") == 0 - # com420 - @test cmp(dec"-8.0", dec"-7.0") == -1 - # com421 - @test cmp(dec"-8.0", dec"-7") == -1 - # com422 - @test cmp(dec"-8", dec"-7.0") == -1 - # com423 - @test cmp(dec"-8E+0", dec"-7.0") == -1 - # com424 - @test cmp(dec"-80E-1", dec"-7.0") == -1 - # com425 - @test cmp(dec"-.8E+1", dec"-7") == -1 - # com426 - @test cmp(dec"-80E-1", dec"-7") == -1 - # com427 - @test cmp(dec"-8.0", dec"-7E+0") == -1 - # com428 - @test cmp(dec"-8.0", dec"-70E-1") == -1 - # com429 - @test cmp(dec"-8", dec"-.7E+1") == -1 - # com430 - @test cmp(dec"-8", dec"-70E-1") == -1 - # com440 - @test cmp(dec"-8.0", dec"-9.0") == 1 - # com441 - @test cmp(dec"-8.0", dec"-9") == 1 - # com442 - @test cmp(dec"-8", dec"-9.0") == 1 - # com443 - @test cmp(dec"-8E+0", dec"-9.0") == 1 - # com444 - @test cmp(dec"-80E-1", dec"-9.0") == 1 - # com445 - @test cmp(dec"-.8E+1", dec"-9") == 1 - # com446 - @test cmp(dec"-80E-1", dec"-9") == 1 - # com447 - @test cmp(dec"-8.0", dec"-9E+0") == 1 - # com448 - @test cmp(dec"-8.0", dec"-90E-1") == 1 - # com449 - @test cmp(dec"-8", dec"-.9E+1") == 1 - # com450 - @test cmp(dec"-8", dec"-90E-1") == 1 - # com460 - @test cmp(dec"9.99999999E+999999999", dec"9.99999999E+999999999") == 0 - # com461 - @test cmp(dec"-9.99999999E+999999999", dec"9.99999999E+999999999") == -1 - # com462 - @test cmp(dec"9.99999999E+999999999", dec"-9.99999999E+999999999") == 1 - # com463 - @test cmp(dec"-9.99999999E+999999999", dec"-9.99999999E+999999999") == 0 - # com470 - @test cmp(dec"123.4560000000000000E789", dec"123.456E789") == 0 - # com471 - @test cmp(dec"123.456000000000000E-89", dec"123.456E-89") == 0 - # com472 - @test cmp(dec"123.45600000000000E789", dec"123.456E789") == 0 - # com473 - @test cmp(dec"123.4560000000000E-89", dec"123.456E-89") == 0 - # com474 - @test cmp(dec"123.456000000000E789", dec"123.456E789") == 0 - # com475 - @test cmp(dec"123.45600000000E-89", dec"123.456E-89") == 0 - # com476 - @test cmp(dec"123.4560000000E789", dec"123.456E789") == 0 - # com477 - @test cmp(dec"123.456000000E-89", dec"123.456E-89") == 0 - # com478 - @test cmp(dec"123.45600000E789", dec"123.456E789") == 0 - # com479 - @test cmp(dec"123.4560000E-89", dec"123.456E-89") == 0 - # com480 - @test cmp(dec"123.456000E789", dec"123.456E789") == 0 - # com481 - @test cmp(dec"123.45600E-89", dec"123.456E-89") == 0 - # com482 - @test cmp(dec"123.4560E789", dec"123.456E789") == 0 - # com483 - @test cmp(dec"123.456E-89", dec"123.456E-89") == 0 - # com484 - @test cmp(dec"123.456E-89", dec"123.4560000000000000E-89") == 0 - # com485 - @test cmp(dec"123.456E789", dec"123.456000000000000E789") == 0 - # com486 - @test cmp(dec"123.456E-89", dec"123.45600000000000E-89") == 0 - # com487 - @test cmp(dec"123.456E789", dec"123.4560000000000E789") == 0 - # com488 - @test cmp(dec"123.456E-89", dec"123.456000000000E-89") == 0 - # com489 - @test cmp(dec"123.456E789", dec"123.45600000000E789") == 0 - # com490 - @test cmp(dec"123.456E-89", dec"123.4560000000E-89") == 0 - # com491 - @test cmp(dec"123.456E789", dec"123.456000000E789") == 0 - # com492 - @test cmp(dec"123.456E-89", dec"123.45600000E-89") == 0 - # com493 - @test cmp(dec"123.456E789", dec"123.4560000E789") == 0 - # com494 - @test cmp(dec"123.456E-89", dec"123.456000E-89") == 0 - # com495 - @test cmp(dec"123.456E789", dec"123.45600E789") == 0 - # com496 - @test cmp(dec"123.456E-89", dec"123.4560E-89") == 0 - # com497 - @test cmp(dec"123.456E789", dec"123.456E789") == 0 - # com500 - @test cmp(dec"1", dec"1E-15") == 1 - # com501 - @test cmp(dec"1", dec"1E-14") == 1 - # com502 - @test cmp(dec"1", dec"1E-13") == 1 - # com503 - @test cmp(dec"1", dec"1E-12") == 1 - # com504 - @test cmp(dec"1", dec"1E-11") == 1 - # com505 - @test cmp(dec"1", dec"1E-10") == 1 - # com506 - @test cmp(dec"1", dec"1E-9") == 1 - # com507 - @test cmp(dec"1", dec"1E-8") == 1 - # com508 - @test cmp(dec"1", dec"1E-7") == 1 - # com509 - @test cmp(dec"1", dec"1E-6") == 1 - # com510 - @test cmp(dec"1", dec"1E-5") == 1 - # com511 - @test cmp(dec"1", dec"1E-4") == 1 - # com512 - @test cmp(dec"1", dec"1E-3") == 1 - # com513 - @test cmp(dec"1", dec"1E-2") == 1 - # com514 - @test cmp(dec"1", dec"1E-1") == 1 - # com515 - @test cmp(dec"1", dec"1E-0") == 0 - # com516 - @test cmp(dec"1", dec"1E+1") == -1 - # com517 - @test cmp(dec"1", dec"1E+2") == -1 - # com518 - @test cmp(dec"1", dec"1E+3") == -1 - # com519 - @test cmp(dec"1", dec"1E+4") == -1 - # com521 - @test cmp(dec"1", dec"1E+5") == -1 - # com522 - @test cmp(dec"1", dec"1E+6") == -1 - # com523 - @test cmp(dec"1", dec"1E+7") == -1 - # com524 - @test cmp(dec"1", dec"1E+8") == -1 - # com525 - @test cmp(dec"1", dec"1E+9") == -1 - # com526 - @test cmp(dec"1", dec"1E+10") == -1 - # com527 - @test cmp(dec"1", dec"1E+11") == -1 - # com528 - @test cmp(dec"1", dec"1E+12") == -1 - # com529 - @test cmp(dec"1", dec"1E+13") == -1 - # com530 - @test cmp(dec"1", dec"1E+14") == -1 - # com531 - @test cmp(dec"1", dec"1E+15") == -1 - # com540 - @test cmp(dec"1E-15", dec"1") == -1 - # com541 - @test cmp(dec"1E-14", dec"1") == -1 - # com542 - @test cmp(dec"1E-13", dec"1") == -1 - # com543 - @test cmp(dec"1E-12", dec"1") == -1 - # com544 - @test cmp(dec"1E-11", dec"1") == -1 - # com545 - @test cmp(dec"1E-10", dec"1") == -1 - # com546 - @test cmp(dec"1E-9", dec"1") == -1 - # com547 - @test cmp(dec"1E-8", dec"1") == -1 - # com548 - @test cmp(dec"1E-7", dec"1") == -1 - # com549 - @test cmp(dec"1E-6", dec"1") == -1 - # com550 - @test cmp(dec"1E-5", dec"1") == -1 - # com551 - @test cmp(dec"1E-4", dec"1") == -1 - # com552 - @test cmp(dec"1E-3", dec"1") == -1 - # com553 - @test cmp(dec"1E-2", dec"1") == -1 - # com554 - @test cmp(dec"1E-1", dec"1") == -1 - # com555 - @test cmp(dec"1E-0", dec"1") == 0 - # com556 - @test cmp(dec"1E+1", dec"1") == 1 - # com557 - @test cmp(dec"1E+2", dec"1") == 1 - # com558 - @test cmp(dec"1E+3", dec"1") == 1 - # com559 - @test cmp(dec"1E+4", dec"1") == 1 - # com561 - @test cmp(dec"1E+5", dec"1") == 1 - # com562 - @test cmp(dec"1E+6", dec"1") == 1 - # com563 - @test cmp(dec"1E+7", dec"1") == 1 - # com564 - @test cmp(dec"1E+8", dec"1") == 1 - # com565 - @test cmp(dec"1E+9", dec"1") == 1 - # com566 - @test cmp(dec"1E+10", dec"1") == 1 - # com567 - @test cmp(dec"1E+11", dec"1") == 1 - # com568 - @test cmp(dec"1E+12", dec"1") == 1 - # com569 - @test cmp(dec"1E+13", dec"1") == 1 - # com570 - @test cmp(dec"1E+14", dec"1") == 1 - # com571 - @test cmp(dec"1E+15", dec"1") == 1 - # com580 - @test cmp(dec"0.000000987654321", dec"1E-15") == 1 - # com581 - @test cmp(dec"0.000000987654321", dec"1E-14") == 1 - # com582 - @test cmp(dec"0.000000987654321", dec"1E-13") == 1 - # com583 - @test cmp(dec"0.000000987654321", dec"1E-12") == 1 - # com584 - @test cmp(dec"0.000000987654321", dec"1E-11") == 1 - # com585 - @test cmp(dec"0.000000987654321", dec"1E-10") == 1 - # com586 - @test cmp(dec"0.000000987654321", dec"1E-9") == 1 - # com587 - @test cmp(dec"0.000000987654321", dec"1E-8") == 1 - # com588 - @test cmp(dec"0.000000987654321", dec"1E-7") == 1 - # com589 - @test cmp(dec"0.000000987654321", dec"1E-6") == -1 - # com590 - @test cmp(dec"0.000000987654321", dec"1E-5") == -1 - # com591 - @test cmp(dec"0.000000987654321", dec"1E-4") == -1 - # com592 - @test cmp(dec"0.000000987654321", dec"1E-3") == -1 - # com593 - @test cmp(dec"0.000000987654321", dec"1E-2") == -1 - # com594 - @test cmp(dec"0.000000987654321", dec"1E-1") == -1 - # com595 - @test cmp(dec"0.000000987654321", dec"1E-0") == -1 - # com596 - @test cmp(dec"0.000000987654321", dec"1E+1") == -1 - # com597 - @test cmp(dec"0.000000987654321", dec"1E+2") == -1 - # com598 - @test cmp(dec"0.000000987654321", dec"1E+3") == -1 - # com599 - @test cmp(dec"0.000000987654321", dec"1E+4") == -1 - # com600 - @test cmp(dec"12", dec"12.2345") == -1 - # com601 - @test cmp(dec"12.0", dec"12.2345") == -1 - # com602 - @test cmp(dec"12.00", dec"12.2345") == -1 - # com603 - @test cmp(dec"12.000", dec"12.2345") == -1 - # com604 - @test cmp(dec"12.0000", dec"12.2345") == -1 - # com605 - @test cmp(dec"12.00000", dec"12.2345") == -1 - # com606 - @test cmp(dec"12.000000", dec"12.2345") == -1 - # com607 - @test cmp(dec"12.0000000", dec"12.2345") == -1 - # com608 - @test cmp(dec"12.00000000", dec"12.2345") == -1 - # com609 - @test cmp(dec"12.000000000", dec"12.2345") == -1 - # com610 - @test cmp(dec"12.1234", dec"12") == 1 - # com611 - @test cmp(dec"12.1234", dec"12.0") == 1 - # com612 - @test cmp(dec"12.1234", dec"12.00") == 1 - # com613 - @test cmp(dec"12.1234", dec"12.000") == 1 - # com614 - @test cmp(dec"12.1234", dec"12.0000") == 1 - # com615 - @test cmp(dec"12.1234", dec"12.00000") == 1 - # com616 - @test cmp(dec"12.1234", dec"12.000000") == 1 - # com617 - @test cmp(dec"12.1234", dec"12.0000000") == 1 - # com618 - @test cmp(dec"12.1234", dec"12.00000000") == 1 - # com619 - @test cmp(dec"12.1234", dec"12.000000000") == 1 - # com620 - @test cmp(dec"-12", dec"-12.2345") == 1 - # com621 - @test cmp(dec"-12.0", dec"-12.2345") == 1 - # com622 - @test cmp(dec"-12.00", dec"-12.2345") == 1 - # com623 - @test cmp(dec"-12.000", dec"-12.2345") == 1 - # com624 - @test cmp(dec"-12.0000", dec"-12.2345") == 1 - # com625 - @test cmp(dec"-12.00000", dec"-12.2345") == 1 - # com626 - @test cmp(dec"-12.000000", dec"-12.2345") == 1 - # com627 - @test cmp(dec"-12.0000000", dec"-12.2345") == 1 - # com628 - @test cmp(dec"-12.00000000", dec"-12.2345") == 1 - # com629 - @test cmp(dec"-12.000000000", dec"-12.2345") == 1 - # com630 - @test cmp(dec"-12.1234", dec"-12") == -1 - # com631 - @test cmp(dec"-12.1234", dec"-12.0") == -1 - # com632 - @test cmp(dec"-12.1234", dec"-12.00") == -1 - # com633 - @test cmp(dec"-12.1234", dec"-12.000") == -1 - # com634 - @test cmp(dec"-12.1234", dec"-12.0000") == -1 - # com635 - @test cmp(dec"-12.1234", dec"-12.00000") == -1 - # com636 - @test cmp(dec"-12.1234", dec"-12.000000") == -1 - # com637 - @test cmp(dec"-12.1234", dec"-12.0000000") == -1 - # com638 - @test cmp(dec"-12.1234", dec"-12.00000000") == -1 - # com639 - @test cmp(dec"-12.1234", dec"-12.000000000") == -1 - # com680 - @test cmp(dec"12", dec"12") == 0 - # com681 - @test cmp(dec"12", dec"12.0") == 0 - # com682 - @test cmp(dec"12", dec"12.00") == 0 - # com683 - @test cmp(dec"12", dec"12.000") == 0 - # com684 - @test cmp(dec"12", dec"12.0000") == 0 - # com685 - @test cmp(dec"12", dec"12.00000") == 0 - # com686 - @test cmp(dec"12", dec"12.000000") == 0 - # com687 - @test cmp(dec"12", dec"12.0000000") == 0 - # com688 - @test cmp(dec"12", dec"12.00000000") == 0 - # com689 - @test cmp(dec"12", dec"12.000000000") == 0 - # com690 - @test cmp(dec"12", dec"12") == 0 - # com691 - @test cmp(dec"12.0", dec"12") == 0 - # com692 - @test cmp(dec"12.00", dec"12") == 0 - # com693 - @test cmp(dec"12.000", dec"12") == 0 - # com694 - @test cmp(dec"12.0000", dec"12") == 0 - # com695 - @test cmp(dec"12.00000", dec"12") == 0 - # com696 - @test cmp(dec"12.000000", dec"12") == 0 - # com697 - @test cmp(dec"12.0000000", dec"12") == 0 - # com698 - @test cmp(dec"12.00000000", dec"12") == 0 - # com699 - @test cmp(dec"12.000000000", dec"12") == 0 - # com701 - @test cmp(dec"12345678000", dec"1") == 1 - # com702 - @test cmp(dec"1", dec"12345678000") == -1 - # com703 - @test cmp(dec"1234567800", dec"1") == 1 - # com704 - @test cmp(dec"1", dec"1234567800") == -1 - # com705 - @test cmp(dec"1234567890", dec"1") == 1 - # com706 - @test cmp(dec"1", dec"1234567890") == -1 - # com707 - @test cmp(dec"1234567891", dec"1") == 1 - # com708 - @test cmp(dec"1", dec"1234567891") == -1 - # com709 - @test cmp(dec"12345678901", dec"1") == 1 - # com710 - @test cmp(dec"1", dec"12345678901") == -1 - # com711 - @test cmp(dec"1234567896", dec"1") == 1 - # com712 - @test cmp(dec"1", dec"1234567896") == -1 - # com713 - @test cmp(dec"-1234567891", dec"1") == -1 - # com714 - @test cmp(dec"1", dec"-1234567891") == 1 - # com715 - @test cmp(dec"-12345678901", dec"1") == -1 - # com716 - @test cmp(dec"1", dec"-12345678901") == 1 - # com717 - @test cmp(dec"-1234567896", dec"1") == -1 - # com718 - @test cmp(dec"1", dec"-1234567896") == 1 - # com741 - @test cmp(dec"12345678000", dec"1") == 1 - # com742 - @test cmp(dec"1", dec"12345678000") == -1 - # com743 - @test cmp(dec"1234567800", dec"1") == 1 - # com744 - @test cmp(dec"1", dec"1234567800") == -1 - # com745 - @test cmp(dec"1234567890", dec"1") == 1 - # com746 - @test cmp(dec"1", dec"1234567890") == -1 - # com747 - @test cmp(dec"1234567891", dec"1") == 1 - # com748 - @test cmp(dec"1", dec"1234567891") == -1 - # com749 - @test cmp(dec"12345678901", dec"1") == 1 - # com750 - @test cmp(dec"1", dec"12345678901") == -1 - # com751 - @test cmp(dec"1234567896", dec"1") == 1 - # com752 - @test cmp(dec"1", dec"1234567896") == -1 -end diff --git a/test/test_context.jl b/test/test_context.jl new file mode 100644 index 0000000..7ca80d3 --- /dev/null +++ b/test/test_context.jl @@ -0,0 +1,40 @@ +using Decimals +using ScopedValues +using Test +using Decimals: @with_context, with_context + +@testset "Context" begin + @testset "precision" begin + @test precision(Decimal) == 28 + with_context(precision=42) do + @test precision(Decimal) == 42 + end + @with_context (precision=42,) @test precision(Decimal) == 42 + end + + @testset "rounding" begin + @test rounding(Decimal) == RoundNearest + with_context(rounding=RoundNearestTiesAway) do + @test rounding(Decimal) == RoundNearestTiesAway + end + @with_context (rounding=RoundNearestTiesAway,) @test rounding(Decimal) == RoundNearestTiesAway + end + + @testset "overflow" begin + with_context(precision=3, Emax=9) do + x = Decimal(0, 123, 7) + @test x == Decimals.fix(x) + + x = Decimal(0, 123, 8) + @test_throws OverflowError Decimals.fix(x) + end + + @with_context (precision=3, Emax=9) begin + x = Decimal(0, 123, 7) + @test x == Decimals.fix(x) + + x = Decimal(0, 123, 8) + @test_throws OverflowError Decimals.fix(x) + end + end +end