class NumericExtTimeAndDateTimeTest
Public Instance Methods
setup()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 9 def setup @now = Time.local(2005, 2, 10, 15, 30, 45) @dtnow = DateTime.civil(2005, 2, 10, 15, 30, 45) @seconds = { 1.minute => 60, 10.minutes => 600, 1.hour + 15.minutes => 4500, 2.days + 4.hours + 30.minutes => 189000, 5.years + 1.month + 1.fortnight => 161624106 } end
test_add_one_year_to_leap_day()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 72 def test_add_one_year_to_leap_day assert_equal Time.utc(2005, 2, 28, 15, 15, 10), Time.utc(2004, 2, 29, 15, 15, 10) + 1.year assert_equal DateTime.civil(2005, 2, 28, 15, 15, 10), DateTime.civil(2004, 2, 29, 15, 15, 10) + 1.year end
test_chaining_duration_operations()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 58 def test_chaining_duration_operations assert_equal @now.advance(days: 2).advance(months: -3), @now + 2.days - 3.months assert_equal @now.advance(days: 1).advance(months: 2), @now + 1.day + 2.months assert_equal @dtnow.advance(days: 2).advance(months: -3), @dtnow + 2.days - 3.months assert_equal @dtnow.advance(days: 1).advance(months: 2), @dtnow + 1.day + 2.months end
test_duration_addition()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 38 def test_duration_addition assert_equal @now.advance(days: 1).advance(months: 1), (1.day + 1.month).since(@now) assert_equal @now.advance(days: 7), (1.week + 5.seconds - 5.seconds).since(@now) assert_equal @now.advance(years: 2), (4.years - 2.years).since(@now) assert_equal @dtnow.advance(days: 1).advance(months: 1), (1.day + 1.month).since(@dtnow) assert_equal @dtnow.advance(days: 7), (1.week + 5.seconds - 5.seconds).since(@dtnow) assert_equal @dtnow.advance(years: 2), (4.years - 2.years).since(@dtnow) end
test_duration_after_conversion_is_no_longer_accurate()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 65 def test_duration_after_conversion_is_no_longer_accurate assert_equal (1.year / 12).to_i.seconds.since(@now), 1.month.to_i.seconds.since(@now) assert_equal 365.2425.days.to_f.seconds.since(@now), 1.year.to_f.seconds.since(@now) assert_equal (1.year / 12).to_i.seconds.since(@dtnow), 1.month.to_i.seconds.since(@dtnow) assert_equal 365.2425.days.to_f.seconds.since(@dtnow), 1.year.to_f.seconds.since(@dtnow) end
test_irregular_durations()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 27 def test_irregular_durations assert_equal @now.advance(days: 3000), 3000.days.since(@now) assert_equal @now.advance(months: 1), 1.month.since(@now) assert_equal @now.advance(months: -1), 1.month.until(@now) assert_equal @now.advance(years: 20), 20.years.since(@now) assert_equal @dtnow.advance(days: 3000), 3000.days.since(@dtnow) assert_equal @dtnow.advance(months: 1), 1.month.since(@dtnow) assert_equal @dtnow.advance(months: -1), 1.month.until(@dtnow) assert_equal @dtnow.advance(years: 20), 20.years.since(@dtnow) end
test_time_plus_duration()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 47 def test_time_plus_duration assert_equal @now + 8, @now + 8.seconds assert_equal @now + 22.9, @now + 22.9.seconds assert_equal @now.advance(days: 15), @now + 15.days assert_equal @now.advance(months: 1), @now + 1.month assert_equal @dtnow.since(8), @dtnow + 8.seconds assert_equal @dtnow.since(22.9), @dtnow + 22.9.seconds assert_equal @dtnow.advance(days: 15), @dtnow + 15.days assert_equal @dtnow.advance(months: 1), @dtnow + 1.month end
test_units()
click to toggle source
# File activesupport/test/core_ext/numeric_ext_test.rb, line 21 def test_units @seconds.each do |actual, expected| assert_equal expected, actual end end