From ce77465b91df311348ad39282e153f1edba3c9a2 Mon Sep 17 00:00:00 2001 From: Rostyslav Hnatyshyn Date: Tue, 2 Jan 2024 22:35:10 -0700 Subject: [PATCH] screen tests --- src/lib/screen.rs | 27 +++++++++++++++++++++++++-- src/main.rs | 20 -------------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/lib/screen.rs b/src/lib/screen.rs index e872dd4..51e55b0 100644 --- a/src/lib/screen.rs +++ b/src/lib/screen.rs @@ -22,7 +22,7 @@ impl Screen { } pub fn get_valid_movements(&self, pos: &Point) -> Vec { - let binding = pos.get_neighbors(); + let binding = pos.get_neighbors(); binding .iter() .filter(|e| self.is_in_bounds(e)) @@ -31,10 +31,33 @@ impl Screen { } pub fn render(&self, p: &Point, char: &str) { - mvprintw(p.1 + self.center.1, p.0 + self.center.0, char); + mvprintw(p.1 + self.center.1, p.0 + self.center.0, char); } } +#[test] +fn test_in_bounds() { + let x = 20; + let y = 20; + let s = Screen::new(x, y); + + assert!(&s.is_in_bounds(&Point(0, 0))); + assert!(!&s.is_in_bounds(&Point(21, 0))); +} + +#[test] +fn test_get_valid_movements_board() { + let x = 20; + let y = 20; + let s = Screen::new(x, y); + + let valid = s.get_valid_movements(&Point(0,0)); + assert_eq!(valid, Point(0,0).get_neighbors()); + + let border = s.get_valid_movements(&Point(19,19)); + assert!(border.len() == 2); +} + pub enum BoardCommand { Dig(Point), LayEgg(Point, u32), diff --git a/src/main.rs b/src/main.rs index 74a5eda..3bebd96 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,24 +29,6 @@ fn render(e: &Entities, w: &World, b: &Screen) { } } -#[cfg(test)] -mod tests { - // TODO: tests, cleanup code in general - use super::*; - - #[test] - fn board() { - let max_x = 20; - let max_y = 20; - - let mut board = Screen::new(max_x, max_y); - let mut world = World::new(); - - dbg!(board.is_in_bounds(&Point(0, 0))); - dbg!(board.get_valid_movements(&Point(0, 0))); - } -} - fn simulate(e: &mut Entities, w: &mut World, b: &mut Screen) { let cmds: Vec = e .data @@ -90,8 +72,6 @@ fn main() { getmaxyx(stdscr(), &mut max_y, &mut max_x); - // TODO: fix renderable to render different colors - let mut board = Screen::new(max_x, max_y); let mut world = World::new();