all tests for possible scores
This commit is contained in:
@@ -13,69 +13,69 @@ use super::Disk;
|
||||
#[test]
|
||||
fn play() {
|
||||
let mut board = Board::default();
|
||||
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::BLU, 0));
|
||||
assert!(board.play(Disk::BLU, 0));
|
||||
assert!(board.play(Disk::BLU, 0));
|
||||
assert!(board.play(Disk::BLU, 0));
|
||||
assert!(board.play(Disk::BLU, 0));
|
||||
assert!(board.play(Disk::BLU, 0));
|
||||
assert!(board.play(Disk::BLU, 0));
|
||||
assert!(!board.play(Disk::BLU, 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::BLU, 1));
|
||||
assert!(board.play(Disk::BLU, 1));
|
||||
assert!(board.play(Disk::BLU, 1));
|
||||
assert!(board.play(Disk::BLU, 1));
|
||||
assert!(board.play(Disk::BLU, 1));
|
||||
assert!(board.play(Disk::BLU, 1));
|
||||
assert!(board.play(Disk::BLU, 1));
|
||||
assert!(!board.play(Disk::BLU, 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::BLU, 2));
|
||||
assert!(board.play(Disk::BLU, 2));
|
||||
assert!(board.play(Disk::BLU, 2));
|
||||
assert!(board.play(Disk::BLU, 2));
|
||||
assert!(board.play(Disk::BLU, 2));
|
||||
assert!(board.play(Disk::BLU, 2));
|
||||
assert!(board.play(Disk::BLU, 2));
|
||||
assert!(!board.play(Disk::BLU, 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));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(board.play(Disk::BLU, 3));
|
||||
assert!(!board.play(Disk::BLU, 3));
|
||||
}
|
||||
#[test]
|
||||
fn one_direction_updown() {
|
||||
let mut board = Board::default();
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
assert_eq!(1, one_direction(&board.columns, &(3, 0), Direction::DOWN));
|
||||
}
|
||||
#[test]
|
||||
fn one_direction_updown2() {
|
||||
let mut board = Board::default();
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::RED, 0);
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
assert_eq!(0, one_direction(&board.columns, &(3, 0), Direction::DOWN));
|
||||
}
|
||||
#[test]
|
||||
fn one_direction_forwardback() {
|
||||
let mut board = Board::default();
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLUE, 1);
|
||||
board.play(Disk::BLUE, 2);
|
||||
board.play(Disk::BLUE, 3);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::BLU, 1);
|
||||
board.play(Disk::BLU, 2);
|
||||
board.play(Disk::BLU, 3);
|
||||
|
||||
assert!(!matches!(Disk::RED, Disk::BLUE));
|
||||
assert!(!matches!(Disk::RED, Disk::BLU));
|
||||
assert_eq!(
|
||||
1,
|
||||
one_direction(&board.columns, &(0, 0), Direction::FORWARD)
|
||||
@@ -88,9 +88,9 @@ fn one_direction_forwardback() {
|
||||
#[test]
|
||||
fn one_direction_forwardback2() {
|
||||
let mut board = Board::default();
|
||||
board.play(Disk::BLUE, 0);
|
||||
board.play(Disk::BLUE, 1);
|
||||
board.play(Disk::BLUE, 3);
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::BLU, 1);
|
||||
board.play(Disk::BLU, 3);
|
||||
board.play(Disk::RED, 2);
|
||||
assert_eq!(
|
||||
0,
|
||||
@@ -101,3 +101,42 @@ fn one_direction_forwardback2() {
|
||||
one_direction(&board.columns, &(0, 3), Direction::BACKWARD)
|
||||
);
|
||||
}
|
||||
#[test]
|
||||
fn one_direction_diag1() {
|
||||
let mut board = Board::default();
|
||||
board.play(Disk::BLU, 0);
|
||||
board.play(Disk::RED, 1);
|
||||
board.play(Disk::BLU, 1);
|
||||
board.play(Disk::RED, 2);
|
||||
board.play(Disk::RED, 2);
|
||||
board.play(Disk::BLU, 2);
|
||||
board.play(Disk::RED, 3);
|
||||
board.play(Disk::RED, 3);
|
||||
board.play(Disk::RED, 3);
|
||||
board.play(Disk::BLU, 3);
|
||||
assert_eq!(1, one_direction(&board.columns, &(0, 0), Direction::UPFORW));
|
||||
assert_eq!(
|
||||
1,
|
||||
one_direction(&board.columns, &(3, 3), Direction::DOWNBACK)
|
||||
);
|
||||
}
|
||||
#[test]
|
||||
fn one_direction_diag2() {
|
||||
let mut board = Board::default();
|
||||
board.play(Disk::BLU, 3);
|
||||
board.play(Disk::RED, 2);
|
||||
board.play(Disk::BLU, 2);
|
||||
board.play(Disk::RED, 1);
|
||||
board.play(Disk::RED, 1);
|
||||
board.play(Disk::BLU, 1);
|
||||
board.play(Disk::RED, 0);
|
||||
board.play(Disk::RED, 0);
|
||||
board.play(Disk::RED, 0);
|
||||
board.play(Disk::BLU, 0);
|
||||
dbg!(&board.columns.as_columns());
|
||||
assert_eq!(1, one_direction(&board.columns, &(0, 3), Direction::UPBACK));
|
||||
assert_eq!(
|
||||
1,
|
||||
one_direction(&board.columns, &(3, 0), Direction::DOWNFORW)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user