aboutsummaryrefslogtreecommitdiffstats
path: root/test/bigdecimal
diff options
context:
space:
mode:
Diffstat (limited to 'test/bigdecimal')
-rw-r--r--test/bigdecimal/test_bigdecimal.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/bigdecimal/test_bigdecimal.rb b/test/bigdecimal/test_bigdecimal.rb
index 51d2e8f309..07c79a8874 100644
--- a/test/bigdecimal/test_bigdecimal.rb
+++ b/test/bigdecimal/test_bigdecimal.rb
@@ -652,6 +652,14 @@ class TestBigDecimal < Test::Unit::TestCase
assert_equal(BigDecimal.new((2**100-1).to_s), x - 1)
end
+ def test_sub_with_float
+ assert_kind_of(BigDecimal, BigDecimal.new("3") - 1.0)
+ end
+
+ def test_sub_with_rational
+ assert_kind_of(BigDecimal, BigDecimal.new("3") - 1.quo(3))
+ end
+
def test_mult
x = BigDecimal.new((2**100).to_s)
assert_equal(BigDecimal.new((2**100 * 3).to_s), (x * 3).to_i)
@@ -660,6 +668,14 @@ class TestBigDecimal < Test::Unit::TestCase
assert_equal(BigDecimal.new((2**200).to_s), (x * x).to_i)
end
+ def test_mult_with_float
+ assert_kind_of(BigDecimal, BigDecimal.new("3") * 1.5)
+ end
+
+ def test_mult_with_rational
+ assert_kind_of(BigDecimal, BigDecimal.new("3") * 1.quo(3))
+ end
+
def test_div
x = BigDecimal.new((2**100).to_s)
assert_equal(BigDecimal.new((2**100 / 3).to_s), (x / 3).to_i)
@@ -669,6 +685,14 @@ class TestBigDecimal < Test::Unit::TestCase
assert_equal(-2, BigDecimal.new("2") / -1)
end
+ def test_div_with_float
+ assert_kind_of(BigDecimal, BigDecimal.new("3") / 1.5)
+ end
+
+ def test_div_with_rational
+ assert_kind_of(BigDecimal, BigDecimal.new("3") / 1.quo(3))
+ end
+
def test_mod
x = BigDecimal.new((2**100).to_s)
assert_equal(1, x % 3)
@@ -677,6 +701,14 @@ class TestBigDecimal < Test::Unit::TestCase
assert_equal(-1, (-x) % -3)
end
+ def test_mod_with_float
+ assert_kind_of(BigDecimal, BigDecimal.new("3") % 1.5)
+ end
+
+ def test_mod_with_rational
+ assert_kind_of(BigDecimal, BigDecimal.new("3") % 1.quo(3))
+ end
+
def test_remainder
x = BigDecimal.new((2**100).to_s)
assert_equal(1, x.remainder(3))
@@ -685,6 +717,14 @@ class TestBigDecimal < Test::Unit::TestCase
assert_equal(-1, (-x).remainder(-3))
end
+ def test_remainder_with_float
+ assert_kind_of(BigDecimal, BigDecimal.new("3").remainder(1.5))
+ end
+
+ def test_remainder_with_rational
+ assert_kind_of(BigDecimal, BigDecimal.new("3").remainder(1.quo(3)))
+ end
+
def test_divmod
x = BigDecimal.new((2**100).to_s)
assert_equal([(x / 3).floor, 1], x.divmod(3))