use hijri_date::{Duration, HijriDate};
#[test]
fn dates() {
let hd_g = HijriDate::from_gr(2000, 07, 31).unwrap();
let date = format!("{}-{}-{}", hd_g.year(), hd_g.month(), hd_g.day());
assert_eq!("1421-4-29", date);
let hd = HijriDate::from_hijri(1400, 11, 19).unwrap();
let date = format!("{}-{}-{}", hd.year_gr(), hd.month_gr(), hd.day_gr());
assert_eq!("1980-9-28", date);
}
#[test]
fn max_min() {
let _hd_g = HijriDate::from_gr(1938, 01, 01).unwrap();
let _hd = HijriDate::from_hijri(1357, 1, 1).unwrap();
let _hd_g = HijriDate::from_gr(2076, 12, 31).unwrap();
let _hd = HijriDate::from_hijri(1499, 12, 30).unwrap();
}
#[test]
fn cmp() {
let hd_1 = HijriDate::from_hijri(1400, 12, 30).unwrap();
let hd_2 = HijriDate::from_hijri(1357, 1, 1).unwrap();
assert!(hd_1 > hd_2);
let hd_1 = HijriDate::from_hijri(1420, 06, 15).unwrap();
let hd_2 = HijriDate::from_hijri(1410, 12, 01).unwrap();
assert!(hd_1 > hd_2);
}
#[test]
fn add_sub() {
let hd_1 = HijriDate::from_hijri(1420, 06, 15).unwrap();
let hd_2 = HijriDate::from_hijri(1420, 05, 29).unwrap();
assert_eq!(hd_1 - Duration::days(16), hd_2);
let hd_1 = HijriDate::from_gr(2015, 06, 8).unwrap();
let hd_2 = HijriDate::from_gr(2015, 06, 20).unwrap();
assert_eq!(hd_1 + Duration::days(12), hd_2);
}
#[test]
fn sub_day() {
let hd_1 = HijriDate::from_hijri(1357, 06, 15).unwrap();
let hd_2 = HijriDate::from_hijri(1357, 06, 7).unwrap();
assert_eq!(hd_1 - hd_2, Duration::days(8));
}
#[test]
fn fmt() {
let hd_2 = HijriDate::from_hijri(1357, 06, 7).unwrap();
assert_eq!("1357-6-7", hd_2.format("%Y-%m-%d"));
}
#[test]
#[should_panic]
fn invalid() {
let _hd_g = HijriDate::from_gr(1935, 11, 16).unwrap();
}