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> = vec![ Ok((5, 6).into()), Ok((4, 5).into()), Ok((5, 5).into()), Ok((6, 5).into()), ]; let actual: Vec> = shape.coordinates(¢er).collect(); assert_eq!(actual, expected); }