tests: revamp tests, remove more useless tests

This commit is contained in:
2025-08-08 09:07:10 -05:00
parent b308bc0ef7
commit 87ee12543e
12 changed files with 233 additions and 521 deletions

View File

@@ -1,10 +1,9 @@
use glam::{IVec2, Vec2};
use glam::Vec2;
use pacman::constants::{BOARD_CELL_SIZE, CELL_SIZE};
use pacman::map::Map;
fn create_minimal_test_board() -> [&'static str; BOARD_CELL_SIZE.y as usize] {
let mut board = [""; BOARD_CELL_SIZE.y as usize];
// Create a minimal valid board with house doors
board[0] = "############################";
board[1] = "#............##............#";
board[2] = "#.####.#####.##.#####.####.#";
@@ -40,37 +39,11 @@ fn create_minimal_test_board() -> [&'static str; BOARD_CELL_SIZE.y as usize] {
}
#[test]
fn test_find_starting_position_pacman() {
fn test_map_creation() {
let board = create_minimal_test_board();
let map = Map::new(board);
let pacman_pos = map.find_starting_position(0);
assert!(pacman_pos.is_some());
let pos = pacman_pos.unwrap();
// Pacman should be found somewhere in the board
assert!(pos.x < BOARD_CELL_SIZE.x);
assert!(pos.y < BOARD_CELL_SIZE.y);
}
#[test]
fn test_find_starting_position_nonexistent() {
let board = create_minimal_test_board();
let map = Map::new(board);
let pos = map.find_starting_position(99); // Non-existent entity
assert!(pos.is_none());
}
#[test]
fn test_map_graph_construction() {
let board = create_minimal_test_board();
let map = Map::new(board);
// Check that nodes were created
assert!(map.graph.node_count() > 0);
// Check that grid_to_node mapping was created
assert!(!map.grid_to_node.is_empty());
// Check that some connections were made
@@ -85,17 +58,17 @@ fn test_map_graph_construction() {
}
#[test]
fn test_map_grid_to_node_mapping() {
fn test_map_starting_positions() {
let board = create_minimal_test_board();
let map = Map::new(board);
// Check that Pac-Man's position is mapped
let pacman_pos = map.find_starting_position(0).unwrap();
let grid_pos = IVec2::new(pacman_pos.x as i32, pacman_pos.y as i32);
let pacman_pos = map.find_starting_position(0);
assert!(pacman_pos.is_some());
assert!(pacman_pos.unwrap().x < BOARD_CELL_SIZE.x);
assert!(pacman_pos.unwrap().y < BOARD_CELL_SIZE.y);
assert!(map.grid_to_node.contains_key(&grid_pos));
let node_id = map.grid_to_node[&grid_pos];
assert!(map.graph.get_node(node_id).is_some());
let nonexistent_pos = map.find_starting_position(99);
assert_eq!(nonexistent_pos, None);
}
#[test]
@@ -103,7 +76,6 @@ fn test_map_node_positions() {
let board = create_minimal_test_board();
let map = Map::new(board);
// Check that node positions are correctly calculated
for (grid_pos, &node_id) in &map.grid_to_node {
let node = map.graph.get_node(node_id).unwrap();
let expected_pos = Vec2::new((grid_pos.x * CELL_SIZE as i32) as f32, (grid_pos.y * CELL_SIZE as i32) as f32)