diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-19 13:34:51 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-19 13:34:51 +0000 |
commit | 2f491ea20267b93ec6b491c26001d9f8e5bf7008 (patch) | |
tree | bf717df3548e24fb0cbf5ab5a96b925f1920c2dc | |
parent | 33f7764bbfcad692bbfb9ca0edf4594f58a9be5a (diff) |
merges r23075 from trunk into ruby_1_9_1.
--
* time.c (time_cmp): negate the result of reverse comparison.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | test/ruby/test_time.rb | 10 | ||||
-rw-r--r-- | time.c | 2 |
3 files changed, 15 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Fri Mar 27 01:33:37 2009 Tanaka Akira <akr@fsij.org> + + * time.c (time_cmp): negate the result of reverse comparison. + Fri Mar 27 01:19:50 2009 Tanaka Akira <akr@fsij.org> * bignum.c (rb_cmpint): FIX2INT may fail on LP64 platforms. diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index b56fae0839..c159ce724c 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -1,6 +1,7 @@ require 'test/unit' require 'rational' require 'timeout' +require 'delegate' class TestTime < Test::Unit::TestCase def setup @@ -470,4 +471,13 @@ class TestTime < Test::Unit::TestCase assert_equal("JAN", T2000.strftime("%#h")) assert_equal("FRIDAY", Time.local(2008,1,4).strftime("%#A")) end + + def test_delegate + d1 = SimpleDelegator.new(t1 = Time.utc(2000)) + d2 = SimpleDelegator.new(t2 = Time.utc(2001)) + assert_equal(-1, t1 <=> t2) + assert_equal(1, t2 <=> t1) + assert_equal(-1, d1 <=> d2) + assert_equal(1, d2 <=> d1) + end end @@ -1109,7 +1109,7 @@ time_cmp(VALUE time1, VALUE time2) cmp = rb_funcall(time2, rb_intern("<=>"), 1, time1); if (NIL_P(cmp)) return Qnil; - n = rb_cmpint(cmp, time1, time2); + n = -rb_cmpint(cmp, time1, time2); if (n == 0) return INT2FIX(0); if (n > 0) return INT2FIX(1); return INT2FIX(-1); |