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/DepthFirstSearchTest.java b/utils/misc/src/test/java/org/onlab/graph/DepthFirstSearchTest.java
index e164f7e..e855b33 100644
--- a/utils/misc/src/test/java/org/onlab/graph/DepthFirstSearchTest.java
+++ b/utils/misc/src/test/java/org/onlab/graph/DepthFirstSearchTest.java
@@ -36,24 +36,25 @@
@Test
public void defaultGraphTest() {
- executeDefaultTest(3, 6, 5.0, 12.0);
+ executeDefaultTest(3, 6, new TestDoubleWeight(5.0), new TestDoubleWeight(12.0));
executeBroadSearch();
}
@Test
public void defaultHopCountWeight() {
- weight = null;
- executeDefaultTest(3, 6, 3.0, 6.0);
+ weigher = null;
+ executeDefaultTest(3, 6, new ScalarWeight(3.0), new ScalarWeight(6.0));
executeBroadSearch();
}
protected void executeDefaultTest(int minLength, int maxLength,
- double minCost, double maxCost) {
+ Weight minCost, Weight maxCost) {
graph = new AdjacencyListsGraph<>(vertexes(), edges());
DepthFirstSearch<TestVertex, TestEdge> search = graphSearch();
DepthFirstSearch<TestVertex, TestEdge>.SpanningTreeResult result =
- search.search(graph, A, H, weight, 1);
+ (DepthFirstSearch<TestVertex, TestEdge>.SpanningTreeResult)
+ search.search(graph, A, H, weigher, 1);
Set<Path<TestVertex, TestEdge>> paths = result.paths();
assertEquals("incorrect path count", 1, paths.size());
@@ -66,7 +67,8 @@
assertTrue("incorrect path length " + l,
minLength <= l && l <= maxLength);
assertTrue("incorrect path cost " + path.cost(),
- minCost <= path.cost() && path.cost() <= maxCost);
+ path.cost().compareTo(minCost) >= 0 &&
+ path.cost().compareTo(maxCost) <= 0);
System.out.println(result.edges());
printPaths(paths);
@@ -78,7 +80,8 @@
// Perform narrow path search to a specific destination.
DepthFirstSearch<TestVertex, TestEdge>.SpanningTreeResult result =
- search.search(graph, A, null, weight, ALL_PATHS);
+ (DepthFirstSearch<TestVertex, TestEdge>.SpanningTreeResult)
+ search.search(graph, A, null, weigher, ALL_PATHS);
assertEquals("incorrect paths count", 7, result.paths().size());
int[] types = new int[]{0, 0, 0, 0};