From 096ff7a891c350da000f18f01ffb4a1f9cde0899 Mon Sep 17 00:00:00 2001 From: alf9310 Date: Sun, 9 Nov 2025 17:37:23 -0500 Subject: dungeon_generation: added Hallway vs Room tiles --- dungeon/tests/bsp_tests.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'dungeon/tests') diff --git a/dungeon/tests/bsp_tests.rs b/dungeon/tests/bsp_tests.rs index 6bd0153..16a8a77 100644 --- a/dungeon/tests/bsp_tests.rs +++ b/dungeon/tests/bsp_tests.rs @@ -22,8 +22,26 @@ mod tests { // Ensure player start is within bounds assert!(player_start.x() < map::MAP_SIZE); assert!(player_start.y() < map::MAP_SIZE); - // Ensure player start is an air tile + // Ensure player start is a room tile let idx = player_start.idx(); - assert_eq!(tiles[idx], map::Tile::Air); + 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); } } -- cgit v1.2.3-freya