diff options
Diffstat (limited to 'test/bigdecimal/test_bigdecimal.rb')
-rw-r--r-- | test/bigdecimal/test_bigdecimal.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/bigdecimal/test_bigdecimal.rb b/test/bigdecimal/test_bigdecimal.rb index 96211a09c7..e34cbc59c5 100644 --- a/test/bigdecimal/test_bigdecimal.rb +++ b/test/bigdecimal/test_bigdecimal.rb @@ -74,6 +74,19 @@ class TestBigDecimal < Test::Unit::TestCase assert_nothing_raised { BigDecimal(0.1, Float::DIG + 1) } end + def test_global_new_with_big_decimal + assert_equal(BigDecimal(1), BigDecimal(BigDecimal(1))) + assert_equal(BigDecimal('+0'), BigDecimal(BigDecimal('+0'))) + assert_equal(BigDecimal('-0'), BigDecimal(BigDecimal('-0'))) + BigDecimal.save_exception_mode do + BigDecimal.mode(BigDecimal::EXCEPTION_OVERFLOW, false) + BigDecimal.mode(BigDecimal::EXCEPTION_NaN, false) + assert_positive_infinite(BigDecimal(BigDecimal('Infinity'))) + assert_negative_infinite(BigDecimal(BigDecimal('-Infinity'))) + assert_nan(BigDecimal(BigDecimal('NaN'))) + end + end + def test_new assert_equal(1, BigDecimal.new("1")) assert_equal(1, BigDecimal.new("1", 1)) @@ -111,6 +124,19 @@ class TestBigDecimal < Test::Unit::TestCase assert_nothing_raised { BigDecimal.new(0.1, Float::DIG + 1) } end + def test_new_with_big_decimal + assert_equal(BigDecimal(1), BigDecimal.new(BigDecimal(1))) + assert_equal(BigDecimal('+0'), BigDecimal.new(BigDecimal('+0'))) + assert_equal(BigDecimal('-0'), BigDecimal.new(BigDecimal('-0'))) + BigDecimal.save_exception_mode do + BigDecimal.mode(BigDecimal::EXCEPTION_OVERFLOW, false) + BigDecimal.mode(BigDecimal::EXCEPTION_NaN, false) + assert_positive_infinite(BigDecimal.new(BigDecimal('Infinity'))) + assert_negative_infinite(BigDecimal.new(BigDecimal('-Infinity'))) + assert_nan(BigDecimal(BigDecimal.new('NaN'))) + end + end + def _test_mode(type) BigDecimal.mode(type, true) assert_raise(FloatDomainError) { yield } |