View Javadoc
1   package edu.uci.ics.jung.graph;
2   
3   import junit.framework.TestCase;
4   
5   import com.google.common.base.Supplier;
6   
7   
8   public abstract class AbstractSparseTreeTest extends TestCase {
9   
10  	protected Tree<String,Integer> tree;
11  	protected Supplier<DirectedGraph<String,Integer>> graphFactory;
12  	protected Supplier<Integer> edgeFactory;
13  
14  	public void testRemoveVertex() {
15  		tree.addVertex("A");
16  		tree.addEdge(edgeFactory.get(), "A", "B");
17  		tree.addEdge(edgeFactory.get(), "A", "C");
18  		tree.addEdge(edgeFactory.get(), "B", "E");
19  		tree.addEdge(edgeFactory.get(), "B", "F");
20  //		System.err.println("tree is "+tree);
21  		tree.removeVertex("B");
22  //		System.err.println("tree now "+tree);
23  	}
24  	
25  	public void testSimpleTree() {
26  		tree.addVertex("A");
27  		tree.addEdge(edgeFactory.get(), "A", "B");
28  		tree.addEdge(edgeFactory.get(), "A", "C");
29  	}
30  	
31  	public void testCreateLoop() {
32  		try {
33  			tree.addVertex("A");
34  			tree.addEdge(edgeFactory.get(), "A", "A");
35  			fail("should not be able to addChild(v,v)");
36  		} catch(IllegalArgumentException e) {
37  			// all is well
38  		}
39  		try {
40  			tree.addEdge(edgeFactory.get(), "A", "B");
41  			tree.addEdge(edgeFactory.get(), "B", "A");
42  			fail("should not allow loop");
43  		} catch(IllegalArgumentException e) {
44  			// all is well
45  		}
46  	}
47  	
48  	public void testHeightAndDepth() {
49  		tree.addVertex("V0");
50          assertEquals(tree.getHeight(), 0);
51          assertEquals(tree.getDepth("V0"), 0);
52      	tree.addEdge(edgeFactory.get(), "V0", "V1");
53          assertEquals(tree.getHeight(), 1);
54          assertEquals(tree.getDepth("V1"), 1);
55      	tree.addEdge(edgeFactory.get(), "V0", "V2");
56          assertEquals(tree.getHeight(), 1);
57          assertEquals(tree.getDepth("V2"), 1);
58      	tree.addEdge(edgeFactory.get(), "V1", "V4");
59          assertEquals(tree.getHeight(), 2);
60          assertEquals(tree.getDepth("V4"), 2);
61      	tree.addEdge(edgeFactory.get(), "V2", "V3");
62          assertEquals(tree.getHeight(), 2);
63          assertEquals(tree.getDepth("V3"), 2);
64      	tree.addEdge(edgeFactory.get(), "V2", "V5");
65          assertEquals(tree.getHeight(), 2);
66          assertEquals(tree.getDepth("V5"), 2);
67      	tree.addEdge(edgeFactory.get(), "V4", "V6");
68          assertEquals(tree.getHeight(), 3);
69          assertEquals(tree.getDepth("V6"), 3);
70      	tree.addEdge(edgeFactory.get(), "V4", "V7");
71          assertEquals(tree.getHeight(), 3);
72          assertEquals(tree.getDepth("V7"), 3);
73      	tree.addEdge(edgeFactory.get(), "V3", "V8");
74          assertEquals(tree.getHeight(), 3);
75          assertEquals(tree.getDepth("V8"), 3);
76      	tree.addEdge(edgeFactory.get(), "V6", "V9");
77          assertEquals(tree.getHeight(), 4);
78          assertEquals(tree.getDepth("V9"), 4);
79      	tree.addEdge(edgeFactory.get(), "V4", "V10");
80          assertEquals(tree.getHeight(), 4);
81          assertEquals(tree.getDepth("V10"), 3);
82         	tree.addEdge(edgeFactory.get(), "V4", "V11");
83          assertEquals(tree.getHeight(), 4);
84          assertEquals(tree.getDepth("V11"), 3);
85         	tree.addEdge(edgeFactory.get(), "V4", "V12");
86          assertEquals(tree.getHeight(), 4);
87          assertEquals(tree.getDepth("V12"), 3);
88         	tree.addEdge(edgeFactory.get(), "V6", "V13");
89          assertEquals(tree.getHeight(), 4);
90          assertEquals(tree.getDepth("V13"), 4);
91         	tree.addEdge(edgeFactory.get(), "V10", "V14");
92          assertEquals(tree.getHeight(), 4);
93          assertEquals(tree.getDepth("V14"), 4);
94         	tree.addEdge(edgeFactory.get(), "V13", "V15");
95          assertEquals(tree.getHeight(), 5);
96          assertEquals(tree.getDepth("V15"), 5);
97         	tree.addEdge(edgeFactory.get(), "V13", "V16");
98         	assertEquals(tree.getHeight(), 5);
99          assertEquals(tree.getDepth("V16"), 5);
100 
101 	}
102 	
103 	
104 }