diff options
| author | Freya Murphy <freya@freyacat.org> | 2025-11-12 11:01:21 -0500 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2025-11-12 23:48:49 -0500 |
| commit | ab1392bba09f8b58dc496b3a3f5b980bc5b475c8 (patch) | |
| tree | 2044f352eb84e473d037e0b74428914c04e5a754 /dungeon/tests | |
| parent | dungeon: bsp generate should return a floor to use same single rng (diff) | |
| download | DungeonCrawl-ab1392bba09f8b58dc496b3a3f5b980bc5b475c8.tar.gz DungeonCrawl-ab1392bba09f8b58dc496b3a3f5b980bc5b475c8.tar.bz2 DungeonCrawl-ab1392bba09f8b58dc496b3a3f5b980bc5b475c8.zip | |
dungeon: switch to only using small rng from rand
Diffstat (limited to 'dungeon/tests')
| -rw-r--r-- | dungeon/tests/bsp.rs (renamed from dungeon/tests/bsp_tests.rs) | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/dungeon/tests/bsp_tests.rs b/dungeon/tests/bsp.rs index 09d2d3a..60198a5 100644 --- a/dungeon/tests/bsp_tests.rs +++ b/dungeon/tests/bsp.rs @@ -3,11 +3,11 @@ mod tests { use dungeon::*; use pos::Pos; - use rand::{Rng, SeedableRng}; + use rand::{Rng, SeedableRng, rngs::SmallRng}; /// Generate a set of test seeds for reproducibility with a seeded RNG fn generate_test_seeds(seed: u64) -> Vec<u64> { - let mut rng = rand::rngs::StdRng::seed_from_u64(seed); + let mut rng = SmallRng::seed_from_u64(seed); // Generate 100 random u64 seeds (0..100).map(|_| rng.random_range(0..u64::MAX)).collect() } @@ -17,7 +17,8 @@ mod tests { fn test_bsp_integration() { let test_seeds = generate_test_seeds(123456); for seed in test_seeds { - let floor = bsp::generate(seed); + let rng = SmallRng::seed_from_u64(seed); + let floor = bsp::generate(seed, rng); // Basic integration test: ensure we get valid data assert!(!floor.tiles().is_empty()); } @@ -28,7 +29,8 @@ mod tests { fn test_bsp_player_start() { let test_seeds = generate_test_seeds(654321); for seed in test_seeds { - let floor = bsp::generate(seed); + let rng = SmallRng::seed_from_u64(seed); + let floor = bsp::generate(seed, rng); // Ensure player start is a room tile let start = floor.player_start(); assert_eq!(floor.get(start), map::Tile::Room); @@ -40,7 +42,8 @@ mod tests { fn test_bsp_2_or_more_rooms() { let test_seeds = generate_test_seeds(111222); for seed in test_seeds { - let floor = bsp::generate(seed); + let rng = SmallRng::seed_from_u64(seed); + let floor = bsp::generate(seed, rng); // Ensure we have at least one room tile let room_count = floor .tiles() @@ -59,7 +62,8 @@ mod tests { fn test_bsp_walls_on_borders() { let test_seeds = generate_test_seeds(777888); for seed in test_seeds { - let floor = bsp::generate(seed); + let rng = SmallRng::seed_from_u64(seed); + let floor = bsp::generate(seed, rng); // Go through all tiles, and ensure border tiles are walls for pos in Pos::values() { if pos.is_border() { @@ -78,8 +82,10 @@ mod tests { fn test_bsp_reproducibility() { let test_seeds = generate_test_seeds(111111); for seed in test_seeds { - let floor1 = bsp::generate(seed); - let floor2 = bsp::generate(seed); + let rng1 = SmallRng::seed_from_u64(seed); + let rng2 = SmallRng::seed_from_u64(seed); + let floor1 = bsp::generate(seed, rng1); + let floor2 = bsp::generate(seed, rng2); assert_eq!( floor1.tiles(), floor2.tiles(), @@ -104,7 +110,8 @@ mod tests { // Helper function to check that all air tiles are reachable from player start fn check_air_tiles_reachable(seed: u64) { - let floor = bsp::generate(seed); + let rng = SmallRng::seed_from_u64(seed); + let floor = bsp::generate(seed, rng); // BFS to find all reachable air tiles let mut visited = vec![false; TILE_COUNT]; |