Example #1
0
        public void OtherVertex()
        {
            var graph   = new Graph <int>(true);
            var vertex1 = new Vertex <int>(1);
            var vertex2 = new Vertex <int>(2);
            var vertex3 = new Vertex <int>(3);

            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);
            graph.AddVertex(vertex3);

            graph.AddEdge(vertex1, vertex2);
            graph.AddEdge(vertex3, vertex2);
            graph.AddEdge(vertex1, vertex3);

            Assert.AreEqual(graph.Edges.Count, 3);
            Assert.AreEqual(graph.Vertices.Count, 3);

            Assert.IsTrue(graph.RemoveEdge(vertex1, vertex2));
            Assert.AreEqual(graph.Edges.Count, 2);
            Assert.IsFalse(vertex1.HasEmanatingEdgeTo(vertex2));
            Assert.IsTrue(vertex3.HasEmanatingEdgeTo(vertex2));

            Assert.IsTrue(graph.RemoveEdge(vertex3, vertex2));
            Assert.AreEqual(graph.Edges.Count, 1);

            Assert.IsFalse(vertex1.HasEmanatingEdgeTo(vertex2));
            Assert.IsFalse(vertex3.HasEmanatingEdgeTo(vertex2));
        }
Example #2
0
        public void VerticesAndWeightUndirected()
        {
            var graph   = new Graph <int>(false);
            var vertex1 = new Vertex <int>(4);
            var vertex2 = new Vertex <int>(5);
            var vertex3 = new Vertex <int>(6);

            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);
            graph.AddVertex(vertex3);

            graph.AddEdge(vertex1, vertex2, 10);
            graph.AddEdge(vertex1, vertex3, 12);
            graph.AddEdge(vertex2, vertex3, 14);

            Assert.AreEqual(graph.Edges.Count, 3);

            Assert.IsTrue(vertex1.HasEmanatingEdgeTo(vertex2));
            Assert.IsTrue(vertex1.HasEmanatingEdgeTo(vertex3));
            Assert.IsTrue(vertex2.HasEmanatingEdgeTo(vertex3));

            Assert.IsTrue(vertex2.HasEmanatingEdgeTo(vertex1));
            Assert.IsTrue(vertex3.HasEmanatingEdgeTo(vertex1));
            Assert.IsTrue(vertex3.HasEmanatingEdgeTo(vertex2));

            Assert.IsTrue(graph.ContainsEdge(vertex1, vertex2));
            Assert.IsTrue(graph.ContainsEdge(vertex1, vertex3));
            Assert.IsTrue(graph.ContainsEdge(vertex2, vertex3));

            Assert.IsTrue(graph.ContainsEdge(vertex2, vertex1));
            Assert.IsTrue(graph.ContainsEdge(vertex3, vertex1));
            Assert.IsTrue(graph.ContainsEdge(vertex3, vertex2));
        }
Example #3
0
        public void HasEmanatingEdgeToExample()
        {
            // Create two new vertices
            var vertex1 = new Vertex <int>(2);
            var vertex2 = new Vertex <int>(4);

            // Create a graph, and add the vertices to
            // the graph
            var graph = new Graph <int>(true);

            graph.AddVertex(vertex1, vertex2);

            // Add an edge from vertex1 to vertex vertex2
            graph.AddEdge(vertex1, vertex2);

            // vertex1 has an emanating edge to vertex2
            Assert.IsTrue(vertex1.HasEmanatingEdgeTo(vertex2));

            // But vertex2 does not have an emanating edge to vertex1
            Assert.IsFalse(vertex2.HasEmanatingEdgeTo(vertex1));
        }
Example #4
0
        public void HasEmanatingEdgeToExample()
        {
            // Create two new vertices
            var vertex1 = new Vertex<int>(2);
            var vertex2 = new Vertex<int>(4);

            // Create a graph, and add the vertices to
            // the graph
            var graph = new Graph<int>(true);
            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);

            // Add an edge from vertex1 to vertex vertex2
            graph.AddEdge(vertex1, vertex2);

            // vertex1 has an emanating edge to vertex2
            Assert.IsTrue(vertex1.HasEmanatingEdgeTo(vertex2));

            // But vertex2 does not have an emanating edge to vertex1
            Assert.IsFalse(vertex2.HasEmanatingEdgeTo(vertex1));
        }
Example #5
0
        public void OtherVertex()
        {
            var graph = new Graph<int>(true);
            var vertex1 = new Vertex<int>(1);
            var vertex2 = new Vertex<int>(2);
            var vertex3 = new Vertex<int>(3);

            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);
            graph.AddVertex(vertex3);

            graph.AddEdge(vertex1, vertex2);
            graph.AddEdge(vertex3, vertex2);
            graph.AddEdge(vertex1, vertex3);

            Assert.AreEqual(graph.Edges.Count, 3);
            Assert.AreEqual(graph.Vertices.Count, 3);

            Assert.IsTrue(graph.RemoveEdge(vertex1, vertex2));
            Assert.AreEqual(graph.Edges.Count, 2);
            Assert.IsFalse(vertex1.HasEmanatingEdgeTo(vertex2));
            Assert.IsTrue(vertex3.HasEmanatingEdgeTo(vertex2));

            Assert.IsTrue(graph.RemoveEdge(vertex3, vertex2));
            Assert.AreEqual(graph.Edges.Count, 1);

            Assert.IsFalse(vertex1.HasEmanatingEdgeTo(vertex2));
            Assert.IsFalse(vertex3.HasEmanatingEdgeTo(vertex2));
        }
Example #6
0
        public void VerticesAndWeightUndirected()
        {
            var graph = new Graph<int>(false);
            var vertex1 = new Vertex<int>(4);
            var vertex2 = new Vertex<int>(5);
            var vertex3 = new Vertex<int>(6);

            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);
            graph.AddVertex(vertex3);

            graph.AddEdge(vertex1, vertex2, 10);
            graph.AddEdge(vertex1, vertex3, 12);
            graph.AddEdge(vertex2, vertex3, 14);

            Assert.AreEqual(graph.Edges.Count, 3);

            Assert.IsTrue(vertex1.HasEmanatingEdgeTo(vertex2));
            Assert.IsTrue(vertex1.HasEmanatingEdgeTo(vertex3));
            Assert.IsTrue(vertex2.HasEmanatingEdgeTo(vertex3));

            Assert.IsTrue(vertex2.HasEmanatingEdgeTo(vertex1));
            Assert.IsTrue(vertex3.HasEmanatingEdgeTo(vertex1));
            Assert.IsTrue(vertex3.HasEmanatingEdgeTo(vertex2));

            Assert.IsTrue(graph.ContainsEdge(vertex1, vertex2));
            Assert.IsTrue(graph.ContainsEdge(vertex1, vertex3));
            Assert.IsTrue(graph.ContainsEdge(vertex2, vertex3));

            Assert.IsTrue(graph.ContainsEdge(vertex2, vertex1));
            Assert.IsTrue(graph.ContainsEdge(vertex3, vertex1));
            Assert.IsTrue(graph.ContainsEdge(vertex3, vertex2));
        }