extern crate wheel_timer;
use wheel_timer::WheelTimer;
#[test]
fn wheel_timer_schedule_test() {
let mut timer = WheelTimer::new(10);
timer.schedule(3, "tick");
timer.tick();
timer.tick();
timer.tick();
let list = timer.tick();
assert_eq!(list.len(), 1);
let val = list[0];
assert_eq!(val, "tick");
}
#[test]
fn wheel_timer_tick_test() {
let mut timer = WheelTimer::new(10);
for i in 0..10 {
timer.schedule(i, i)
}
for i in 0..10 {
let list = timer.tick();
assert_eq!(list.len(), 1);
let val = list[0];
assert_eq!(val, i);
}
}
#[test]
fn wheel_timer_size_test() {
let mut timer = Box::new(WheelTimer::new(10));
for i in 0..10 {
timer.schedule(i, i)
}
assert_eq!(timer.size(), 10);
for _ in 0..10 {
timer.tick();
}
assert_eq!(timer.size(), 0);
}