Fix grid init

This commit is contained in:
Armin Becher 2020-04-02 23:23:23 +02:00
parent 21f84fc468
commit fc2120719b

View file

@ -26,7 +26,7 @@ macro_rules! grid {
let vec = vec![$($x),*]; let vec = vec![$($x),*];
Grid { rows : 1, cols: vec.len(), data: vec } Grid { rows : 1, cols: vec.len(), data: vec }
} }; } };
( [$( $x0:expr ),*] $($( $x:expr ),*);* ) => { ( [$( $x0:expr ),*] $([$( $x:expr ),*])* ) => {
{ {
let mut _assert_width0 = [(); count!($($x0)*)]; let mut _assert_width0 = [(); count!($($x0)*)];
let mut vec = Vec::new(); let mut vec = Vec::new();
@ -126,8 +126,7 @@ mod test {
#[test] #[test]
fn macro_init() { fn macro_init() {
//TODO let grid = grid![[1, 2, 3][4, 5, 6]]; let grid = grid![[1, 2, 3][4, 5, 6]];
let grid = grid![[1,2,3]4,5,6];
assert_eq!(grid[0][0], 1); assert_eq!(grid[0][0], 1);
assert_eq!(grid[0][1], 2); assert_eq!(grid[0][1], 2);
assert_eq!(grid[0][2], 3); assert_eq!(grid[0][2], 3);
@ -136,10 +135,18 @@ mod test {
assert_eq!(grid[1][2], 6); assert_eq!(grid[1][2], 6);
} }
#[test]
fn macro_init_2() {
let grid = grid![[1, 2, 3]
[4, 5, 6]
[7,8,9]];
assert_eq!(grid.size(), (3, 3))
}
#[test] #[test]
fn macro_one_row() { fn macro_one_row() {
let grid: Grid<usize> = grid![[1, 2, 3, 4]]; let grid: Grid<usize> = grid![[1, 2, 3, 4]];
assert_eq!(grid.size(), (1, 0)); assert_eq!(grid.size(), (1, 4));
assert_eq!(grid[0][0], 1); assert_eq!(grid[0][0], 1);
assert_eq!(grid[0][1], 2); assert_eq!(grid[0][1], 2);
assert_eq!(grid[0][2], 3); assert_eq!(grid[0][2], 3);