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/