[前][次][番号順一覧][スレッド一覧]

ruby-changes:53909

From: mrkn <ko1@a...>
Date: Sun, 2 Dec 2018 15:43:20 +0900 (JST)
Subject: [ruby-changes:53909] mrkn:r66129 (trunk): Fix rubyspec of bigdecimal for ruby <2.6

mrkn	2018-12-02 15:43:15 +0900 (Sun, 02 Dec 2018)

  New Revision: 66129

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66129

  Log:
    Fix rubyspec of bigdecimal for ruby <2.6

  Modified files:
    trunk/spec/ruby/library/bigdecimal/BigDecimal_spec.rb
Index: spec/ruby/library/bigdecimal/BigDecimal_spec.rb
===================================================================
--- spec/ruby/library/bigdecimal/BigDecimal_spec.rb	(revision 66128)
+++ spec/ruby/library/bigdecimal/BigDecimal_spec.rb	(revision 66129)
@@ -34,11 +34,22 @@ describe "Kernel#BigDecimal" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/library/bigdecimal/BigDecimal_spec.rb#L34
     BigDecimal("  \t\n \r-Infinity   \n").infinite?.should == -1
   end
 
-  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)
+  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 https://github.com/ruby/ruby/blob/trunk/spec/ruby/library/bigdecimal/BigDecimal_spec.rb#L70
     BigDecimal(".123").should == BigDecimal("0.123")
   end
 
-  it "process underscores as Float()" 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
+    end
+  end
 
-    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)
+  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

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]