Added examples and tests
This commit is contained in:
parent
3e40de60a5
commit
4434a35022
10
examples/bsp_interior.rs
Normal file
10
examples/bsp_interior.rs
Normal file
|
@ -0,0 +1,10 @@
|
|||
use rand::prelude::*;
|
||||
use mapgen::*;
|
||||
|
||||
|
||||
fn main() {
|
||||
let mut rng = StdRng::seed_from_u64(907647352);
|
||||
let gen = BspInterior::new();
|
||||
let map = gen.modify_map(&mut rng, &Map::new(80, 50));
|
||||
println!("{:}", &map);
|
||||
}
|
12
examples/bsp_rooms.rs
Normal file
12
examples/bsp_rooms.rs
Normal file
|
@ -0,0 +1,12 @@
|
|||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
use rand::prelude::*;
|
||||
use mapgen::*;
|
||||
|
||||
|
||||
fn main() {
|
||||
let system_time = SystemTime::now().duration_since(UNIX_EPOCH).expect("Can't access system time");
|
||||
let mut rng = StdRng::seed_from_u64(system_time.as_millis() as u64);
|
||||
let gen = BspRooms::new();
|
||||
let map = gen.modify_map(&mut rng, &Map::new(80, 50));
|
||||
println!("{:}", &map);
|
||||
}
|
|
@ -105,4 +105,30 @@ impl BspInterior {
|
|||
if half_height > self.min_room_size { self.add_subrects(v2, rng, rects); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// ------------------------------------------------------------------------------------------------
|
||||
/// Module unit tests
|
||||
/// ------------------------------------------------------------------------------------------------
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::{TileType, Map};
|
||||
|
||||
#[test]
|
||||
fn no_corridors_on_borders() {
|
||||
let mut rng = StdRng::seed_from_u64(907647352);
|
||||
let gen = BspInterior::new();
|
||||
let map = gen.modify_map(&mut rng, &Map::new(80, 50));
|
||||
for i in 0..80 {
|
||||
assert_eq!(map.at(i, 0), TileType::Wall);
|
||||
assert_eq!(map.at(i, 49), TileType::Wall);
|
||||
}
|
||||
for j in 0..50 {
|
||||
assert_eq!(map.at(0, j), TileType::Wall);
|
||||
assert_eq!(map.at(79, j), TileType::Wall);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -131,4 +131,29 @@ impl BspRooms {
|
|||
|
||||
can_build
|
||||
}
|
||||
}
|
||||
|
||||
/// ------------------------------------------------------------------------------------------------
|
||||
/// Module unit tests
|
||||
/// ------------------------------------------------------------------------------------------------
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::map::Map;
|
||||
|
||||
#[test]
|
||||
fn no_corridors_on_borders() {
|
||||
let mut rng = StdRng::seed_from_u64(907647352);
|
||||
let gen = BspRooms::new();
|
||||
let map = gen.modify_map(&mut rng, &Map::new(80, 50));
|
||||
for i in 0..80 {
|
||||
assert_eq!(map.at(i, 0), TileType::Wall);
|
||||
assert_eq!(map.at(i, 49), TileType::Wall);
|
||||
}
|
||||
for j in 0..50 {
|
||||
assert_eq!(map.at(0, j), TileType::Wall);
|
||||
assert_eq!(map.at(79, j), TileType::Wall);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user