2017-05-07 12:04:49 +00:00
|
|
|
require 'bigdecimal'
|
|
|
|
|
|
|
|
describe :bigdecimal_to_int , shared: true do
|
|
|
|
it "raises FloatDomainError if BigDecimal is infinity or NaN" do
|
2019-07-27 12:40:09 +02:00
|
|
|
-> { BigDecimal("Infinity").send(@method) }.should raise_error(FloatDomainError)
|
|
|
|
-> { BigDecimal("NaN").send(@method) }.should raise_error(FloatDomainError)
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
|
2020-12-27 17:35:32 +01:00
|
|
|
it "returns Integer otherwise" do
|
2017-05-07 12:04:49 +00:00
|
|
|
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
|