use super::*;
#[test]
fn first_sample_is_instant_rate() {
let m = EgressMeter::new();
m.record(2_000);
assert_eq!(m.sample(1), 2_000);
assert_eq!(m.current_bps(), 2_000);
}
#[test]
fn ewma_halves_toward_new_rate() {
let m = EgressMeter::new();
m.record(2_000);
assert_eq!(m.sample(1), 2_000);
assert_eq!(m.sample(1), 1_000);
}
#[test]
fn rate_uses_bytes_since_last_sample_over_interval() {
let m = EgressMeter::new();
m.record(8_000);
assert_eq!(m.sample(2), 4_000);
}
#[test]
fn zero_interval_is_ignored() {
let m = EgressMeter::new();
m.record(1_000);
assert_eq!(m.sample(0), 0);
}