You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
Rust
86 lines
2.2 KiB
Rust
use super::*;
|
|
|
|
#[test]
|
|
fn test_shape_t() {
|
|
let mut shape = Shape::new_t();
|
|
|
|
let expected_up = "010\n\
|
|
111\n\
|
|
000\n";
|
|
|
|
let expected_right = "010\n\
|
|
011\n\
|
|
010\n";
|
|
|
|
let expected_down = "000\n\
|
|
111\n\
|
|
010\n";
|
|
|
|
let expected_left = "010\n\
|
|
110\n\
|
|
010\n";
|
|
|
|
assert_eq!(shape.as_ascii(), expected_up);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_right);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_down);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_left);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_up);
|
|
}
|
|
|
|
#[test]
|
|
fn test_shape_i() {
|
|
let mut shape = Shape::new_i();
|
|
|
|
let expected_up = "0010\n\
|
|
0010\n\
|
|
0010\n\
|
|
0010\n";
|
|
|
|
let expected_right = "0000\n\
|
|
0000\n\
|
|
1111\n\
|
|
0000\n";
|
|
|
|
let expected_down = "0100\n\
|
|
0100\n\
|
|
0100\n\
|
|
0100\n";
|
|
|
|
let expected_left = "0000\n\
|
|
1111\n\
|
|
0000\n\
|
|
0000\n";
|
|
|
|
assert_eq!(shape.as_ascii(), expected_up);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_right);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_down);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_left);
|
|
shape = shape.rotated();
|
|
assert_eq!(shape.as_ascii(), expected_up);
|
|
}
|
|
|
|
#[test]
|
|
fn test_coordinates() {
|
|
let shape = Shape::new_t();
|
|
|
|
let center = GridPosition { x: 5, y: 5 };
|
|
|
|
let expected: Vec<Result<GridPosition, GameError>> = vec![
|
|
Ok((5, 6).into()),
|
|
Ok((4, 5).into()),
|
|
Ok((5, 5).into()),
|
|
Ok((6, 5).into()),
|
|
];
|
|
|
|
let actual: Vec<Result<GridPosition, GameError>> = shape.coordinates(¢er).collect();
|
|
|
|
assert_eq!(actual, expected);
|
|
}
|