KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > prefuse > data > TreeTest


1 package test.prefuse.data;
2
3 import java.net.URL JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.zip.GZIPInputStream JavaDoc;
6
7 import javax.swing.JFrame JavaDoc;
8 import javax.swing.JScrollPane JavaDoc;
9
10 import junit.framework.TestCase;
11 import prefuse.data.Edge;
12 import prefuse.data.Node;
13 import prefuse.data.Tree;
14 import prefuse.data.io.TreeMLReader;
15 import prefuse.data.util.TreeNodeIterator;
16 import prefuse.demos.TreeMap;
17 import prefuse.util.GraphLib;
18 import prefuse.util.ui.JPrefuseTable;
19
20 public class TreeTest extends TestCase {
21
22     public static final String JavaDoc TREE_CHI = "/chi-ontology.xml.gz";
23     
24     public void testTreeReader() {
25         // load tree
26
URL JavaDoc url = TreeMap.class.getResource(TREE_CHI);
27         Tree t = null;
28         try {
29             GZIPInputStream JavaDoc gzin = new GZIPInputStream JavaDoc(url.openStream());
30             t = (Tree) new TreeMLReader().readGraph(gzin);
31         } catch ( Exception JavaDoc e ) {
32             e.printStackTrace();
33             fail();
34         }
35         
36         assertEquals(true, t.isValidTree());
37         
38         Node[] nodelist = new Node[t.getNodeCount()];
39         
40         Iterator JavaDoc nodes = t.nodes();
41         for ( int i=0; nodes.hasNext(); ++i ) {
42             nodelist[i] = (Node)nodes.next();
43         }
44         assertEquals(false, nodes.hasNext());
45     }
46     
47     public void testAddChild() {
48         Tree tree = GraphLib.getBalancedTree(2,1);
49         Node r = tree.getRoot();
50         Node n = tree.addChild(r);
51         assertEquals(true, n!=null);
52         n.setString("label", "new node");
53         assertEquals(r.getLastChild(), n);
54     }
55     
56     public void testRemoveChild() {
57         Tree tree = GraphLib.getBalancedTree(2,1);
58         int size = tree.getNodeCount();
59         Node r = tree.getRoot();
60         Node c = r.getFirstChild();
61         Edge e = c.getParentEdge();
62         
63         assertEquals(true, tree.removeChild(c));
64         assertEquals(tree.getNodeCount(), size-1);
65         assertEquals(false, c.isValid());
66         assertEquals(false, e.isValid());
67         assertEquals(true, r.getFirstChild() != c);
68     }
69     
70     public void testRemoveSubtree() {
71         Tree tree = GraphLib.getBalancedTree(3,3);
72         int size = tree.getNodeCount();
73         Node r = tree.getRoot();
74         Node c = r.getFirstChild();
75         
76         Node[] nodes = new Node[13];
77         Edge[] edges = new Edge[13];
78         Iterator JavaDoc iter = new TreeNodeIterator(c);
79         for ( int i=0; iter.hasNext(); ++i ) {
80             nodes[i] = (Node)iter.next();
81             edges[i] = (Edge)nodes[i].getParentEdge();
82         }
83         
84         assertEquals(true, tree.removeChild(c));
85         assertEquals(tree.getNodeCount(), size-13);
86         assertEquals(true, r.getFirstChild() != c);
87         for ( int i=0; i<nodes.length; ++i ) {
88             assertEquals(false, nodes[i].isValid());
89             assertEquals(false, edges[i].isValid());
90         }
91         
92         assertEquals(true, tree.isValidTree());
93     }
94     
95     public static void main(String JavaDoc[] argv) {
96         URL JavaDoc url = TreeMap.class.getResource(TREE_CHI);
97         Tree t = null;
98         try {
99             GZIPInputStream JavaDoc gzin = new GZIPInputStream JavaDoc(url.openStream());
100             t = (Tree) new TreeMLReader().readGraph(gzin);
101         } catch ( Exception JavaDoc e ) {
102             e.printStackTrace();
103             System.exit(1);
104         }
105         
106         JPrefuseTable table = new JPrefuseTable(t.getEdgeTable());
107         JFrame JavaDoc frame = new JFrame JavaDoc("edges");
108         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
109         frame.getContentPane().add(new JScrollPane JavaDoc(table));
110         frame.pack();
111         frame.setVisible(true);
112     }
113     
114 }
115
Popular Tags