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);