mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-09 08:08:13 -06:00
tests: revamp tests, remove more useless tests
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user