diff --git a/src/testing/graph_topology_testing.rs b/src/testing/graph_topology_testing.rs index 1e09b5f..bf864f0 100644 --- a/src/testing/graph_topology_testing.rs +++ b/src/testing/graph_topology_testing.rs @@ -553,5 +553,35 @@ macro_rules! graph_topology_deletion_tests { let result = std::panic::catch_unwind(move || graph.delete_edge(e)); assert!(result.is_err(), "second deletion should panic"); } + + #[test] + fn vertices_after_delete() { + let (mut graph, vertices) = make_test_graph(); + graph.delete_vertex(vertices[2]); + assert_eq!( + graph.vertex_count(), + 9, + "unexpected vertex count after delete" + ); + assert_eq!( + graph.vertices().count(), + 9, + "unexpected vertex iterator count after delete" + ); + for v in graph.vertices() { + assert_ne!( + v, vertices[2], + "deleted vertex {:?} appeared in iterator", + vertices[2] + ); + } + for i in [0, 1, 3, 4, 5, 6, 7, 8, 9] { + assert!( + graph.vertices().any(|v| v == vertices[i]), + "expected vertex {:?} missing from iterator after delete", + vertices[i] + ); + } + } }; }