Example #1
0
        public void Undirected()
        {
            var vertex1 = new Vertex <int>(3);
            var vertex2 = new Vertex <int>(5);
            var vertex3 = new Vertex <int>(8);

            var graph = new Graph <int>(false);

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

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

            var edgeList = vertex3.IncidentEdges;

            Assert.AreEqual(edgeList.Count, 1);
            AssertContainsEdges(edgeList, true,
                                vertex3.GetEmanatingEdgeTo(vertex1)
                                );

            edgeList = vertex1.IncidentEdges;

            Assert.AreEqual(edgeList.Count, 2);
            AssertContainsEdges(edgeList, true,
                                vertex1.GetEmanatingEdgeTo(vertex2),
                                vertex3.GetEmanatingEdgeTo(vertex1)
                                );
        }
Example #2
0
        public void Directed()
        {
            var vertex1 = new Vertex<int>(3);
            var vertex2 = new Vertex<int>(5);
            var vertex3 = new Vertex<int>(8);

            var graph = new Graph<int>(true);
            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);
            graph.AddVertex(vertex3);

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

            var edgeList = vertex3.IncidentEdges;

            Assert.AreEqual(edgeList.Count, 1);
            AssertContainsEdges(edgeList, true,
                                vertex3.GetEmanatingEdgeTo(vertex1)
                );

            edgeList = vertex1.IncidentEdges;

            Assert.AreEqual(edgeList.Count, 2);

            AssertContainsEdges(edgeList, true,
                                vertex1.GetEmanatingEdgeTo(vertex2),
                                vertex3.GetEmanatingEdgeTo(vertex1)
                );
        }
Example #3
0
        public void GetEmanatingEdgeToExample()
        {
            // 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);

            // Retrieve the emanating edge from vertex1 to vertex2
            var edge = vertex1.GetEmanatingEdgeTo(vertex2);

            // Which will be a valid edge
            Assert.IsNotNull(edge);

            // Requesting the emanating edge from vertex2 to vertex1
            // will result in a null being returned - the
            // edge is directed from vertex1 to vertex2.
            edge = vertex2.GetEmanatingEdgeTo(vertex1);
            Assert.IsNull(edge);
        }
Example #4
0
        public void Directed()
        {
            var vertex1 = new Vertex<int>(3);
            var vertex2 = new Vertex<int>(5);
            var vertex3 = new Vertex<int>(8);

            var graph = new Graph<int>(true);
            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);

            graph.AddEdge(vertex1, vertex2);

            var edge = vertex1.GetEmanatingEdgeTo(vertex2);
            Assert.AreEqual(edge.FromVertex, vertex1);
            Assert.AreEqual(edge.ToVertex, vertex2);

            edge = vertex2.GetEmanatingEdgeTo(vertex1);
            Assert.IsNull(edge);
            Assert.IsNull(vertex1.GetEmanatingEdgeTo(vertex3));
        }
Example #5
0
        public void Directed()
        {
            var vertex1 = new Vertex <int>(3);
            var vertex2 = new Vertex <int>(5);
            var vertex3 = new Vertex <int>(8);

            var graph = new Graph <int>(true);

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

            graph.AddEdge(vertex1, vertex2);

            var edge = vertex1.GetEmanatingEdgeTo(vertex2);

            Assert.AreEqual(edge.FromVertex, vertex1);
            Assert.AreEqual(edge.ToVertex, vertex2);

            edge = vertex2.GetEmanatingEdgeTo(vertex1);
            Assert.IsNull(edge);
            Assert.IsNull(vertex1.GetEmanatingEdgeTo(vertex3));
        }
Example #6
0
        public void UndirectedEnumerator()
        {
            var vertex1 = new Vertex<int>(3);
            var vertex2 = new Vertex<int>(5);
            var vertex3 = new Vertex<int>(8);

            var graph = new Graph<int>(false);
            graph.AddVertex(vertex1);
            graph.AddVertex(vertex2);
            graph.AddVertex(vertex3);

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

            var edgeList = vertex1.EmanatingEdges;

            Assert.AreEqual(edgeList.Count, 2);

            AssertContainsEdges(edgeList, true,
                                vertex1.GetEmanatingEdgeTo(vertex2),
                                vertex1.GetEmanatingEdgeTo(vertex3),
                                vertex3.GetEmanatingEdgeTo(vertex1));
        }
Example #7
0
        public void GetEmanatingEdgeToExample()
        {
            // 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);

            // Retrieve the emanating edge from vertex1 to vertex2
            var edge = vertex1.GetEmanatingEdgeTo(vertex2);

            // Which will be a valid edge
            Assert.IsNotNull(edge);

            // Requesting the emanating edge from vertex2 to vertex1
            // will result in a null being returned - the
            // edge is directed from vertex1 to vertex2.
            edge = vertex2.GetEmanatingEdgeTo(vertex1);
            Assert.IsNull(edge);
        }