Move the disconnected test graph to the more general graph_topology_test_fixtures macro

This commit is contained in:
2026-06-25 20:17:55 +02:00
parent 3adfb4b9eb
commit e299012948
2 changed files with 14 additions and 13 deletions
+3 -13
View File
@@ -14,7 +14,7 @@ macro_rules! dijkstra_tests {
#[test] #[test]
fn dijkstra_disconnected() { fn dijkstra_disconnected() {
let (graph, vertices) = make_test_graph_dijkstra_disconnected(); let (graph, vertices) = make_test_graph_disconnected();
let result = $crate::algorithms::dijkstra(&graph, vertices[0], |_| { let result = $crate::algorithms::dijkstra(&graph, vertices[0], |_| {
panic!("unexpected call of weight functor") panic!("unexpected call of weight functor")
}); });
@@ -79,7 +79,7 @@ macro_rules! dijkstra_tests {
#[test] #[test]
fn dijkstra_unweighted_disconnected() { fn dijkstra_unweighted_disconnected() {
let (graph, vertices) = make_test_graph_dijkstra_disconnected(); let (graph, vertices) = make_test_graph_disconnected();
let result = $crate::algorithms::dijkstra_unweighted(&graph, vertices[0]); let result = $crate::algorithms::dijkstra_unweighted(&graph, vertices[0]);
assert_single_vertex(&result, vertices[0]); assert_single_vertex(&result, vertices[0]);
assert_disconnected(&result, &vertices[1..3]); assert_disconnected(&result, &vertices[1..3]);
@@ -103,7 +103,7 @@ macro_rules! dijkstra_tests {
#[test] #[test]
fn dijkstra_distances_unweighted_disconnected() { fn dijkstra_distances_unweighted_disconnected() {
let (graph, vertices) = make_test_graph_dijkstra_disconnected(); let (graph, vertices) = make_test_graph_disconnected();
let distances = $crate::algorithms::dijkstra_distances_unweighted(&graph, vertices[0]); let distances = $crate::algorithms::dijkstra_distances_unweighted(&graph, vertices[0]);
assert_distances_single_vertex(&distances, vertices[0]); assert_distances_single_vertex(&distances, vertices[0]);
assert_distances_disconnected(&distances, &vertices[1..3]); assert_distances_disconnected(&distances, &vertices[1..3]);
@@ -287,16 +287,6 @@ macro_rules! dijkstra_tests {
} }
} }
fn make_test_graph_dijkstra_disconnected()
-> ($T, [<$T as $crate::traits::GraphTopology>::Vertex; 3]) {
use $crate::traits::GraphTopology;
let mut graph = <$T>::new();
let vertices: [<$T as $crate::traits::GraphTopology>::Vertex; 3] =
core::array::from_fn(|_| graph.add_vertex());
graph.add_edge(vertices[1], vertices[2]);
(graph, vertices)
}
fn make_test_graph_weighted() -> ( fn make_test_graph_weighted() -> (
$T, $T,
[<$T as $crate::traits::GraphTopology>::Vertex; 10], [<$T as $crate::traits::GraphTopology>::Vertex; 10],
+11
View File
@@ -87,6 +87,17 @@ macro_rules! graph_topology_test_fixtures {
]; ];
(graph, vertices, edges, incidences) (graph, vertices, edges, incidences)
} }
#[allow(dead_code)]
fn make_test_graph_disconnected()
-> ($T, [<$T as $crate::traits::GraphTopology>::Vertex; 3]) {
use $crate::traits::GraphTopology;
let mut graph = <$T>::new();
let vertices: [<$T as $crate::traits::GraphTopology>::Vertex; 3] =
core::array::from_fn(|_| graph.add_vertex());
graph.add_edge(vertices[1], vertices[2]);
(graph, vertices)
}
}; };
} }