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

ruby-changes:19758

From: yugui <ko1@a...>
Date: Mon, 30 May 2011 07:54:25 +0900 (JST)
Subject: [ruby-changes:19758] yugui:r31803 (ruby_1_9_2): merges r31286 from trunk into ruby_1_9_2.

yugui	2011-05-30 07:50:11 +0900 (Mon, 30 May 2011)

  New Revision: 31803

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31803

  Log:
    merges r31286 from trunk into ruby_1_9_2.
    --
    * numeric.c (ruby_float_step): wrong loop condition.
      fixes [ruby-core:35753], reported by Joey Zhou.
    
    * test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):
      test above change.

  Modified files:
    branches/ruby_1_9_2/ChangeLog
    branches/ruby_1_9_2/numeric.c
    branches/ruby_1_9_2/test/ruby/test_range.rb
    branches/ruby_1_9_2/version.h

Index: ruby_1_9_2/ChangeLog
===================================================================
--- ruby_1_9_2/ChangeLog	(revision 31802)
+++ ruby_1_9_2/ChangeLog	(revision 31803)
@@ -1,3 +1,11 @@
+Thu Apr 14 23:43:43 2011  NAKAMURA Usaku  <usa@r...>
+
+	* numeric.c (ruby_float_step): wrong loop condition.
+	  fixes [ruby-core:35753], reported by Joey Zhou.
+
+	* test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):
+	  test above change.
+
 Thu Apr 14 21:21:06 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* include/ruby/win32.h (frexp, modf): wrongly declared as pure in
Index: ruby_1_9_2/numeric.c
===================================================================
--- ruby_1_9_2/numeric.c	(revision 31802)
+++ ruby_1_9_2/numeric.c	(revision 31803)
@@ -1592,7 +1592,7 @@
 	else {
 	    if (err>0.5) err=0.5;
 	    n = floor(n + err);
-	    if (!excl) n++;
+	    if (!excl || ((long)n)*unit+beg < end) n++;
 	    for (i=0; i<n; i++) {
 		rb_yield(DBL2NUM(i*unit+beg));
 	    }
Index: ruby_1_9_2/version.h
===================================================================
--- ruby_1_9_2/version.h	(revision 31802)
+++ ruby_1_9_2/version.h	(revision 31803)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.2"
-#define RUBY_PATCHLEVEL 230
+#define RUBY_PATCHLEVEL 231
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 9
 #define RUBY_VERSION_TEENY 1
Index: ruby_1_9_2/test/ruby/test_range.rb
===================================================================
--- ruby_1_9_2/test/ruby/test_range.rb	(revision 31802)
+++ ruby_1_9_2/test/ruby/test_range.rb	(revision 31803)
@@ -182,6 +182,15 @@
     assert_nothing_raised("[ruby-dev:34558]") { (0..2).step(o) {|x| } }
   end
 
+  def test_step_ruby_core_35753
+    assert_equal(6, (1...6.3).step.to_a.size)
+    assert_equal(5, (1.1...6).step.to_a.size)
+    assert_equal(5, (1...6).step(1.1).to_a.size)
+    assert_equal(3, (1.0...6.3).step(1.8).to_a.size)
+    assert_equal(3, (1.0...6.4).step(1.8).to_a.size)
+    assert_equal(4, (1.0...6.5).step(1.8).to_a.size)
+  end
+
   def test_each
     a = []
     (0..10).each {|x| a << x }

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

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