Files
games/crates/engines/engine-v1-sdl/unit_tests/swipe.rs

51 lines
1.8 KiB
Rust

// 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);
}