29 lines
811 B
Rust
29 lines
811 B
Rust
use crate::testing::fixtures;
|
|
use crate::testing::fixtures::MakeTestGraph;
|
|
use crate::traits::GraphTopologyAddition;
|
|
|
|
#[doc(hidden)]
|
|
#[macro_export]
|
|
macro_rules! graph_topology_addition_clone_tests {
|
|
($T:ty) => {
|
|
$crate::graph_topology_addition_clone_tests!(@wrap $T,
|
|
clone_mutation_independent,
|
|
);
|
|
};
|
|
|
|
(@wrap $T:ty, $($name:ident),* $(,)?) => {
|
|
$(
|
|
#[test]
|
|
fn $name() {
|
|
$crate::testing::graph_topology_addition_clone_testing::$name::<$T>();
|
|
}
|
|
)*
|
|
};
|
|
}
|
|
|
|
pub fn clone_mutation_independent<G: Clone + GraphTopologyAddition>() {
|
|
let (mut graph, vertices, _) = G::single_edge();
|
|
let mut clone = graph.clone();
|
|
fixtures::assert_mutation_independent(&mut graph, &mut clone, &vertices, |v| v);
|
|
}
|