From ac688b4fc08538229cd7c526870d37200588619f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Tue, 12 May 2026 13:39:13 +0200 Subject: [PATCH] Extracted some assert code for GraphTopology::incidences into new fn --- src/testing/graph_topology_testing.rs | 82 ++++++++++++--------------- 1 file changed, 36 insertions(+), 46 deletions(-) diff --git a/src/testing/graph_topology_testing.rs b/src/testing/graph_topology_testing.rs index d4a4288..8769c53 100644 --- a/src/testing/graph_topology_testing.rs +++ b/src/testing/graph_topology_testing.rs @@ -960,33 +960,12 @@ macro_rules! graph_topology_deletion_tests { let (mut graph, vertices, _, incidences) = make_test_graph(); graph.delete_vertex(vertices[2]); for i in [0, 1, 3, 4, 5, 6, 7, 8, 9] { - let mut remaining: Vec<_> = incidences[i] + let remaining = incidences[i] .iter() .filter(|(v, _)| *v != vertices[2]) .cloned() .collect(); - assert_eq!( - graph.incidences(vertices[i]).count(), - remaining.len(), - "unexpected incidence count for vertex {:?} after delete", - vertices[i] - ); - for incidence in graph.incidences(vertices[i]) { - let pos = remaining - .iter() - .position(|(v, e)| *v == incidence.0 && *e == incidence.1) - .expect(&format!( - "unexpected incidence {incidence:?} of vertex {:?} after delete", - vertices[i] - )); - remaining.swap_remove(pos); - } - assert!( - remaining.is_empty(), - "expected incidences {:?} of vertex {:?} not matched after delete", - remaining, - vertices[i] - ); + assert_vertex_incidences(&graph, vertices[i], remaining); } } @@ -996,34 +975,45 @@ macro_rules! graph_topology_deletion_tests { // Deletes the edge from vertices[1] to vertices[2]. graph.delete_edge(edges[2]); for i in 0..10 { - let mut remaining: Vec<_> = incidences[i] + let remaining = incidences[i] .iter() .filter(|(_, e)| *e != edges[2]) .cloned() .collect(); - assert_eq!( - graph.incidences(vertices[i]).count(), - remaining.len(), - "unexpected incidence count for vertex {:?} after delete", - vertices[i] - ); - for incidence in graph.incidences(vertices[i]) { - let pos = remaining - .iter() - .position(|(v, e)| *v == incidence.0 && *e == incidence.1) - .expect(&format!( - "unexpected incidence {incidence:?} of vertex {:?} after delete", - vertices[i] - )); - remaining.swap_remove(pos); - } - assert!( - remaining.is_empty(), - "expected incidences {:?} of vertex {:?} not matched after delete", - remaining, - vertices[i] - ); + assert_vertex_incidences(&graph, vertices[i], remaining); } } + + fn assert_vertex_incidences( + graph: &$T, + v: <$T as $crate::traits::GraphTopology>::Vertex, + mut expected: Vec<( + <$T as $crate::traits::GraphTopology>::Vertex, + <$T as $crate::traits::GraphTopology>::Edge, + )>, + ) { + assert_eq!( + graph.incidences(v).count(), + expected.len(), + "unexpected incidence count for vertex {:?} after delete", + v + ); + for incidence in graph.incidences(v) { + let pos = expected + .iter() + .position(|(u, e)| *u == incidence.0 && *e == incidence.1) + .expect(&format!( + "unexpected incidence {incidence:?} of vertex {:?} after delete", + v + )); + expected.swap_remove(pos); + } + assert!( + expected.is_empty(), + "expected incidences {:?} of vertex {:?} not matched after delete", + expected, + v + ); + } }; }