Vector cost proposed to TST on 2016-07-13
First part implemented: weight interface introduced and integrated, default weight implementation added.
Change-Id: Ia46f1b44139069aa171a3c13faf168351bd7cc56
diff --git a/utils/misc/src/test/java/org/onlab/graph/TarjanGraphSearchTest.java b/utils/misc/src/test/java/org/onlab/graph/TarjanGraphSearchTest.java
index 2b6dec0..a3f47f5 100644
--- a/utils/misc/src/test/java/org/onlab/graph/TarjanGraphSearchTest.java
+++ b/utils/misc/src/test/java/org/onlab/graph/TarjanGraphSearchTest.java
@@ -49,14 +49,14 @@
@Test
public void singleCluster() {
graph = new AdjacencyListsGraph<>(vertexes(),
- of(new TestEdge(A, B, 1),
- new TestEdge(B, C, 1),
- new TestEdge(C, D, 1),
- new TestEdge(D, E, 1),
- new TestEdge(E, F, 1),
- new TestEdge(F, G, 1),
- new TestEdge(G, H, 1),
- new TestEdge(H, A, 1)));
+ of(new TestEdge(A, B),
+ new TestEdge(B, C),
+ new TestEdge(C, D),
+ new TestEdge(D, E),
+ new TestEdge(E, F),
+ new TestEdge(F, G),
+ new TestEdge(G, H),
+ new TestEdge(H, A)));
TarjanGraphSearch<TestVertex, TestEdge> gs = new TarjanGraphSearch<>();
SccResult<TestVertex, TestEdge> result = gs.search(graph, null);
@@ -67,14 +67,14 @@
@Test
public void twoUnconnectedCluster() {
graph = new AdjacencyListsGraph<>(vertexes(),
- of(new TestEdge(A, B, 1),
- new TestEdge(B, C, 1),
- new TestEdge(C, D, 1),
- new TestEdge(D, A, 1),
- new TestEdge(E, F, 1),
- new TestEdge(F, G, 1),
- new TestEdge(G, H, 1),
- new TestEdge(H, E, 1)));
+ of(new TestEdge(A, B),
+ new TestEdge(B, C),
+ new TestEdge(C, D),
+ new TestEdge(D, A),
+ new TestEdge(E, F),
+ new TestEdge(F, G),
+ new TestEdge(G, H),
+ new TestEdge(H, E)));
TarjanGraphSearch<TestVertex, TestEdge> gs = new TarjanGraphSearch<>();
SccResult<TestVertex, TestEdge> result = gs.search(graph, null);
validate(result, 2);
@@ -85,15 +85,15 @@
@Test
public void twoWeaklyConnectedClusters() {
graph = new AdjacencyListsGraph<>(vertexes(),
- of(new TestEdge(A, B, 1),
- new TestEdge(B, C, 1),
- new TestEdge(C, D, 1),
- new TestEdge(D, A, 1),
- new TestEdge(E, F, 1),
- new TestEdge(F, G, 1),
- new TestEdge(G, H, 1),
- new TestEdge(H, E, 1),
- new TestEdge(B, E, 1)));
+ of(new TestEdge(A, B),
+ new TestEdge(B, C),
+ new TestEdge(C, D),
+ new TestEdge(D, A),
+ new TestEdge(E, F),
+ new TestEdge(F, G),
+ new TestEdge(G, H),
+ new TestEdge(H, E),
+ new TestEdge(B, E)));
TarjanGraphSearch<TestVertex, TestEdge> gs = new TarjanGraphSearch<>();
SccResult<TestVertex, TestEdge> result = gs.search(graph, null);
validate(result, 2);
@@ -104,19 +104,21 @@
@Test
public void twoClustersConnectedWithIgnoredEdges() {
graph = new AdjacencyListsGraph<>(vertexes(),
- of(new TestEdge(A, B, 1),
- new TestEdge(B, C, 1),
- new TestEdge(C, D, 1),
- new TestEdge(D, A, 1),
- new TestEdge(E, F, 1),
- new TestEdge(F, G, 1),
- new TestEdge(G, H, 1),
- new TestEdge(H, E, 1),
- new TestEdge(B, E, -1),
- new TestEdge(E, B, -1)));
+ of(new TestEdge(A, B),
+ new TestEdge(B, C),
+ new TestEdge(C, D),
+ new TestEdge(D, A),
+ new TestEdge(E, F),
+ new TestEdge(F, G),
+ new TestEdge(G, H),
+ new TestEdge(H, E),
+ new TestEdge(B, E,
+ weigher.getNonViableWeight()),
+ new TestEdge(E, B,
+ weigher.getNonViableWeight())));
TarjanGraphSearch<TestVertex, TestEdge> gs = new TarjanGraphSearch<>();
- SccResult<TestVertex, TestEdge> result = gs.search(graph, weight);
+ SccResult<TestVertex, TestEdge> result = gs.search(graph, weigher);
validate(result, 2);
validate(result, 0, 4, 4);
validate(result, 1, 4, 4);