#![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); }