aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/utils/misc/src/test/java/org/onlab/graph/SrlgGraphSearchTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/utils/misc/src/test/java/org/onlab/graph/SrlgGraphSearchTest.java')
-rw-r--r--framework/src/onos/utils/misc/src/test/java/org/onlab/graph/SrlgGraphSearchTest.java174
1 files changed, 0 insertions, 174 deletions
diff --git a/framework/src/onos/utils/misc/src/test/java/org/onlab/graph/SrlgGraphSearchTest.java b/framework/src/onos/utils/misc/src/test/java/org/onlab/graph/SrlgGraphSearchTest.java
deleted file mode 100644
index 26d50364..00000000
--- a/framework/src/onos/utils/misc/src/test/java/org/onlab/graph/SrlgGraphSearchTest.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onlab.graph;
-
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import static com.google.common.collect.ImmutableSet.of;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.onlab.graph.GraphPathSearch.ALL_PATHS;
-
-/**
- * Test of the Suurballe backup path algorithm.
- */
-public class SrlgGraphSearchTest extends BreadthFirstSearchTest {
-
- @Override
- protected AbstractGraphPathSearch<TestVertex, TestEdge> graphSearch() {
- return new SrlgGraphSearch<>(null);
- }
-
- public void setDefaultWeights() {
- weight = null;
- }
-
- @Override
- public void defaultGraphTest() {
- }
-
- @Override
- public void defaultHopCountWeight() {
- }
-
- @Test
- public void onePathPair() {
- setDefaultWeights();
- TestEdge aB = new TestEdge(A, B, 1);
- TestEdge bC = new TestEdge(B, C, 1);
- TestEdge aD = new TestEdge(A, D, 1);
- TestEdge dC = new TestEdge(D, C, 1);
- Graph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(of(A, B, C, D),
- of(aB, bC, aD, dC));
- Map<TestEdge, Integer> riskProfile = new HashMap<>();
- riskProfile.put(aB, 0);
- riskProfile.put(bC, 0);
- riskProfile.put(aD, 1);
- riskProfile.put(dC, 1);
- SrlgGraphSearch<TestVertex, TestEdge> search = new SrlgGraphSearch<>(2, riskProfile);
- Set<Path<TestVertex, TestEdge>> paths = search.search(graph, A, C, weight, ALL_PATHS).paths();
- System.out.println("\n\n\n" + paths + "\n\n\n");
- assertEquals("one disjoint path pair found", 1, paths.size());
- checkIsDisjoint(paths.iterator().next(), riskProfile);
- }
-
- public void checkIsDisjoint(Path<TestVertex, TestEdge> p, Map<TestEdge, Integer> risks) {
- assertTrue("The path is not a DisjointPathPair", (p instanceof DisjointPathPair));
- DisjointPathPair<TestVertex, TestEdge> q = (DisjointPathPair) p;
- Set<Integer> p1Risks = new HashSet<>();
- for (TestEdge e : q.edges()) {
- p1Risks.add(risks.get(e));
- }
- if (!q.hasBackup()) {
- return;
- }
- Path<TestVertex, TestEdge> pq = q.secondary();
- for (TestEdge e: pq.edges()) {
- assertTrue("The paths are not disjoint", !p1Risks.contains(risks.get(e)));
- }
- }
-
- @Test
- public void complexGraphTest() {
- setDefaultWeights();
- TestEdge aB = new TestEdge(A, B, 1);
- TestEdge bC = new TestEdge(B, C, 1);
- TestEdge aD = new TestEdge(A, D, 1);
- TestEdge dC = new TestEdge(D, C, 1);
- TestEdge cE = new TestEdge(C, E, 1);
- TestEdge bE = new TestEdge(B, E, 1);
- Graph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(of(A, B, C, D, E),
- of(aB, bC, aD, dC, cE, bE));
- Map<TestEdge, Integer> riskProfile = new HashMap<>();
- riskProfile.put(aB, 0);
- riskProfile.put(bC, 0);
- riskProfile.put(aD, 1);
- riskProfile.put(dC, 1);
- riskProfile.put(cE, 2);
- riskProfile.put(bE, 3);
- SrlgGraphSearch<TestVertex, TestEdge> search = new SrlgGraphSearch<>(4, riskProfile);
- search.search(graph, A, E, weight, ALL_PATHS).paths();
- }
-
- @Test
- public void multiplePathGraphTest() {
- setDefaultWeights();
- TestEdge aB = new TestEdge(A, B, 1);
- TestEdge bE = new TestEdge(B, E, 1);
- TestEdge aD = new TestEdge(A, D, 1);
- TestEdge dE = new TestEdge(D, E, 1);
- TestEdge aC = new TestEdge(A, C, 1);
- TestEdge cE = new TestEdge(C, E, 1);
- Graph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(of(A, B, C, D, E),
- of(aB, bE, aD, dE, aC, cE));
- Map<TestEdge, Integer> riskProfile = new HashMap<>();
- riskProfile.put(aB, 0);
- riskProfile.put(bE, 1);
- riskProfile.put(aD, 2);
- riskProfile.put(dE, 3);
- riskProfile.put(aC, 4);
- riskProfile.put(cE, 5);
- SrlgGraphSearch<TestVertex, TestEdge> search = new SrlgGraphSearch<>(6, riskProfile);
- Set<Path<TestVertex, TestEdge>> paths = search.search(graph, A, E, weight, ALL_PATHS).paths();
- assertTrue("> one disjoint path pair found", paths.size() >= 1);
- checkIsDisjoint(paths.iterator().next(), riskProfile);
- }
-
- @Test
- public void onePath() {
- setDefaultWeights();
- TestEdge aB = new TestEdge(A, B, 1);
- TestEdge bC = new TestEdge(B, C, 1);
- TestEdge aD = new TestEdge(A, D, 1);
- TestEdge dC = new TestEdge(D, C, 1);
- Graph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(of(A, B, C, D),
- of(aB, bC, aD, dC));
- Map<TestEdge, Integer> riskProfile = new HashMap<>();
- riskProfile.put(aB, 0);
- riskProfile.put(bC, 0);
- riskProfile.put(aD, 1);
- riskProfile.put(dC, 0);
- SrlgGraphSearch<TestVertex, TestEdge> search = new SrlgGraphSearch<>(2, riskProfile);
- Set<Path<TestVertex, TestEdge>> paths = search.search(graph, A, C, weight, ALL_PATHS).paths();
- System.out.println(paths);
- assertTrue("no disjoint path pairs found", paths.size() == 0);
- }
-
- @Test
- public void noPath() {
- setDefaultWeights();
- TestEdge aB = new TestEdge(A, B, 1);
- TestEdge bC = new TestEdge(B, C, 1);
- TestEdge aD = new TestEdge(A, D, 1);
- TestEdge dC = new TestEdge(D, C, 1);
- Graph<TestVertex, TestEdge> graph = new AdjacencyListsGraph<>(of(A, B, C, D, E),
- of(aB, bC, aD, dC));
- Map<TestEdge, Integer> riskProfile = new HashMap<>();
- riskProfile.put(aB, 0);
- riskProfile.put(bC, 0);
- riskProfile.put(aD, 1);
- riskProfile.put(dC, 0);
- SrlgGraphSearch<TestVertex, TestEdge> search = new SrlgGraphSearch<>(2, riskProfile);
- Set<Path<TestVertex, TestEdge>> paths = search.search(graph, A, E, weight, ALL_PATHS).paths();
- assertTrue("no disjoint path pairs found", paths.size() == 0);
- }
-}