use relmath::temporal::Interval;
fn main() {
let draft_review = Interval::new(9, 12).expect("expected valid interval");
let approval = Interval::new(12, 15).expect("expected valid interval");
let audit = Interval::new(11, 13).expect("expected valid interval");
let full_shift = draft_review
.coalesce(&approval)
.expect("adjacent intervals should coalesce");
let audit_window = full_shift
.restrict_to(&audit)
.expect("expected non-empty overlap");
assert!(draft_review.contains(&9));
assert!(!draft_review.contains(&12));
assert!(!draft_review.overlaps(&approval));
assert!(draft_review.is_adjacent_to(&approval));
assert_eq!(
audit_window,
Interval::new(11, 13).expect("expected valid interval")
);
println!(
"full shift: {:?}, audit overlap: {:?}",
full_shift, audit_window
);
}