46 lines
974 B
Rust
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);
|
|
}
|