[#35027] [Ruby 1.9-Bug#4352][Open] [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s) — "James M. Lawrence" <redmine@...>

Bug #4352: [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s)

16 messages 2011/02/01

[#35114] [Ruby 1.9-Bug#4373][Open] http.rb:677: [BUG] Segmentation fault — Christian Fazzini <redmine@...>

Bug #4373: http.rb:677: [BUG] Segmentation fault

59 messages 2011/02/06

[#35171] [Ruby 1.9-Bug#4386][Open] encoding: directive does not affect regex expressions — mathew murphy <redmine@...>

Bug #4386: encoding: directive does not affect regex expressions

9 messages 2011/02/09

[#35237] [Ruby 1.9-Bug#4400][Open] nested at_exit hooks run in strange order — Suraj Kurapati <redmine@...>

Bug #4400: nested at_exit hooks run in strange order

12 messages 2011/02/15

[ruby-core:35214] [Ruby 1.9-Feature#4391][Open] date/delta tests

From: Sebastian Krause <redmine@...>
Date: 2011-02-12 15:43:46 UTC
List: ruby-core #35214
Feature #4391: date/delta tests
http://redmine.ruby-lang.org/issues/show/4391

Author: Sebastian Krause
Status: Open, Priority: Normal
Category: lib, Target version: 1.9.x

Attached are a few tests for the Date::Delta class. I hope they are of some use.
And some points which might be considered bugs.
(Everything for 1.9.2 patchlevel 174, probably applies to older versions too)


i) Interplay with the Time class
So the following doesn't look right:
irb(main):005:0> t1 = Time.new(2011)
=> 2011-01-01 00:00:00 +0100
irb(main):006:0> t2 = Date::Delta.days(1)
=> #<Date::Delta: +(1d 00:00'00"000)+(0y 0m) (1/1+0i)>
irb(main):007:0> t1 + t2
=> 2011-01-01 00:00:01 +0100

ii) Difference of Dates is number
This leads to the following strange behavior:
irb(main):016:0> t1 = Date.new(2011,2)
=> #<Date: 2011-02-01 (4911187/2,0,2299161)>
irb(main):017:0> t1 - t1 + Date::Delta.months(1)
=> ((0/1)+(1/1)*i)

Wouldn't it be better, if date arithmetic stayed in the classes Date and Date::Delta when
date/delta is loaded?

iii) multiplication with scalars
I don't know what the coercion principles exactly are. So this might be okay.

irb(main):003:0> 2 * Date::Delta.days(2)
=> ((4/1)+(0/1)*i)
irb(main):004:0> Date::Delta.days(2) * 2
=> #<Date::Delta: +(4d 00:00'00"000)+(0y 0m) (4/1+0i)>



Can I add some documentation? Is there a standard way to do it or should I just go ahead and copy the style from other parts.


----------------------------------------
http://redmine.ruby-lang.org

Attachments (1)

test_date_delta.rb (5.67 KB, application/x-ruby)

In This Thread

Prev Next