예제 #1
0
        public void CanCreateNewEdgesOnNewGraph()
        {
            Node nodeA = new Node("A");
            Node nodeB = new Node("B");

            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeB, nodeA);

            Assert.Contains(nodeA, myGraph.GetNeighbors(nodeB));
            Assert.Contains(nodeB, myGraph.GetNeighbors(nodeA));
            Assert.Contains(nodeA, myGraph.NodeList);
            Assert.Contains(nodeB, myGraph.NodeList);
        }
예제 #2
0
        public void TestAddEdge(string valueOne, string valueTwo, string valueThree)
        {
            Vertex vertexOne   = new Vertex(valueOne);
            Vertex vertexTwo   = new Vertex(valueTwo);
            Vertex vertexThree = new Vertex(valueThree);

            Graph myGraph = new Graph();

            myGraph.AddVertex(vertexOne);
            myGraph.AddVertex(vertexTwo);
            myGraph.AddVertex(vertexThree);

            myGraph.AddUndirectedEdge(vertexOne, vertexTwo);

            Assert.True(myGraph.GetNeighbors(vertexOne).Contains(vertexTwo) && myGraph.GetNeighbors(vertexThree).Count == 0);
        }
예제 #3
0
        public void CanReturnCorrectNeighbors()
        {
            Node nodeA = new Node("A");
            Node nodeB = new Node("B");
            Node nodeC = new Node("C");
            Node nodeD = new Node("D");
            Node nodeE = new Node("E");
            Node nodeF = new Node("F");
            Node nodeG = new Node("G");
            Node nodeH = new Node("H");
            Node nodeI = new Node("I");
            Node nodeJ = new Node("J");

            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeB, nodeA);
            myGraph.AddEdge(nodeC, nodeA);
            myGraph.AddEdge(nodeD, nodeB);
            myGraph.AddEdge(nodeE, nodeA);
            myGraph.AddEdge(nodeD, nodeE);
            myGraph.AddEdge(nodeF, nodeC);
            myGraph.AddEdge(nodeF, nodeE);
            myGraph.AddEdge(nodeG, nodeE);
            myGraph.AddEdge(nodeH, nodeF);
            myGraph.AddEdge(nodeI, nodeF);
            myGraph.AddEdge(nodeG, nodeH);
            myGraph.AddEdge(nodeJ, nodeH);
            myGraph.AddEdge(nodeJ, nodeI);

            Assert.Contains(nodeB, myGraph.GetNeighbors(nodeA));
        }
예제 #4
0
        public void CanCreateNewEdgesOnEstablishedGraph()
        {
            Node nodeA = new Node("A");
            Node nodeB = new Node("B");
            Node nodeC = new Node("C");
            Node nodeD = new Node("D");
            Node nodeE = new Node("E");
            Node nodeF = new Node("F");
            Node nodeG = new Node("G");
            Node nodeH = new Node("H");
            Node nodeI = new Node("I");
            Node nodeJ = new Node("J");

            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeB, nodeA);
            myGraph.AddEdge(nodeC, nodeA);
            myGraph.AddEdge(nodeD, nodeB);
            myGraph.AddEdge(nodeE, nodeA);
            myGraph.AddEdge(nodeD, nodeE);
            myGraph.AddEdge(nodeF, nodeC);
            myGraph.AddEdge(nodeF, nodeE);
            myGraph.AddEdge(nodeG, nodeE);
            myGraph.AddEdge(nodeH, nodeF);
            myGraph.AddEdge(nodeI, nodeF);
            myGraph.AddEdge(nodeG, nodeH);
            myGraph.AddEdge(nodeJ, nodeH);
            myGraph.AddEdge(nodeJ, nodeI);

            Node newNode = new Node("X");

            myGraph.AddEdge(newNode, nodeA);

            Assert.Contains(newNode, myGraph.GetNeighbors(nodeA));
            Assert.Contains(newNode, myGraph.NodeList);
        }