Initial release #1

Merged
warrence merged 102 commits from dev into main 2026-06-30 10:26:52 +02:00
2 changed files with 22 additions and 8 deletions
Showing only changes of commit f1d5ccafd2 - Show all commits
+14
View File
@@ -13,6 +13,11 @@ impl<V: Copy, T: Clone> VertexMap<V, T> {
}
}
// Reads beyond len() are valid and return the default value.
pub fn len(&self) -> usize {
self.inner.len()
}
pub fn sync<G: GraphTopology<Vertex = V>>(&mut self, graph: &G) {
self.inner.resize(graph.vertex_capacity());
}
@@ -43,6 +48,11 @@ impl<E: Copy, T: Clone> EdgeMap<E, T> {
}
}
// Reads beyond len() are valid and return the default value.
pub fn len(&self) -> usize {
self.inner.len()
}
pub fn sync<G: GraphTopology<Edge = E>>(&mut self, graph: &G) {
self.inner.resize(graph.edge_capacity());
}
@@ -77,6 +87,10 @@ impl<E: Copy, T: Clone> EntityMap<E, T> {
}
}
pub fn len(&self) -> usize {
self.data.len()
}
pub fn resize(&mut self, capacity: usize) {
if capacity > self.data.len() {
self.data.resize(capacity, self.default.clone());
+8 -8
View File
@@ -48,16 +48,16 @@ macro_rules! vertex_map_tests {
let mut graph = <$T>::new();
graph.add_vertex();
let mut map = graph.vertex_map(42);
let initial_len = map.inner.data.len();
let initial_len = map.len();
while graph.vertex_capacity() <= initial_len {
graph.add_vertex();
}
assert!(
map.inner.data.len() < graph.vertex_capacity(),
map.len() < graph.vertex_capacity(),
"precondition: map is stale before sync"
);
map.sync(&graph);
assert_eq!(map.inner.data.len(), graph.vertex_capacity());
assert_eq!(map.len(), graph.vertex_capacity());
}
#[test]
@@ -99,7 +99,7 @@ macro_rules! vertex_map_deletion_tests {
let capacity_before = graph.vertex_capacity();
graph.delete_vertex(v2);
map.sync(&graph);
assert_eq!(map.inner.data.len(), capacity_before);
assert_eq!(map.len(), capacity_before);
assert_eq!(map[v1], 5);
}
@@ -180,16 +180,16 @@ macro_rules! edge_map_tests {
let v2 = graph.add_vertex();
graph.add_edge(v1, v2);
let mut map = graph.edge_map(42);
let initial_len = map.inner.data.len();
let initial_len = map.len();
while graph.edge_capacity() <= initial_len {
graph.add_edge(v1, v2);
}
assert!(
map.inner.data.len() < graph.edge_capacity(),
map.len() < graph.edge_capacity(),
"precondition: map is stale before sync"
);
map.sync(&graph);
assert_eq!(map.inner.data.len(), graph.edge_capacity());
assert_eq!(map.len(), graph.edge_capacity());
}
#[test]
@@ -237,7 +237,7 @@ macro_rules! edge_map_deletion_tests {
let capacity_before = graph.edge_capacity();
graph.delete_edge(e2);
map.sync(&graph);
assert_eq!(map.inner.data.len(), capacity_before);
assert_eq!(map.len(), capacity_before);
assert_eq!(map[e1], 5);
}