1
2
3
4
5 package baseCode.dataStructure.graph;
6
7 import java.util.ArrayList;
8 import java.util.Collections;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import junit.framework.TestCase;
13 import baseCode.dataStructure.graph.DirectedGraph;
14 import baseCode.dataStructure.graph.DirectedGraphNode;
15
16 /***
17 *
18 * <p>
19 * Copyright (c) Columbia University
20 *
21 * @author Paul Pavlidis
22 * @version $Id: TestDirectedGraph.java,v 1.1 2005/03/17 13:58:43 pavlidis Exp $
23 */
24 public class TestDirectedGraph extends TestCase {
25 DirectedGraph testGraph;
26 DirectedGraph testGraphCycle;
27
28 /***
29 * Constructor for TestDirectedGraph.
30 *
31 * @param arg0
32 */
33 public TestDirectedGraph( String arg0 ) {
34 super( arg0 );
35 testGraph = new DirectedGraph();
36
37 testGraph.addNode( "b", "bee." );
38 testGraph.addNode( "a", "aaa." );
39 testGraph.addNode( "c", "cee." );
40 testGraph.addNode( "d", "dee." );
41 testGraph.addNode( "f", "eff." );
42 testGraph.addNode( "e", "eee." );
43
44 testGraph.addParentTo( "b", "a" );
45 testGraph.addParentTo( "c", "a" );
46 testGraph.addChildTo( "a", "c" );
47 testGraph.addChildTo( "a", "b" );
48
49 testGraph.addChildTo( "c", "d" );
50 testGraph.addChildTo( "c", "e" );
51 testGraph.addParentTo( "f", "c" );
52
53 testGraphCycle = new DirectedGraph();
54
55 testGraphCycle.addNode( "b", "bee." );
56 testGraphCycle.addNode( "a", "aaa." );
57 testGraphCycle.addNode( "c", "cee." );
58 testGraphCycle.addNode( "d", "dee." );
59 testGraphCycle.addNode( "f", "eff." );
60 testGraphCycle.addNode( "e", "eee." );
61
62 testGraphCycle.addParentTo( "b", "a" );
63 testGraphCycle.addParentTo( "c", "a" );
64 testGraphCycle.addChildTo( "a", "c" );
65 testGraphCycle.addChildTo( "a", "b" );
66
67 testGraphCycle.addChildTo( "c", "d" );
68 testGraphCycle.addChildTo( "c", "e" );
69 testGraphCycle.addParentTo( "f", "c" );
70 testGraphCycle.addParentTo( "f", "e" );
71 }
72
73
74
75
76 protected void setUp() throws Exception {
77 super.setUp();
78 }
79
80
81
82
83 protected void tearDown() throws Exception {
84 super.tearDown();
85 }
86
87 public void testToString() {
88 String expectedReturn = "aaa.\n\tbee.\n\tcee.\n\t\tdee.\n\t\teee.\n\t\teff.\n";
89 String actualReturn = testGraph.toString();
90 assertEquals( "return", expectedReturn, actualReturn );
91 }
92
93 public void testTopoSort() {
94 testGraph.topoSort();
95 List nodes = new ArrayList( testGraph.getItems().values() );
96 Collections.sort( nodes );
97 StringBuffer buf = new StringBuffer();
98 for ( Iterator it = nodes.iterator(); it.hasNext(); ) {
99 buf.append( it.next().toString() );
100 }
101 String actualReturn = buf.toString();
102 String expectedReturn = "aaa.bee.cee.dee.eee.eff.";
103
104 assertEquals( "return", expectedReturn, actualReturn );
105 }
106
107 public void testGetChildren() {
108 DirectedGraphNode n = ( DirectedGraphNode ) testGraph.get( "c" );
109 String actualReturn = n.getChildGraph().toString();
110 String expectedReturn = "cee.\n\tdee.\n\teee.\n\teff.\n";
111 assertEquals( "return", expectedReturn, actualReturn );
112 }
113
114 }