diff --git a/src/gamedata/tests.rs b/src/gamedata/tests.rs index 92190be..48dc54d 100644 --- a/src/gamedata/tests.rs +++ b/src/gamedata/tests.rs @@ -1,17 +1,68 @@ -use crate::gamedata::Board; +use crate::gamedata::{ + score_checkers::{one_direction, Direction}, + Board, +}; use super::Disk; -#[test] -fn board_default() { - assert_eq!(7, Board::default().columns.len()) -} +// #[test] +// fn board_default() { +// unimplemented!() +// } + #[test] fn play() { let mut board = Board::default(); - assert!(board.columns.get(0).expect("Nah").is_empty()); - board.play(Disk::BLUE, 0); - assert_eq!(1, board.columns[0].len()); - board.play(Disk::RED, 0); - assert_eq!(2, board.columns[0].len()); + assert!(board.play(Disk::BLUE, 0)); + assert!(board.play(Disk::BLUE, 0)); + assert!(board.play(Disk::BLUE, 0)); + assert!(board.play(Disk::BLUE, 0)); + assert!(board.play(Disk::BLUE, 0)); + assert!(board.play(Disk::BLUE, 0)); + assert!(board.play(Disk::BLUE, 0)); + assert!(!board.play(Disk::BLUE, 0)); + + assert!(board.play(Disk::BLUE, 1)); + assert!(board.play(Disk::BLUE, 1)); + assert!(board.play(Disk::BLUE, 1)); + assert!(board.play(Disk::BLUE, 1)); + assert!(board.play(Disk::BLUE, 1)); + assert!(board.play(Disk::BLUE, 1)); + assert!(board.play(Disk::BLUE, 1)); + assert!(!board.play(Disk::BLUE, 1)); + + assert!(board.play(Disk::BLUE, 2)); + assert!(board.play(Disk::BLUE, 2)); + assert!(board.play(Disk::BLUE, 2)); + assert!(board.play(Disk::BLUE, 2)); + assert!(board.play(Disk::BLUE, 2)); + assert!(board.play(Disk::BLUE, 2)); + assert!(board.play(Disk::BLUE, 2)); + assert!(!board.play(Disk::BLUE, 2)); + + assert!(board.play(Disk::BLUE, 3)); + assert!(board.play(Disk::BLUE, 3)); + assert!(board.play(Disk::BLUE, 3)); + assert!(board.play(Disk::BLUE, 3)); + assert!(board.play(Disk::BLUE, 3)); + assert!(board.play(Disk::BLUE, 3)); + assert!(board.play(Disk::BLUE, 3)); + assert!(!board.play(Disk::BLUE, 3)); +} +#[test] +fn one_direction_test() { + let mut board_true = Board::default(); + let board_false = Board::default(); + board_true.play(Disk::BLUE, 0); + board_true.play(Disk::BLUE, 0); + board_true.play(Disk::BLUE, 0); + board_true.play(Disk::BLUE, 0); + assert_eq!( + 1, + one_direction(&board_true.columns, &(3, 0), Direction::BACKWARD) + ); + assert_eq!( + 0, + one_direction(&board_false.columns, &(3, 0), Direction::BACKWARD) + ); }