/****************************************************
* CS2510 Fall 2011
* Lecture #28
* JavaDocs, JUnit
****************************************************/
import java.util.*;
import junit.framework.*;
/**
* JUnit tests for our Graphs and Traversal classes
* @author mattea
*
*/
public class Lecture_28Tests extends TestCase{
Graph g = new Graph();
Vertex va = new Vertex("a");
Vertex vb = new Vertex("b");
Vertex vc = new Vertex("c");
Vertex vd = new Vertex("d");
Vertex ve = new Vertex("e");
Vertex vf = new Vertex("f");
Vertex vg = new Vertex("g");
Vertex vnone = new Vertex("none");
public void setUp(){
g.addEdge(va, vb);
g.addEdge(va, vc);
g.addEdge(vb, vd);
g.addEdge(vc, vd);
g.addEdge(vc, ve);
g.addEdge(ve, vf);
g.addEdge(vg, vf);
}
public void tearDown() {
g.g.clear();
}
/**
* Test our Graph
*/
public void testGraph() {
assertEquals(g.g.containsKey(va),true);
assertEquals(g.g.containsKey(vg),true);
assertEquals(g.g.containsKey(vnone),false);
}
/**
* Test Graph.getEdges(Vertex v)
*/
public void testGetEdges() {
assertEquals(g.getEdges(vg).get(0),new Edge(new Vertex("g"),new Vertex("f")));
ArrayList aedges = new ArrayList();
aedges.add(new Edge(va,vb));
aedges.add(new Edge(va,vc));
Iterator actual = g.getEdges(va).iterator();
for (Edge e : aedges) {
assertEquals(e,actual.next());
}
try {
g.getEdges(vnone);
assertTrue("No Edge Exception",false);
} catch (NoEdgeException e) {
assertTrue("No Edge Exception",true);
}
}
/**
* Test our BFS/DFS Traversals
*/
public void testSearch() {
BFS bfs = new BFS(g);
DFS dfs = new DFS(g);
assertEquals(bfs.fromTo(va, vf), true);
assertEquals(dfs.fromTo(va, vf), true);
assertEquals(bfs.fromTo(vb, vf), false);
assertEquals(dfs.fromTo(vb, vf), false);
assertEquals(bfs.fromTo(vf, vg), false);
assertEquals(dfs.fromTo(vf, vg), false);
}
}