Note that you will not receive any points for this part if you only use the tests below.
You must add your own tests as per the assignment page to receive credit.
import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;import java.util.List;import java.util.ArrayList;public class GraphUnitTests {Graph g1;Graph g2; @Before public void init() { initG1(); initG2(); } // graph from assignment page private void initG1() { // make sure vertices start at 0 DefaultGraphVertex.resetIDCounter(); g1 = new DirectedGraph(); // add 4 vertices for ( int i = 0; i < 4; i++ ) { g1.addVertex(new DefaultGraphVertex()); } // add the edges int[] sources = {0,1,1,2,3,3}; int[] targets = {1,2,3,3,0,1}; // for each edge for ( int i = 0; i < sources.length; i++ ) { g1.addEdge(sources[i], targets[i]); } } // graph with traversals that are more interesting private void initG2() {// make sure vertices start at 0 DefaultGraphVertex.resetIDCounter(); g2 = new DirectedGraph(); // add 4 vertices for ( int i = 0; i < 5; i++ ) { g2.addVertex(new DefaultGraphVertex()); } // add the edges int[] sources = {0,0,0,1,3,4}; int[] targets = {1,2,4,3,4,1}; // for each edge for ( int i = 0; i < sources.length; i++ ) { g2.addEdge(sources[i], targets[i]); } } @Test public void numVerticesTest() { // the number of vertices is 4 assertEquals("number of vertices test", 4, g1.numVertices()); } @Test public void numEdgesTest() { // the number of edges is 6 assertEquals("number of edges test", 6, g1.numEdges()); } @Test public void addVertexTest() { g1.addVertex(new DefaultGraphVertex()); // the number of vertices is now 5 assertEquals("add vertex test", 5, g1.numVertices()); } @Test public void graphStringTest() { System.out.println(g1.toString()); assertEquals("graph string test", "((0,1,2,3),(0->1,1->2,1->3,2->3,3->0,3->1))", g1.toString()); } @Test public void df1_0Test() { int[] traversalOrder = {0,1,2,3}; List<GraphVertex> traversal = createTraversalList( g1, traversalOrder ); System.out.println( "traversal is: " + g1.depthFirst(0).toString()); assertEquals("DF traversal from 0 in G1 test", traversal, g1.depthFirst(0)); } @Test public void df1_2Test() { int[] traversalOrder = {2,3,0,1}; List<GraphVertex> traversal = createTraversalList( g1, traversalOrder ); System.out.println( "traversal is: " + g1.depthFirst(2).toString()); assertEquals("DF traversal from 2 in G1 test", traversal, g1.depthFirst(2)); } @Test public void bf1_0Test() { int[] traversalOrder = {0,1,2,3}; List<GraphVertex> traversal = createTraversalList( g1, traversalOrder ); System.out.println( "traversal is: " + g1.breadthFirst(0).toString()); assertEquals("BF traversal from 0 in G1 test", traversal, g1.breadthFirst(0)); } @Test public void bf1_2Test() { int[] traversalOrder = {2,3,0,1}; List<GraphVertex> traversal = createTraversalList( g1, traversalOrder ); System.out.println( "traversal is: " + g1.depthFirst(0).toString()); assertEquals("BF traversal from 2 in G1 test", traversal, g1.breadthFirst(2)); } @Test public void df2_0Test() { int[] traversalOrder = {0,1,3,4,2}; List<GraphVertex> traversal = createTraversalList( g2, traversalOrder ); System.out.println( "traversal is: " + g2.depthFirst(0).toString()); assertEquals("DF traversal from 0 in G2 test", traversal, g2.depthFirst(0)); } @Test public void bf2_0Test() { int[] traversalOrder = {0,1,2,4,3}; List<GraphVertex> traversal = createTraversalList( g2, traversalOrder ); System.out.println( "traversal is: " + g2.breadthFirst(0).toString()); assertEquals("DF traversal from 0 in G2 test", traversal, g2.breadthFirst(0)); } /** * Helper method to create a list of GraphVertex objects corresponding * to the traversal order (of IDs) given. */ private List<GraphVertex> createTraversalList( Graph g, int[] traversalOrder ) { // for the traversal List<GraphVertex> traversal = new ArrayList<GraphVertex>(); // for each ID in the traversalOrder array for ( int i = 0; i < traversalOrder.length; i++ ) { // add the corresponding GraphVertex object traversal.add( g.getVertex( traversalOrder[i] ) ); } // return the list return traversal; }}