package com.jwetherell.algorithms.graph.test;
import java.util.ArrayList;
import java.util.List;
import junit.framework.Assert;
import org.junit.Test;
import com.jwetherell.algorithms.data_structures.Graph;
import com.jwetherell.algorithms.graph.BreadthFirstTraversal;
public class BreadthFirstTraversalTest {
private static final List<Graph.Vertex<Integer>> vertices = new ArrayList<Graph.Vertex<Integer>>();
private static final List<Graph.Edge<Integer>> edges = new ArrayList<Graph.Edge<Integer>>();
private static final Graph.Vertex<Integer> v0 = new Graph.Vertex<Integer>(0);
private static final Graph.Vertex<Integer> v1 = new Graph.Vertex<Integer>(1);
private static final Graph.Vertex<Integer> v2 = new Graph.Vertex<Integer>(2);
private static final Graph.Vertex<Integer> v3 = new Graph.Vertex<Integer>(3);
static {
vertices.add(v0);
vertices.add(v1);
vertices.add(v2);
vertices.add(v3);
edges.add(new Graph.Edge<Integer>(0, v0, v1));
edges.add(new Graph.Edge<Integer>(0, v0, v2));
edges.add(new Graph.Edge<Integer>(0, v1, v2));
edges.add(new Graph.Edge<Integer>(0, v2, v0));
edges.add(new Graph.Edge<Integer>(0, v2, v3));
edges.add(new Graph.Edge<Integer>(0, v3, v3));
}
private static final Graph<Integer> graph = new Graph<Integer>(Graph.TYPE.DIRECTED, vertices, edges);
@Test
public void test1() {
final Graph.Vertex<Integer>[] result = BreadthFirstTraversal.breadthFirstTraversal(graph, v2);
Assert.assertTrue(result[0].getValue()==2);
Assert.assertTrue(result[1].getValue()==0);
Assert.assertTrue(result[2].getValue()==3);
Assert.assertTrue(result[3].getValue()==1);
}
@Test
public void test2() {
final Graph.Vertex<Integer>[] result = BreadthFirstTraversal.breadthFirstTraversal(graph, v0);
Assert.assertTrue(result[0].getValue()==0);
Assert.assertTrue(result[1].getValue()==1);
Assert.assertTrue(result[2].getValue()==2);
Assert.assertTrue(result[3].getValue()==3);
}
}