pub mod maze;
pub mod generator;
pub mod position;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_maze_creation() {
let maze = maze::Maze::new();
assert!(maze.is_some());
}
#[test]
fn test_custom_size_maze_creation() {
let maze = maze::Maze::with_size(21, 15);
assert!(maze.is_some());
if let Some(maze) = maze {
assert_eq!(maze.get_width(), 21);
assert_eq!(maze.get_height(), 15);
}
}
#[test]
fn test_player_movement() {
if let Some(mut maze) = maze::Maze::new() {
let directions = ["w", "a", "s", "d"];
let mut any_move_successful = false;
for dir in &directions {
let initial_pos = maze.get_state().player_position;
maze.move_player(dir);
let new_pos = maze.get_state().player_position;
if initial_pos.x != new_pos.x || initial_pos.y != new_pos.y {
any_move_successful = true;
break;
}
}
assert!(any_move_successful, "Player could not move in any direction");
} else {
panic!("Failed to create maze for test");
}
}
}