#[cfg(test)]
mod mouse_tests {
use reaction::prelude::*;
#[test]
fn test_multiple_move_calls_accumulate() {
let mut mouse = MouseState::new();
mouse.move_to(100.0, 50.0); mouse.move_to(102.0, 52.0); mouse.move_to(104.0, 54.0);
assert_eq!(mouse.delta, (104.0, 54.0), "Deltas should accumulate");
assert_eq!(mouse.position, (104.0, 54.0), "Position should be final");
mouse.end_frame(16.67);
assert_eq!(mouse.delta, (0.0, 0.0), "Delta should reset after frame");
assert_eq!(mouse.position, (104.0, 54.0), "Position should persist");
}
#[test]
fn test_move_rel_accumulation() {
let mut mouse = MouseState::new();
mouse.move_rel(10.0, 5.0);
mouse.move_rel(5.0, 3.0);
mouse.move_rel(2.0, 1.0);
assert_eq!(mouse.delta, (17.0, 9.0), "Relative movements should sum");
assert_eq!(mouse.position, (17.0, 9.0), "Position should update");
}
#[test]
fn test_scroll_accumulation() {
let mut mouse = MouseState::new();
mouse.scroll(1.0, 0.0);
mouse.scroll(1.0, 0.0);
mouse.scroll(1.0, 0.0);
assert_eq!(mouse.scroll, (3.0, 0.0), "Scroll should accumulate");
mouse.end_frame(16.67);
assert_eq!(mouse.scroll, (0.0, 0.0), "Scroll should reset after frame");
}
}