aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/library/bigdecimal/sub_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/bigdecimal/sub_spec.rb')
-rw-r--r--spec/ruby/library/bigdecimal/sub_spec.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/spec/ruby/library/bigdecimal/sub_spec.rb b/spec/ruby/library/bigdecimal/sub_spec.rb
index 7f0305a1c6..f0068b12a9 100644
--- a/spec/ruby/library/bigdecimal/sub_spec.rb
+++ b/spec/ruby/library/bigdecimal/sub_spec.rb
@@ -13,6 +13,8 @@ describe "BigDecimal#sub" do
@one_minus = BigDecimal("-1")
@frac_1 = BigDecimal("1E-99999")
@frac_2 = BigDecimal("0.9E-99999")
+ @frac_3 = BigDecimal("12345E10")
+ @frac_4 = BigDecimal("98765E10")
end
it "returns a - b with given precision" do
@@ -32,6 +34,14 @@ describe "BigDecimal#sub" do
@frac_1.sub(@frac_1, 1000000).should == @zero
end
+ describe "with Object" do
+ it "tries to coerce the other operand to self" do
+ object = mock("Object")
+ object.should_receive(:coerce).with(@frac_3).and_return([@frac_3, @frac_4])
+ @frac_3.sub(object, 1).should == BigDecimal("-0.9E15")
+ end
+ end
+
it "returns NaN if NaN is involved" do
@one.sub(@nan, 1).nan?.should == true
@nan.sub(@one, 1).nan?.should == true