blob: 16a8a77cddc11b37d1737a45c6fd8371dbe34322 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
//! Integration Tests for BSP dungeon generation
#[cfg(test)]
mod tests {
use dungeon::*;
/// Basic integration test for BSP generation
#[test]
fn test_bsp_integration() {
let seed = 12345u64;
let (tiles, player_start) = bsp::generate(seed);
// Basic integration test: ensure we get valid data
assert!(!tiles.is_empty());
assert!(player_start.x() < map::MAP_SIZE);
assert!(player_start.y() < map::MAP_SIZE);
}
/// Test that BSP-generated floors have a valid player start
#[test]
fn test_bsp_player_start() {
let seed = 12345u64;
let (tiles, player_start) = bsp::generate(seed);
// Ensure player start is within bounds
assert!(player_start.x() < map::MAP_SIZE);
assert!(player_start.y() < map::MAP_SIZE);
// Ensure player start is a room tile
let idx = player_start.idx();
assert_eq!(tiles[idx], map::Tile::Room);
}
/// Test that BSP-generated floors have at least two rooms
#[test]
fn test_bsp_2_or_more_rooms() {
let seed = 12345u64;
let (tiles, _player_start) = bsp::generate(seed);
// Ensure we have at least two rooms
let mut room_count = 0;
let mut visited = vec![false; tiles.len()];
for (i, &tile) in tiles.iter().enumerate() {
if tile == map::Tile::Room && !visited[i] {
room_count += 1;
// Mark all connected tiles as visited
visited[i] = true;
}
}
assert!(room_count >= 2);
}
}
|