itpdp/esp32/wheel-tests.rs
2026-05-11 19:50:36 +02:00

46 lines
974 B
Rust

#![allow(dead_code)]
mod wheel {
include!("src/wheel.rs");
}
use wheel::{apply_wheel_delta, wheel_delta};
#[test]
fn wraps_forward_across_zero() {
assert_eq!(wheel_delta(4090, 5, false), 11);
}
#[test]
fn wraps_backward_across_zero() {
assert_eq!(wheel_delta(5, 4090, false), -11);
}
#[test]
fn inverts_direction() {
assert_eq!(wheel_delta(10, 20, true), -10);
}
#[test]
fn accumulates_before_applying_selection() {
let mut value = 5;
let mut accumulated = 0;
apply_wheel_delta(&mut value, 0, 10, &mut accumulated, 10, 32);
assert_eq!(value, 5);
assert_eq!(accumulated, 10);
apply_wheel_delta(&mut value, 0, 10, &mut accumulated, 22, 32);
assert_eq!(value, 6);
assert_eq!(accumulated, 0);
}
#[test]
fn clamps_and_resets_at_bounds() {
let mut value = 10;
let mut accumulated = 0;
apply_wheel_delta(&mut value, 0, 10, &mut accumulated, 64, 32);
assert_eq!(value, 10);
assert_eq!(accumulated, 0);
}