#[cfg(test)]
mod tests {
use dtt::datetime::DateTime;
use std::str::FromStr;
use time::Month;
#[test]
fn example_1() {
use dtt::dtt_print;
let now = DateTime::new();
dtt_print!(now);
}
#[test]
fn example_2() {
assert!(DateTime::is_valid_microsecond("999999"));
assert!(!DateTime::is_valid_microsecond("1000000"));
assert!(DateTime::is_valid_second("59"));
assert!(!DateTime::is_valid_second("60"));
assert!(DateTime::is_valid_minute("59"));
assert!(!DateTime::is_valid_minute("60"));
assert!(DateTime::is_valid_hour("23"));
assert!(!DateTime::is_valid_hour("24"));
assert!(DateTime::is_valid_month("12"));
assert!(!DateTime::is_valid_month("13"));
assert!(DateTime::is_valid_ordinal("366"));
assert!(!DateTime::is_valid_ordinal("367"));
assert!(DateTime::is_valid_time("23:59:59"));
assert!(!DateTime::is_valid_time("24:00:00"));
assert!(DateTime::is_valid_iso_8601("2023-05-11T17:30:00Z"));
assert!(DateTime::is_valid_iso_8601("2023-05-11T17:30:00Z"));
}
#[test]
fn example_3() -> Result<(), Box<dyn std::error::Error>> {
let date_str = "2022-01-01T12:00:00+01:00";
let result: DateTime = DateTime::from_str(date_str)?;
assert_eq!(result.year(), 2022);
assert_eq!(result.month(), Month::January);
assert_eq!(result.day(), 1);
assert_eq!(result.hour(), 12);
assert_eq!(result.minute(), 0);
assert_eq!(result.second(), 0);
assert_eq!(result.iso_week(), 52);
assert_eq!(result.ordinal(), 1);
assert_eq!(result.microsecond(), 0);
Ok(())
}
}