Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lab1;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import graph.Graph;
- import graph.SimpleGraph;
- public class Lab1 {
- /**
- * Returns the number of vertices in the graph g.
- */
- public static int vertexCount(Graph<Integer> g) {
- // TODO(D1): implement this!
- return g.vertexCount();
- }
- /**
- * Returns the number of edges in the graph g.
- */
- public static int edgeCount(Graph<Integer> g) {
- // TODO(D2): implement this!
- int edges = 0;
- Collection<Integer> list = g.vertexSet();
- for (Integer i : list) {
- edges += g.neighbours(i).size();
- }
- return edges;
- }
- /**
- * Returns true if there is an edge from vertex u to vertex v. Returns false if
- * u and v are not connected or if there is only an edge from v to u.
- *
- * @param g a graph containing u and v
- * @param u index of the first vertex in g
- * @param v index of the second vertex in g
- */
- public static boolean edgeBetween(Graph<Integer> g, int u, int v) {
- // TODO(D3): implement this!
- Collection<Integer> list = g.neighbours(u);
- for (Integer i : list) {
- if (i.equals(v)) {
- return true;
- }
- }
- return false;
- }
- /**
- * Returns a simple graph with at least 6 vertices and at least 10 edges.
- */
- public static Graph<Integer> buildGraph() {
- // TODO(D5): implement this!
- Graph<Integer> graph = new SimpleGraph(7, new int[][] {
- {0, 1},
- {0, 2},
- {1, 2},
- {2, 3},
- {3, 4},
- {4, 5},
- {4, 2},
- {5, 6},
- {6, 0},
- {6, 1},
- });
- return graph;
- }
- }
- ///////////////////////////NEW CLASS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- package lab1;
- import graph.Graph;
- import graph.SimpleGraph;
- import org.junit.Test;
- import static com.google.common.truth.Truth.assertThat;
- public class TestEdgeBetween {
- @Test public void singleEdge() {
- Graph<Integer> g = new SimpleGraph(10, new int[][] {{4, 7}});
- assertThat(Lab1.edgeBetween(g, 4, 7)).isTrue();
- assertThat(Lab1.edgeBetween(g, 7, 4)).isFalse();
- }
- @Test public void simplePath() {
- Graph<Integer> g = new SimpleGraph(5, new int[][] {
- {0, 1},
- {1, 2},
- {2, 3},
- {3, 4},
- });
- assertThat(Lab1.edgeBetween(g, 0, 1)).isTrue();
- assertThat(Lab1.edgeBetween(g, 1, 2)).isTrue();
- assertThat(Lab1.edgeBetween(g, 2, 3)).isTrue();
- assertThat(Lab1.edgeBetween(g, 3, 4)).isTrue();
- assertThat(Lab1.edgeBetween(g, 4, 0)).isFalse();
- assertThat(Lab1.edgeBetween(g, 0, 2)).isFalse();
- assertThat(Lab1.edgeBetween(g, 0, 3)).isFalse();
- assertThat(Lab1.edgeBetween(g, 0, 4)).isFalse();
- assertThat(Lab1.edgeBetween(g, 1, 0)).isFalse();
- assertThat(Lab1.edgeBetween(g, 2, 0)).isFalse();
- assertThat(Lab1.edgeBetween(g, 3, 2)).isFalse();
- assertThat(Lab1.edgeBetween(g, 4, 1)).isFalse();
- }
- @Test public void loop() {
- Graph<Integer> g = new SimpleGraph(5, new int[][] {
- {0, 1},
- {1, 2},
- {2, 3},
- {3, 4},
- {4, 0}
- });
- assertThat(Lab1.edgeBetween(g, 0, 1)).isTrue();
- assertThat(Lab1.edgeBetween(g, 1, 2)).isTrue();
- assertThat(Lab1.edgeBetween(g, 2, 3)).isTrue();
- assertThat(Lab1.edgeBetween(g, 3, 4)).isTrue();
- assertThat(Lab1.edgeBetween(g, 4, 0)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 2)).isFalse();
- assertThat(Lab1.edgeBetween(g, 0, 3)).isFalse();
- assertThat(Lab1.edgeBetween(g, 0, 4)).isFalse();
- assertThat(Lab1.edgeBetween(g, 1, 0)).isFalse();
- assertThat(Lab1.edgeBetween(g, 2, 0)).isFalse();
- assertThat(Lab1.edgeBetween(g, 3, 2)).isFalse();
- assertThat(Lab1.edgeBetween(g, 4, 1)).isFalse();
- }
- @Test public void empty() {
- Graph<Integer> g = new SimpleGraph(0, new int[][] {
- });
- assertThat(g.vertexCount() == 0);
- assertThat(Lab1.edgeBetween(g, 0, 1)).isFalse();
- assertThat(Lab1.edgeBetween(g, 1, 2)).isFalse();
- assertThat(Lab1.edgeBetween(g, 2, 1)).isFalse();
- }
- @Test public void edgeBetweenSelf() {
- Graph<Integer> g = new SimpleGraph(6, new int[][] {
- {0, 1},
- {1, 2},
- {2, 3},
- {3, 4},
- {4, 0}
- });
- assertThat(Lab1.edgeBetween(g, 0, 1)).isTrue();
- assertThat(Lab1.edgeBetween(g, 3, 4)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 0)).isFalse();
- assertThat(Lab1.edgeBetween(g, 1, 1)).isFalse();
- assertThat(Lab1.edgeBetween(g, 2, 2)).isFalse();
- }
- @Test public void manyEdges() {
- Graph<Integer> g = new SimpleGraph(6, new int[][] {
- {0, 1},
- {0, 2},
- {0, 3},
- {0, 4},
- {0, 5}
- });
- assertThat(Lab1.edgeBetween(g, 0, 1)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 2)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 3)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 4)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 5)).isTrue();
- assertThat(Lab1.edgeBetween(g, 0, 6)).isFalse();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement