1use relmath::temporal::Interval;
4
5fn main() {
6 let draft_review = Interval::new(9, 12).expect("expected valid interval");
7 let approval = Interval::new(12, 15).expect("expected valid interval");
8 let audit = Interval::new(11, 13).expect("expected valid interval");
9
10 let full_shift = draft_review
11 .coalesce(&approval)
12 .expect("adjacent intervals should coalesce");
13 let audit_window = full_shift
14 .restrict_to(&audit)
15 .expect("expected non-empty overlap");
16
17 assert!(draft_review.contains(&9));
18 assert!(!draft_review.contains(&12));
19 assert!(!draft_review.overlaps(&approval));
20 assert!(draft_review.is_adjacent_to(&approval));
21 assert_eq!(
22 audit_window,
23 Interval::new(11, 13).expect("expected valid interval")
24 );
25
26 println!(
27 "full shift: {:?}, audit overlap: {:?}",
28 full_shift, audit_window
29 );
30}