From 6ff02f8c67d90e9a2c2487c8385f4e89f9a16d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Sat, 25 Oct 2025 00:41:08 +0200 Subject: [PATCH] Update vertex iterator tests --- src/models.rs | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/models.rs b/src/models.rs index 325000a..64268af 100644 --- a/src/models.rs +++ b/src/models.rs @@ -203,15 +203,14 @@ mod tests { let (graph, vertices) = make_test_graph(); assert_eq!(graph.vertices().count(), 10, "unexpected vertex count"); - let mut vertices: Vec = vertices.into_iter().collect(); + // Expects each vertex to appear exactly once. for v in graph.vertices() { - if let Some(index) = vertices.iter().position(|&x| x == v) { - vertices.swap_remove(index); - } else { - panic!("unexpected vertex of {v:?} from iterator"); - } + assert_eq!( + vertices.iter().filter(|&x| *x == v).count(), + 1, + "unexpected vertex {v:?} from the iterator" + ); } - println!("vertices: {:?}", vertices); } #[test] @@ -229,17 +228,22 @@ mod tests { fn neighbors() { let (graph, vertices) = make_test_graph(); // Checks neighbors of vertex 4. - assert_eq!(graph.neighbors(vertices[4]).count(), 4, "unexpected vertex count"); + assert_eq!( + graph.neighbors(vertices[4]).count(), + 4, + "unexpected vertex count" + ); - let mut neighbors: Vec = vec![vertices[1], vertices[2], vertices[7], vertices[8]]; + // Expects each neighbor to appear exactly once. This will not work if there are multiple edges. + let neighbors: Vec = vec![vertices[1], vertices[2], vertices[7], vertices[8]]; for v in graph.neighbors(vertices[4]) { - if let Some(index) = neighbors.iter().position(|&x| x == v) { - neighbors.swap_remove(index); - } else { - panic!("unexpected vertex of {v:?} from iterator"); - } + assert_eq!( + neighbors.iter().filter(|&x| *x == v).count(), + 1, + "unexpected neighbor {v:?} of {:?} from the iterator", + vertices[4] + ); } - println!("vertices: {:?}", vertices); } fn make_test_graph() -> (Graph, [Vertex; 10]) {