use simple_grid::Grid;
fn main() {
let grid = Grid::new(10, 10, (1..=100).collect::<Vec<u32>>());
assert_eq!(grid.get((5, 2)).unwrap(), &26);
println!("{}", grid.to_pretty_string());
let elements_in_row_3: Vec<u32> = grid.row_iter(3).copied().collect();
assert_eq!(
elements_in_row_3,
vec![31, 32, 33, 34, 35, 36, 37, 38, 39, 40]
);
let elements_in_column_7: Vec<u32> = grid.column_iter(7).copied().collect();
assert_eq!(
elements_in_column_7,
vec![8, 18, 28, 38, 48, 58, 68, 78, 88, 98]
);
let mut grid = Grid::new(10, 10, (1..=100).collect::<Vec<u32>>());
*grid.get_mut((8, 2)).unwrap() = 1000;
assert_eq!(grid.get((8, 2)).unwrap(), &1000);
grid[(5, 5)] = 1001;
assert_eq!(grid.get((5, 5)).unwrap(), &1001);
}