9import static org.junit.Assert.*;
22 assertSame(n0.
graph(),g);
23 assertSame(n1.
graph(),g);
24 assertSame(n2.
graph(),g);
32 assertSame(e0.
graph(),g);
33 assertSame(e1.
graph(),g);
34 assertSame(e2.
graph(),g);
35 assertSame(e3.
graph(),g);
37 assertSame(e0.
source(),n0);
38 assertSame(e1.
source(),n1);
39 assertSame(e2.
source(),n0);
40 assertSame(e3.
source(),n2);
47 assertSame(g.
getEdge(n0,n1),e0);
48 assertSame(g.
getEdge(n1,n0),e1);
49 assertSame(g.
getEdge(n0,n2),e2);
50 assertSame(g.
getEdge(n2,n1),e3);
54 TreeSet<SimpleNode> nodes=
new TreeSet<SimpleNode>();
56 boolean b=nodes.add(node);
59 assertSame(nodes.size(),3);
60 assertTrue(nodes.contains(n0));
61 assertTrue(nodes.contains(n1));
62 assertTrue(nodes.contains(n2));
64 TreeSet<SimpleEdge> edges=
new TreeSet<SimpleEdge>();
66 boolean b=edges.add(edge);
69 assertSame(edges.size(),4);
70 assertTrue(edges.contains(e0));
71 assertTrue(edges.contains(e1));
72 assertTrue(edges.contains(e2));
73 assertTrue(edges.contains(e3));
77 assertSame(out.
size(),2);
78 assertTrue(out.
at(0)==e0 || out.
at(1)==e2);
79 assertTrue(out.
at(1)==e0 || out.
at(1)==e2);
83 assertSame(in.
size(),1);
84 assertSame(in.
at(0),e1);
98 assertSame(out.
size(),1);
99 assertSame(out.
at(0),e2);
103 assertSame(in.
size(),1);
104 assertSame(in.
at(0),e3);
121 assertTrue(nodes.contains(node));
126 assertTrue(edges.contains(edge));
142 assertSame(n0.
graph(),g);
143 assertSame(n1.
graph(),g);
144 assertSame(n2.
graph(),g);
149 assertSame(e0.
graph(),g);
150 assertSame(e1.
graph(),g);
152 assertSame(g.
getEdge(n0,n1),e0);
153 assertSame(g.
getEdge(n1,n0),e0);
154 assertSame(g.
getEdge(n1,n2),e1);
155 assertSame(g.
getEdge(n2,n1),e1);
159 TreeSet<SimpleNode> nodes=
new TreeSet<SimpleNode>();
161 boolean b=nodes.add(node);
164 assertSame(nodes.size(),3);
165 assertTrue(nodes.contains(n0));
166 assertTrue(nodes.contains(n1));
167 assertTrue(nodes.contains(n2));
169 TreeSet<SimpleEdge> edges=
new TreeSet<SimpleEdge>();
171 boolean b=edges.add(edge);
174 assertSame(edges.size(),2);
175 assertTrue(edges.contains(e0));
176 assertTrue(edges.contains(e1));
180 assertSame(out.
size(),1);
181 assertTrue(out.
at(0)==e0);
185 assertSame(in.
size(),1);
186 assertSame(in.
at(0),e0);
201 assertSame(out.
size(),0);
205 assertSame(in.
size(),0);
210 assertSame(out.
size(),1);
211 assertSame(out.
at(0),e1);
215 assertSame(in.
size(),1);
216 assertSame(in.
at(0),e1);
229 assertTrue(nodes.contains(node));
248 @Test(expected=IllegalArgumentException.class)
259 @Test(expected=RuntimeException.class)
269 @Test(expected=RuntimeException.class)
279 public static void main(String args[]) {
280 org.junit.runner.JUnitCore.main(
"aud.test.GraphTest");
Implementation of an array-based vector.
T at(int i)
get i-th entry [O(1)]
int size()
get number of entries [O(1)]
AbstractNode source()
Get source node.
AbstractGraph<? extends AbstractNode,? extends AbstractEdge > graph()
get graph
AbstractNode destination()
get destination node
int getOutDegree(Node node)
get number of edges emanating from node
int getDegree(Node node)
Get total degree.
abstract Edge addEdge(Node source, Node destination)
Create and add new edge from source to destination.
abstract int getNumNodes()
get number of nodes
abstract boolean isDirected()
Is graph directed?
abstract Vector< Edge > getInEdges(Node node)
Get incident edges of node.
int getInDegree(Node node)
get number of edges incident to node
abstract Node addNode()
create and add new node
abstract void removeNode(Node node)
Remove node and all its incident and excident edges.
abstract Vector< Edge > getOutEdges(Node node)
Get incident edges of node.
abstract Node getSomeNode()
Get some node.
abstract void removeEdge(Edge edge)
Remove edge.
abstract Edge getEdge(Node source, Node destination)
Get edge from source to destination.
Edges edges()
Get Edges instance to obtain iterator.
AbstractGraph<? extends AbstractNode,? extends AbstractEdge > graph()
get graph
Graph implementation based on adjacency matrix.
Edge addEdge(Node source, Node destination)
static void main(String args[])
void testUndirectedGraph(AbstractGraph< SimpleNode, SimpleEdge > g)
void testDirectedGraph(AbstractGraph< SimpleNode, SimpleEdge > g)
Graph data structures and algorithms.
AuD lecture: Data structures, algorithms, examples.