[ruby/bigdecimal] Fix for the coerce cases in divide and DoDivmod

1cb92487f7
This commit is contained in:
Kenta Murata 2021-01-15 10:44:45 +09:00
parent 9d0c5e2754
commit b130644584
2 changed files with 29 additions and 10 deletions

View file

@ -963,6 +963,15 @@ class TestBigDecimal < Test::Unit::TestCase
assert_kind_of(BigDecimal, BigDecimal("3") / 1.quo(3))
end
def test_div_with_complex
q = BigDecimal("3") / 1i
assert_kind_of(Complex, q)
end
def test_div_error
assert_raise(TypeError) { BigDecimal(20) / '2' }
end
def test_mod
x = BigDecimal((2**100).to_s)
assert_equal(1, x % 3)
@ -1006,6 +1015,10 @@ class TestBigDecimal < Test::Unit::TestCase
assert_raise(ZeroDivisionError){BigDecimal("0").divmod(0)}
end
def test_divmod_error
assert_raise(TypeError) { BigDecimal(20).divmod('2') }
end
def test_add_bigdecimal
x = BigDecimal((2**100).to_s)
assert_equal(3000000000000000000000000000000, x.add(x, 1))