Skip to content

Commit 3756660

Browse files
committed
make test_time and test_date generic
1 parent 98d04ac commit 3756660

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

datetime.rs

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ impl DateStr for DateTime {
288288
*/
289289
#[cfg(test)]
290290
mod tests {
291-
use std::os;
291+
use std::{os, fmt};
292292
use extra::time::{Timespec, strptime};
293293
use extra::test;
294294

@@ -310,52 +310,50 @@ mod tests {
310310

311311
}
312312

313-
fn test_time(i: i64) {
314-
let atime = @i as @::Time;
315-
error!("{}, {}", i, time_str(i));
316-
let tm = (atime).tm();
317-
let i2: i64 = ::Time::from_tm(&tm);
313+
fn test_time<T: Eq + fmt::Default + Clone + ::Time>(i: T) {
314+
error!("{}, {}", i, time_str(i.clone()));
315+
let tm = i.tm();
316+
let i2: T = ::Time::from_tm(&tm);
318317
if i2 != i {
319318
fail!(format!("test_time failed for: {}, {}, {:?}", i, i2, tm))
320319
}
321-
let ts = (@i as @::Time).timespec();
322-
let i2: i64 = ::Time::from_timespec(ts);
320+
let ts = i.timespec();
321+
let i2: T = ::Time::from_timespec(ts);
323322
if i2 != i {
324323
fail!(format!("test_time failed for: {}, {}, {:?}", i, i2, ts))
325324
}
326325
}
327326

328327
#[test]
329328
fn test_some_times() {
330-
test_time(0);
331-
test_time(1);
332-
test_time(-1);
333-
test_time(86399999999998);
334-
test_time(86399999999999);
335-
test_time(-86399999999999);
336-
}
337-
338-
fn test_date(i: i32) {
339-
let adate = @i as @::Date;
340-
error!("{} {}", i, date_str(i));
341-
let tm = (adate).tm();
342-
let i2: i32 = ::Date::from_tm(&tm);
329+
test_time(0_i64);
330+
test_time(1_i64);
331+
test_time(-1_i64);
332+
test_time(86399999999998_i64);
333+
test_time(86399999999999_i64);
334+
test_time(-86399999999999_i64);
335+
}
336+
337+
fn test_date<T: Eq + fmt::Default + Clone + ::Date>(i: T) {
338+
error!("{} {}", i, date_str(i.clone()));
339+
let tm = i.tm();
340+
let i2: T = ::Date::from_tm(&tm);
343341
if i2 != i {
344342
fail!(format!("test_date failed for: {}, {}, {:?}", i, i2, tm))
345343
}
346-
let ts = (@i as @::Date).timespec();
347-
let i2: i32 = ::Date::from_timespec(ts);
344+
let ts = i.timespec();
345+
let i2: T = ::Date::from_timespec(ts);
348346
if i2 != i {
349347
fail!(format!("test_date failed for: {}, {}, {:?}", i, i2, ts))
350348
}
351349
}
352350

353351
#[test]
354352
fn test_some_dates() {
355-
test_date(0);
356-
test_date(1);
357-
test_date(2147483646);
358-
test_date(2147483647);
353+
test_date(0_i32);
354+
test_date(1_i32);
355+
test_date(2147483646_i32);
356+
test_date(2147483647_i32);
359357
}
360358

361359
fn timespec_from_str(ds: &str) -> Result<Timespec, ~str> {

0 commit comments

Comments
 (0)