// file: crates/engines/engine-v1-sdl/unit_tests/swipe.rs // version: 5 fn pointer(x: f32, y: f32) -> engine_v1_common::PointerState { return engine_v1_common::PointerState::normalized(true, x, y); } #[test] fn short_gesture_does_not_emit_direction() { let input = super::apply_swipe_direction(engine_v1_common::InputState::none(), Some(pointer(0.5, 0.5)), pointer(0.52, 0.51)); assert!(!input.is_active(engine_v1_common::GameAction::Left)); assert!(!input.is_active(engine_v1_common::GameAction::Right)); assert!(!input.is_active(engine_v1_common::GameAction::Up)); assert!(!input.is_active(engine_v1_common::GameAction::Down)); } #[test] fn horizontal_swipe_uses_dominant_axis() { let input = super::apply_swipe_direction(engine_v1_common::InputState::none(), Some(pointer(0.7, 0.5)), pointer(0.2, 0.55)); assert!(input.is_active(engine_v1_common::GameAction::Left)); } #[test] fn vertical_swipe_uses_dominant_axis() { let input = super::apply_swipe_direction(engine_v1_common::InputState::none(), Some(pointer(0.5, 0.8)), pointer(0.55, 0.2)); assert!(input.is_active(engine_v1_common::GameAction::Up)); } #[derive(Default)] struct QuitAwareGame { requests: u64, } impl engine_v1_common::EngineGame for QuitAwareGame { fn update(&mut self, _frame: engine_v1_common::EngineFrame, _input: engine_v1_common::InputState) { return; } fn quit_requested(&mut self, _request: engine_v1_common::QuitRequest) -> engine_v1_common::QuitDecision { self.requests = self.requests.saturating_add(1); return engine_v1_common::QuitDecision::Continue; } } #[test] fn runtime_respects_game_quit_decision() { let mut game = QuitAwareGame::default(); assert!(!super::quit_requested(&mut game, engine_v1_common::QuitSource::PlatformBack)); assert_eq!(game.requests, 1); }