Example #1
0
 public void testEmptyPath() {
   List<GraphPath<Integer, DefaultEdge>> paths = new ArrayList<>();
   paths.add(new GraphWalk<>(completeGraph, null, null, Collections.emptyList(), 0));
   paths.add(new GraphWalk<>(completeGraph, Collections.emptyList(), 0));
   for (GraphPath<Integer, DefaultEdge> path : paths) {
     assertEquals(0, path.getLength());
     assertEquals(Collections.emptyList(), path.getVertexList());
     assertEquals(Collections.emptyList(), path.getEdgeList());
   }
 }
 private GraphPart getNextSuperPartPath(
     GraphPart original, GraphPath path, List<GraphPart> visited) {
   if (visited.contains(this)) {
     return null;
   }
   visited.add(this);
   for (GraphPart p : nextParts) {
     if (p == original) {
       continue;
     }
     if (p.path.length() < path.length()) {
       return p;
     } else {
       GraphPart gp = p.getNextSuperPartPath(original, path, visited);
       if (gp != null) {
         return gp;
       }
     }
   }
   return null;
 }
Example #3
0
  public void testNonSimplePath() {
    List<Integer> vertexList = Arrays.asList(0, 1, 2, 3, 2, 3, 4);
    List<DefaultEdge> edgeList = new ArrayList<>();
    for (int i = 0; i < vertexList.size() - 1; i++)
      edgeList.add(completeGraph.getEdge(vertexList.get(i), vertexList.get(i + 1)));
    GraphPath<Integer, DefaultEdge> p1 = new GraphWalk<>(completeGraph, 0, 4, edgeList, 10);
    assertEquals(0, p1.getStartVertex().intValue());
    assertEquals(4, p1.getEndVertex().intValue());
    assertEquals(vertexList, p1.getVertexList());
    assertEquals(edgeList.size(), p1.getLength());
    assertEquals(10.0, p1.getWeight());

    GraphPath<Integer, DefaultEdge> p2 = new GraphWalk<>(completeGraph, vertexList, 10);
    assertEquals(0, p2.getStartVertex().intValue());
    assertEquals(4, p2.getEndVertex().intValue());
    assertEquals(edgeList, p2.getEdgeList());
    assertEquals(edgeList.size(), p2.getLength());
    assertEquals(10.0, p2.getWeight());
  }