From 77118c5d431b447bc803c0fb23154c85e9819f85 Mon Sep 17 00:00:00 2001 From: sigil-03 Date: Sun, 25 May 2025 10:41:51 -0600 Subject: [PATCH] SimpleGraph: add new_vertex --- src/test.rs | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/test.rs b/src/test.rs index a90d98f..2babfde 100644 --- a/src/test.rs +++ b/src/test.rs @@ -31,7 +31,14 @@ struct SimpleGraph { edges: Vec, } -impl SimpleGraph {} +impl SimpleGraph { + pub fn new_vertex(&mut self) -> ::HANDLE { + let id = self.vertices.len(); + let v = SimpleVertex { id: id.clone() }; + self.vertices.push(v); + id + } +} impl<'a> Graph for SimpleGraph { fn connect(&mut self, vertex_1: usize, vertex_2: usize) -> usize { @@ -61,32 +68,32 @@ impl<'a> Graph for SimpleGraph { #[test] fn simple_connect() { - let v1 = SimpleVertex { id: 0 }; - let v2 = SimpleVertex { id: 1 }; let mut g = SimpleGraph { - vertices: vec![v1, v2], + vertices: Vec::new(), edges: Vec::new(), }; - let _e = g.connect(0, 1); + let h1 = g.new_vertex(); + let h2 = g.new_vertex(); + let _e = g.connect(h1, h2); assert_eq!(g.edges.len(), 1); assert_eq!(g.edges[0].id, 0); - assert_eq!(g.edges[0].v1, 0); - assert_eq!(g.edges[0].v2, 1); + assert_eq!(g.edges[0].v1, h1); + assert_eq!(g.edges[0].v2, h2); } #[test] fn simple_disconnect() { - let v1 = SimpleVertex { id: 0 }; - let v2 = SimpleVertex { id: 1 }; let mut g = SimpleGraph { - vertices: vec![v1, v2], + vertices: Vec::new(), edges: Vec::new(), }; - let e = g.connect(0, 1); + let h1 = g.new_vertex(); + let h2 = g.new_vertex(); + let e = g.connect(h1, h2); assert_eq!(g.edges.len(), 1); assert_eq!(g.edges[0].id, 0); - assert_eq!(g.edges[0].v1, 0); - assert_eq!(g.edges[0].v2, 1); + assert_eq!(g.edges[0].v1, h1); + assert_eq!(g.edges[0].v2, h2); g.disconnect(e); assert_eq!(g.edges.len(), 0);