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

ruby-changes:12421

From: yugui <ko1@a...>
Date: Wed, 15 Jul 2009 20:58:27 +0900 (JST)
Subject: [ruby-changes:12421] Ruby:r24121 (ruby_1_9_1): merges r24091 from trunk into ruby_1_9_1.

yugui	2009-07-15 20:58:10 +0900 (Wed, 15 Jul 2009)

  New Revision: 24121

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

  Log:
    merges r24091 from trunk into ruby_1_9_1.
    --
    * lib/prime.rb (Prime#prime_division): now decomposes
      negative integer into a decomposition with element [-1, 1].
    
    * test/test_prime.rb: test for it.

  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/lib/prime.rb
    branches/ruby_1_9_1/test/test_prime.rb
    branches/ruby_1_9_1/version.h

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 24120)
+++ ruby_1_9_1/ChangeLog	(revision 24121)
@@ -1,3 +1,10 @@
+Mon Jul 13 22:49:50 2009  Yuki Sonoda (Yugui)  <yugui@y...>
+
+	* lib/prime.rb (Prime#prime_division): now decomposes
+	  negative integer into a decomposition with element [-1, 1].
+
+	* test/test_prime.rb: test for it.
+
 Mon Jul 13 22:28:03 2009  NAKAMURA Usaku  <usa@r...>
 
 	* io.c (pipe_open): handles leaked on win32 when an error occurs.
Index: ruby_1_9_1/lib/prime.rb
===================================================================
--- ruby_1_9_1/lib/prime.rb	(revision 24120)
+++ ruby_1_9_1/lib/prime.rb	(revision 24121)
@@ -194,7 +194,12 @@
   #
   def prime_division(value, generator= Prime::Generator23.new)
     raise ZeroDivisionError if value == 0
-    pv = []
+    if value < 0
+      value = -value
+      pv = [[-1, 1]]
+    else
+      pv = []
+    end
     for prime in generator
       count = 0
       while (value1, mod = value.divmod(prime)
Index: ruby_1_9_1/version.h
===================================================================
--- ruby_1_9_1/version.h	(revision 24120)
+++ ruby_1_9_1/version.h	(revision 24121)
@@ -4,7 +4,7 @@
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 9
 #define RUBY_VERSION_TEENY 1
-#define RUBY_PATCHLEVEL 234
+#define RUBY_PATCHLEVEL 235
 #define RUBY_RELEASE_YEAR 2009
 #define RUBY_RELEASE_MONTH 7
 #define RUBY_RELEASE_DAY 12
Index: ruby_1_9_1/test/test_prime.rb
===================================================================
--- ruby_1_9_1/test/test_prime.rb	(revision 24120)
+++ ruby_1_9_1/test/test_prime.rb	(revision 24121)
@@ -98,10 +98,15 @@
     def test_prime_division
       pd = PRIMES.inject(&:*).prime_division
       assert_equal PRIMES.map{|p| [p, 1]}, pd
+
+      pd = (-PRIMES.inject(&:*)).prime_division
+      assert_equal [-1, *PRIMES].map{|p| [p, 1]}, pd
     end
 
     def test_from_prime_division
       assert_equal PRIMES.inject(&:*), Integer.from_prime_division(PRIMES.map{|p| [p,1]})
+
+      assert_equal -PRIMES.inject(&:*), Integer.from_prime_division([[-1, 1]] + PRIMES.map{|p| [p,1]})
     end
 
     def test_prime?

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

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