Skip to content

Commit f08f664

Browse files
Add grid tests
Co-authored-by: samueltardieu <44656+samueltardieu@users.noreply.github.com>
1 parent a8fa337 commit f08f664

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/grid.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,3 +614,55 @@ fn equality() {
614614
g2.add_vertex((0, 0));
615615
assert_eq!(g, g2);
616616
}
617+
618+
/// Test that `iter()` and `into_iter()` on a sparse grid yield exactly the
619+
/// added vertices (regardless of order).
620+
#[test]
621+
fn iter_sparse_grid_yields_exact_vertices() {
622+
let mut g = Grid::new(5, 5);
623+
g.add_vertex((3, 1));
624+
g.add_vertex((0, 4));
625+
g.add_vertex((2, 2));
626+
let mut expected = vec![(3, 1), (0, 4), (2, 2)];
627+
expected.sort_unstable();
628+
let mut via_iter = g.iter().collect::<Vec<_>>();
629+
via_iter.sort_unstable();
630+
assert_eq!(via_iter, expected);
631+
let mut via_into_iter = g.into_iter().collect::<Vec<_>>();
632+
via_into_iter.sort_unstable();
633+
assert_eq!(via_into_iter, expected);
634+
}
635+
636+
/// Test that `iter()` and `into_iter()` on a dense grid yield exactly the
637+
/// expected vertices (all positions minus removed ones, regardless of order).
638+
#[test]
639+
fn iter_dense_grid_yields_exact_vertices() {
640+
let mut g = Grid::new(3, 3);
641+
g.fill();
642+
g.remove_vertex((1, 0));
643+
g.remove_vertex((0, 2));
644+
let mut expected = vec![(0, 0), (2, 0), (0, 1), (1, 1), (2, 1), (1, 2), (2, 2)];
645+
expected.sort_unstable();
646+
let mut via_iter = g.iter().collect::<Vec<_>>();
647+
via_iter.sort_unstable();
648+
assert_eq!(via_iter, expected);
649+
let mut via_into_iter = g.into_iter().collect::<Vec<_>>();
650+
via_into_iter.sort_unstable();
651+
assert_eq!(via_into_iter, expected);
652+
}
653+
654+
/// Test that `iter()` and `into_iter()` on a fully filled grid yield all
655+
/// vertices (regardless of order).
656+
#[test]
657+
fn iter_full_grid_yields_all_vertices() {
658+
let mut g = Grid::new(3, 2);
659+
g.fill();
660+
let mut expected = vec![(0, 0), (1, 0), (2, 0), (0, 1), (1, 1), (2, 1)];
661+
expected.sort_unstable();
662+
let mut via_iter = g.iter().collect::<Vec<_>>();
663+
via_iter.sort_unstable();
664+
assert_eq!(via_iter, expected);
665+
let mut via_into_iter = g.into_iter().collect::<Vec<_>>();
666+
via_into_iter.sort_unstable();
667+
assert_eq!(via_into_iter, expected);
668+
}

0 commit comments

Comments
 (0)