From b3dc0ea666c3c8a1d947cde505e628341a7a1977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Wed, 29 Apr 2026 20:49:34 +0200 Subject: [PATCH] Add test for Graph vertex deletion with loop --- src/models/graph.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/models/graph.rs b/src/models/graph.rs index e13fff4..0d3868b 100644 --- a/src/models/graph.rs +++ b/src/models/graph.rs @@ -479,6 +479,36 @@ mod tests { ); } + #[test] + fn delete_vertex_loop() { + let mut graph = Graph::new(); + let v = graph.add_vertex(); + graph.add_edge(v, v); + assert_eq!( + graph.vertex_count(), + 1, + "unexpected vertex count before delete" + ); + assert_eq!(graph.edge_count(), 1, "unexpected edge count before delete"); + assert!( + graph.are_adjacent(v, v), + "expected vertex to be self-adjacent before delete" + ); + assert_eq!(graph.degree(v), 2, "unexpected vertex degree before delete"); + graph.delete_vertex(v); + assert_eq!( + graph.vertex_count(), + 0, + "unexpected vertex count after delete" + ); + assert_eq!(graph.edge_count(), 0, "unexpected edge count after delete"); + assert_ne!( + graph.add_vertex(), + v, + "unexpected duplicate vertex after delete" + ); + } + #[test] fn delete_vertex_invalid_index() { let mut graph = Graph::new();