1 package test.prefuse.data; 2 3 import java.net.URL ; 4 import java.util.Iterator ; 5 import java.util.zip.GZIPInputStream ; 6 7 import javax.swing.JFrame ; 8 import javax.swing.JScrollPane ; 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 TREE_CHI = "/chi-ontology.xml.gz"; 23 24 public void testTreeReader() { 25 URL url = TreeMap.class.getResource(TREE_CHI); 27 Tree t = null; 28 try { 29 GZIPInputStream gzin = new GZIPInputStream (url.openStream()); 30 t = (Tree) new TreeMLReader().readGraph(gzin); 31 } catch ( Exception e ) { 32 e.printStackTrace(); 33 fail(); 34 } 35 36 assertEquals(true, t.isValidTree()); 37 38 Node[] nodelist = new Node[t.getNodeCount()]; 39 40 Iterator 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 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 [] argv) { 96 URL url = TreeMap.class.getResource(TREE_CHI); 97 Tree t = null; 98 try { 99 GZIPInputStream gzin = new GZIPInputStream (url.openStream()); 100 t = (Tree) new TreeMLReader().readGraph(gzin); 101 } catch ( Exception e ) { 102 e.printStackTrace(); 103 System.exit(1); 104 } 105 106 JPrefuseTable table = new JPrefuseTable(t.getEdgeTable()); 107 JFrame frame = new JFrame ("edges"); 108 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 109 frame.getContentPane().add(new JScrollPane (table)); 110 frame.pack(); 111 frame.setVisible(true); 112 } 113 114 } 115 | Popular Tags |