aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/library/bigdecimal/BigDecimal_spec.rb
diff options
context:
space:
mode:
authormrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-05 11:30:24 +0000
committermrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-05 11:30:24 +0000
commit2810c12a99fed7297d558d8b1aaaf755eb8b8a2d (patch)
tree03ded624e1b6eab7bcf9059c5193c25f10ee26ae /spec/ruby/library/bigdecimal/BigDecimal_spec.rb
parentae88d2fc93e887f22d025b4738ebbb00f6ae53e9 (diff)
downloadruby-2810c12a99fed7297d558d8b1aaaf755eb8b8a2d.tar.gz
Import bigdecimal 1.4.0.pre.20181205a
* https://github.com/ruby/bigdecimal/compare/74d25ef..v1.4.0.pre.20181205a git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/library/bigdecimal/BigDecimal_spec.rb')
-rw-r--r--spec/ruby/library/bigdecimal/BigDecimal_spec.rb43
1 files changed, 33 insertions, 10 deletions
diff --git a/spec/ruby/library/bigdecimal/BigDecimal_spec.rb b/spec/ruby/library/bigdecimal/BigDecimal_spec.rb
index d278512737..52f026fb2b 100644
--- a/spec/ruby/library/bigdecimal/BigDecimal_spec.rb
+++ b/spec/ruby/library/bigdecimal/BigDecimal_spec.rb
@@ -34,11 +34,22 @@ describe "Kernel#BigDecimal" do
BigDecimal(" \t\n \r-Infinity \n").infinite?.should == -1
end
- it "ignores trailing garbage" do
- BigDecimal("123E45ruby").should == BigDecimal("123E45")
- BigDecimal("123x45").should == BigDecimal("123")
- BigDecimal("123.4%E5").should == BigDecimal("123.4")
- BigDecimal("1E2E3E4E5E").should == BigDecimal("100")
+ ruby_version_is ""..."2.6" do
+ it "ignores trailing garbage" do
+ BigDecimal("123E45ruby").should == BigDecimal("123E45")
+ BigDecimal("123x45").should == BigDecimal("123")
+ BigDecimal("123.4%E5").should == BigDecimal("123.4")
+ BigDecimal("1E2E3E4E5E").should == BigDecimal("100")
+ end
+ end
+
+ ruby_version_is "2.6" do
+ it "does not ignores trailing garbage" do
+ lambda { BigDecimal("123E45ruby") }.should raise_error(ArgumentError)
+ lambda { BigDecimal("123x45") }.should raise_error(ArgumentError)
+ lambda { BigDecimal("123.4%E5") }.should raise_error(ArgumentError)
+ lambda { BigDecimal("1E2E3E4E5E") }.should raise_error(ArgumentError)
+ end
end
ruby_version_is ""..."2.4" do
@@ -59,12 +70,24 @@ describe "Kernel#BigDecimal" do
BigDecimal(".123").should == BigDecimal("0.123")
end
- it "allows for underscores in all parts" do
- reference = BigDecimal("12345.67E89")
+ ruby_version_is ""..."2.6" do
+ it "allows for underscores in all parts" do
+ reference = BigDecimal("12345.67E89")
- BigDecimal("12_345.67E89").should == reference
- BigDecimal("1_2_3_4_5_._6____7_E89").should == reference
- BigDecimal("12345_.67E_8__9_").should == reference
+ BigDecimal("12_345.67E89").should == reference
+ BigDecimal("1_2_3_4_5_._6____7_E89").should == reference
+ BigDecimal("12345_.67E_8__9_").should == reference
+ end
+ end
+
+ ruby_version_is "2.6" do
+ it "process underscores as Float()" do
+ reference = BigDecimal("12345.67E89")
+
+ BigDecimal("12_345.67E89").should == reference
+ lambda { BigDecimal("1_2_3_4_5_._6____7_E89") }.should raise_error(ArgumentError)
+ lambda { BigDecimal("12345_.67E_8__9_") }.should raise_error(ArgumentError)
+ end
end
it "accepts NaN and [+-]Infinity" do