all tests for possible scores

This commit is contained in:
LinlyBoi
2023-05-01 23:19:39 +03:00
parent f992f2331f
commit 733745ef30

View File

@@ -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)
);
}