summaryrefslogtreecommitdiff
path: root/spec/ruby/library/bigdecimal/shared/to_int.rb
diff options
Diffstat (limited to 'spec/ruby/library/bigdecimal/shared/to_int.rb')
-rw-r--r--spec/ruby/library/bigdecimal/shared/to_int.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/ruby/library/bigdecimal/shared/to_int.rb b/spec/ruby/library/bigdecimal/shared/to_int.rb
new file mode 100644
index 0000000000..729a25f511
--- /dev/null
+++ b/spec/ruby/library/bigdecimal/shared/to_int.rb
@@ -0,0 +1,16 @@
+require 'bigdecimal'
+
+describe :bigdecimal_to_int , shared: true do
+ it "raises FloatDomainError if BigDecimal is infinity or NaN" do
+ lambda { BigDecimal("Infinity").send(@method) }.should raise_error(FloatDomainError)
+ lambda { BigDecimal("NaN").send(@method) }.should raise_error(FloatDomainError)
+ end
+
+ it "returns Integer or Bignum otherwise" do
+ BigDecimal("3E-20001").send(@method).should == 0
+ BigDecimal("2E4000").send(@method).should == 2 * 10 ** 4000
+ BigDecimal("2").send(@method).should == 2
+ BigDecimal("2E10").send(@method).should == 20000000000
+ BigDecimal("3.14159").send(@method).should == 3
+ end
+end