## # Time ISO Test assert('Time.new', '15.2.3.3.3') do Time.new.class == Time end assert('Time', '15.2.19') do Time.class == Class end assert('Time.at', '15.2.19.6.1') do Time.at(1300000000.0) end assert('Time.gm', '15.2.19.6.2') do Time.gm(2012, 12, 23) end assert('Time.local', '15.2.19.6.3') do Time.local(2012, 12, 23) end assert('Time.mktime', '15.2.19.6.4') do Time.mktime(2012, 12, 23) end assert('Time.now', '15.2.19.6.5') do Time.now.class == Time end assert('Time.utc', '15.2.19.6.6') do Time.utc(2012, 12, 23) end assert('Time#+', '15.2.19.7.1') do t1 = Time.at(1300000000.0) t2 = t1.+(60) t2.utc.asctime == "Sun Mar 13 07:07:40 UTC 2011" end assert('Time#-', '15.2.19.7.2') do t1 = Time.at(1300000000.0) t2 = t1.-(60) t2.utc.asctime == "Sun Mar 13 07:05:40 UTC 2011" end assert('Time#<=>', '15.2.19.7.3') do t1 = Time.at(1300000000.0) t2 = Time.at(1400000000.0) t3 = Time.at(1500000000.0) t2.<=>(t1) == 1 and t2.<=>(t2) == 0 and t2.<=>(t3) == -1 and t2.<=>(nil) == nil end assert('Time#asctime', '15.2.19.7.4') do Time.at(1300000000.0).utc.asctime == "Sun Mar 13 07:06:40 UTC 2011" end assert('Time#ctime', '15.2.19.7.5') do Time.at(1300000000.0).utc.ctime == "Sun Mar 13 07:06:40 UTC 2011" end assert('Time#day', '15.2.19.7.6') do Time.gm(2012, 12, 23).day == 23 end assert('Time#dst?', '15.2.19.7.7') do not Time.gm(2012, 12, 23).utc.dst? end assert('Time#getgm', '15.2.19.7.8') do Time.at(1300000000.0).getgm.asctime == "Sun Mar 13 07:06:40 UTC 2011" end assert('Time#getlocal', '15.2.19.7.9') do t1 = Time.at(1300000000.0) t2 = Time.at(1300000000.0) t3 = t1.getlocal t1 == t3 and t3 == t2.getlocal end assert('Time#getutc', '15.2.19.7.10') do Time.at(1300000000.0).getutc.asctime == "Sun Mar 13 07:06:40 UTC 2011" end assert('Time#gmt?', '15.2.19.7.11') do Time.at(1300000000.0).utc.gmt? end # ATM not implemented # assert('Time#gmt_offset', '15.2.19.7.12') do assert('Time#gmtime', '15.2.19.7.13') do Time.at(1300000000.0).gmtime end # ATM not implemented # assert('Time#gmtoff', '15.2.19.7.14') do assert('Time#hour', '15.2.19.7.15') do Time.gm(2012, 12, 23, 7, 6).hour == 7 end # ATM doesn't really work # assert('Time#initialize', '15.2.19.7.16') do assert('Time#initialize_copy', '15.2.19.7.17') do time_tmp_2 = Time.at(7.0e6) time_tmp_2.clone == time_tmp_2 end assert('Time#localtime', '15.2.19.7.18') do t1 = Time.at(1300000000.0) t2 = Time.at(1300000000.0) t1.localtime t1 == t2.getlocal end assert('Time#mday', '15.2.19.7.19') do Time.gm(2012, 12, 23).mday == 23 end assert('Time#min', '15.2.19.7.20') do Time.gm(2012, 12, 23, 7, 6).min == 6 end assert('Time#mon', '15.2.19.7.21') do Time.gm(2012, 12, 23).mon == 12 end assert('Time#month', '15.2.19.7.22') do Time.gm(2012, 12, 23).month == 12 end assert('Times#sec', '15.2.19.7.23') do Time.gm(2012, 12, 23, 7, 6, 40).sec == 40 end assert('Time#to_f', '15.2.19.7.24') do Time.at(1300000000.0).to_f == 1300000000.0 end assert('Time#to_i', '15.2.19.7.25') do Time.at(1300000000.0).to_i == 1300000000 end assert('Time#usec', '15.2.19.7.26') do Time.at(1300000000.0).usec == 0 end assert('Time#utc', '15.2.19.7.27') do Time.at(1300000000.0).utc end assert('Time#utc?', '15.2.19.7.28') do Time.at(1300000000.0).utc.utc? end # ATM not implemented # assert('Time#utc_offset', '15.2.19.7.29') do assert('Time#wday', '15.2.19.7.30') do Time.gm(2012, 12, 23).wday == 0 end assert('Time#yday', '15.2.19.7.31') do Time.gm(2012, 12, 23).yday == 358 end assert('Time#year', '15.2.19.7.32') do Time.gm(2012, 12, 23).year == 2012 end assert('Time#zone', '15.2.19.7.33') do Time.at(1300000000.0).utc.zone == 'UTC' end # Not ISO specified assert('Time#to_s') do Time.at(1300000000.0).utc.to_s == "Sun Mar 13 07:06:40 UTC 2011" end assert('Time#inspect') do Time.at(1300000000.0).utc.inspect == "Sun Mar 13 07:06:40 UTC 2011" end assert('day of week methods') do t = Time.gm(2012, 12, 24) assert_false t.sunday? assert_true t.monday? assert_false t.tuesday? assert_false t.wednesday? assert_false t.thursday? assert_false t.friday? assert_false t.saturday? end assert('2000 times 500us make a second') do t = Time.utc 2015 2000.times do t += 0.0005 end t.usec == 0 end