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