blob: e61583d5e166de228eea868ca4dd0253b804e410 [file] [log] [blame]
tome3489412014-08-29 02:30:38 -07001package org.onlab.graph;
2
3import com.google.common.collect.ImmutableSet;
4import com.google.common.testing.EqualsTester;
5import org.junit.Test;
6
7import java.util.Set;
8
9import static org.junit.Assert.assertEquals;
10
11/**
12 * Tests of the graph implementation.
13 */
14public class AdjacencyListsGraphTest {
15
16 private static final TestVertex A = new TestVertex("A");
17 private static final TestVertex B = new TestVertex("B");
18 private static final TestVertex C = new TestVertex("C");
19 private static final TestVertex D = new TestVertex("D");
20 private static final TestVertex E = new TestVertex("E");
21 private static final TestVertex F = new TestVertex("F");
22 private static final TestVertex G = new TestVertex("G");
23
24 private final Set<TestEdge> edges =
25 ImmutableSet.of(new TestEdge(A, B, 1), new TestEdge(A, C, 1),
26 new TestEdge(B, C, 1), new TestEdge(C, D, 1),
27 new TestEdge(D, A, 1));
28
29 @Test
30 public void basics() {
31 Set<TestVertex> vertexes = ImmutableSet.of(A, B, C, D, E, F);
32 AdjacencyListsGraph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(vertexes, edges);
33 assertEquals("incorrect vertex count", 6, graph.getVertexes().size());
34 assertEquals("incorrect edge count", 5, graph.getEdges().size());
35
36 assertEquals("incorrect egress edge count", 2, graph.getEdgesFrom(A).size());
37 assertEquals("incorrect ingress edge count", 1, graph.getEdgesTo(A).size());
38 assertEquals("incorrect ingress edge count", 2, graph.getEdgesTo(C).size());
39 assertEquals("incorrect egress edge count", 1, graph.getEdgesFrom(C).size());
40 }
41
42 @Test
43 public void equality() {
44 Set<TestVertex> vertexes = ImmutableSet.of(A, B, C, D, E, F);
45 Set<TestVertex> vertexes2 = ImmutableSet.of(A, B, C, D, E, F, G);
46
47 AdjacencyListsGraph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(vertexes, edges);
48 AdjacencyListsGraph<TestVertex, TestEdge> same = new AdjacencyListsGraph<>(vertexes, edges);
49 AdjacencyListsGraph<TestVertex, TestEdge> different = new AdjacencyListsGraph<>(vertexes2, edges);
50
51 new EqualsTester()
52 .addEqualityGroup(graph, same)
53 .addEqualityGroup(different)
54 .testEquals();
55 }
56}