use rust_supervisor::policy::backoff::BackoffPolicy;
use std::time::Duration;
#[test]
fn exponential_backoff_caps_at_maximum() {
let policy = BackoffPolicy::new(
Duration::from_millis(10),
Duration::from_millis(25),
0,
Duration::from_secs(1),
);
assert_eq!(
policy.delay_for_child_start_count(1),
Duration::from_millis(10)
);
assert_eq!(
policy.delay_for_child_start_count(2),
Duration::from_millis(20)
);
assert_eq!(
policy.delay_for_child_start_count(3),
Duration::from_millis(25)
);
}
#[test]
fn stable_runtime_resets_backoff_window() {
let policy = BackoffPolicy::new(
Duration::from_millis(10),
Duration::from_millis(100),
0,
Duration::from_secs(5),
);
assert!(!policy.should_reset(Duration::from_secs(4)));
assert!(policy.should_reset(Duration::from_secs(5)));
}