예제 #1
0
        public void testContainsstringMultiple()
        {
            AdjacencyListGraph <string, string> g = graph(n1, n2);

            Assert.IsTrue(g.ContainsNode(n2));
            Assert.IsTrue(g.ContainsNode(n1));
        }
예제 #2
0
        public void testReplaceNodeNoDuplicate()
        {
            AdjacencyListGraph <string, string> g = graph(n1);

            g.ReplaceNode(n1, "new_label");
            Assert.IsTrue(g.ContainsNode("new_label"));
            Assert.IsFalse(g.ContainsNode(n1));
        }
예제 #3
0
        public void testReplaceNodeSelfAsChild()
        {
            AdjacencyListGraph <string, string> g = graph(n1);

            g.AddEdge(new Edge <string, string>(n1, n1, "label"));

            g.ReplaceNode(n1, "new_label");
            Assert.IsFalse(g.ContainsNode(n1));
            Assert.IsTrue(g.ContainsNode("new_label"));
            Assert.IsTrue(g.EdgeExists("new_label", "new_label"));
        }
예제 #4
0
        public void testReplaceNodeWithChildren()
        {
            AdjacencyListGraph <string, string> g = graph(n1, n2);
            Edge <string, string> e1 = new Edge <string, string>(n1, n2, "one");

            g.AddEdge(e1);

            g.ReplaceNode(n1, "new_label");
            Assert.IsFalse(g.ContainsNode(n1));
            Assert.IsTrue(g.ContainsNode("new_label"));

            Assert.IsFalse(g.EdgeExists(n1, n2));
            Assert.IsTrue(g.EdgeExists("new_label", n2));
        }
예제 #5
0
        public void testRemovestringNoParents()
        {
            AdjacencyListGraph <string, string> g = graph(n1);

            Assert.IsTrue(g.RemoveNode(n1));
            Assert.IsFalse(g.ContainsNode(n1));
        }
예제 #6
0
        public void testReplaceNodeWithParents()
        {
            AdjacencyListGraph <string, string> g = graph(n1, n2);
            Edge <string, string> e1 = new Edge <string, string>(n2, n1, "one");

            g.AddEdge(e1);
            Assert.IsTrue(g.EdgeExists(n2, n1));

            string n2_post = "new_label";

            g.ReplaceNode(n2, n2_post);
            Assert.IsFalse(g.ContainsNode(n2));
            Assert.IsTrue(g.ContainsNode(n2_post));

            Assert.IsFalse(g.EdgeExists(n2, n1));
            Assert.IsTrue(g.EdgeExists(n2_post, n1));
            Assert.AreEqual(1, g.GetEdges(n2_post, n1).Count);
        }
예제 #7
0
        public void testRemovestringWithChildren()
        {
            AdjacencyListGraph <string, string> g = graph(n1, n2);

            g.AddEdge(e1);

            Assert.IsTrue(g.RemoveNode(n1));
            Assert.IsFalse(g.ContainsNode(n1));
            Assert.IsFalse(g.EdgeExists(n1, n2));
            Assert.IsNull(g.GetEdges(n1, n2));
        }
예제 #8
0
        public void testRemovestringWithParentsAndAddAgain()
        {
            AdjacencyListGraph <string, string> g = graph(n1, n2);

            g.AddEdge(e1);

            g.RemoveNode(n2);
            g.AddNode(n2);
            Assert.IsTrue(g.ContainsNode(n2));
            Assert.IsFalse(g.ContainsEdge(e1));
            g.AddEdge(e1);
            Assert.IsTrue(g.ContainsEdge(e1));
        }
예제 #9
0
        public void testContainsstringNull()
        {
            AdjacencyListGraph <string, string> g = graph();

            g.ContainsNode(null);
        }