Change Time#sec_fraction to use subsec
Time instances can have fractional parts smaller than a nanosecond.
This commit is contained in:
parent
dbc7a7cb50
commit
88d844b278
@ -75,9 +75,9 @@ def seconds_until_end_of_day
|
||||
|
||||
# Returns the fraction of a second as a +Rational+
|
||||
#
|
||||
# Time.new(2012, 8, 29, 0, 0, 0.5).sec_fraction # => (1/2)
|
||||
# Time.new(2012, 8, 29, 0, 0, 0.5).sec_fraction # => (1/2)
|
||||
def sec_fraction
|
||||
Rational(nsec, 1000000000)
|
||||
subsec
|
||||
end
|
||||
|
||||
# Returns a new Time where one or more of the elements have been changed according
|
||||
|
@ -107,6 +107,20 @@ def test_seconds_until_end_of_day_at_daylight_savings_time_end
|
||||
end
|
||||
end
|
||||
|
||||
def test_sec_fraction
|
||||
time = Time.utc(2016, 4, 23, 0, 0, Rational(1,10000000000))
|
||||
assert_equal Rational(1,10000000000), time.sec_fraction
|
||||
|
||||
time = Time.utc(2016, 4, 23, 0, 0, 0.0000000001)
|
||||
assert_equal 0.0000000001.to_r, time.sec_fraction
|
||||
|
||||
time = Time.utc(2016, 4, 23, 0, 0, 0, Rational(1,10000))
|
||||
assert_equal Rational(1,10000000000), time.sec_fraction
|
||||
|
||||
time = Time.utc(2016, 4, 23, 0, 0, 0, 0.0001)
|
||||
assert_equal 0.0001.to_r / 1000000, time.sec_fraction
|
||||
end
|
||||
|
||||
def test_beginning_of_day
|
||||
assert_equal Time.local(2005,2,4,0,0,0), Time.local(2005,2,4,10,10,10).beginning_of_day
|
||||
with_env_tz 'US/Eastern' do
|
||||
|
Loading…
Reference in New Issue
Block a user