summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-26 15:40:23 +0000
committermrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-26 15:40:23 +0000
commita238140726b6ce044e89b80b465a9ce0deda8757 (patch)
tree19e355148157e4916cd989199378fdfa2949bcaa /test
parent710dc1afc0ffe7ec031a54e6794af142a35b773c (diff)
* bigdecimal/bigdecimal.c (VpDup) a new function for duplicating
a BigDecimal. * bigdecimal/bigdecimal.c (BigDecimal_new): support generating a new BigDecimal from another BigDecimal using BigDecimal global function or constructor. [ruby-dev:44245] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-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 }