aboutsummaryrefslogtreecommitdiffstats
path: root/test/bigdecimal/test_bigdecimal.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/bigdecimal/test_bigdecimal.rb')
-rw-r--r--test/bigdecimal/test_bigdecimal.rb26
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 }