Program: 154958
Project: 154958
Buggy source:
@Ignore @Test public void canGetMultiplePathsInASmallRoadNetwork() throws Exception {
  Node nodeA=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",1d);
  Node nodeB=graph.makeNode("String_Node_Str","String_Node_Str",2d,"String_Node_Str",2d);
  Node nodeC=graph.makeNode("String_Node_Str","String_Node_Str",0d,"String_Node_Str",3d);
  Node nodeD=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",4d);
  Node nodeE=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",4d);
  Node nodeF=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",4d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",2d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",2.5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",7.3d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",2.5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",3d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",12d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",25d);
  AStar algo=new AStar(graphDb,TraversalFactory.expanderForAllTypes(),new DoubleEvaluator("String_Node_Str"),ESTIMATE_EVALUATOR);
  for (  Node[] nodes : new Node[][]{{nodeA,nodeF},{nodeF,nodeA}}) {
    int found=0;
    Iterator<WeightedPath> paths=algo.findAllPaths(nodes[0],nodes[1]).iterator();
    for (int i=0; i < 2; i++) {
      assertTrue("String_Node_Str",paths.hasNext());
      Path path=paths.next();
      if (path.length() != found && path.length() == 3) {
        assertContains(path.nodes(),nodeA,nodeC,nodeE,nodeF);
      }
 else       if (path.length() != found && path.length() == 4) {
        assertContains(path.nodes(),nodeA,nodeB,nodeD,nodeE,nodeF);
      }
 else {
        fail("String_Node_Str" + path.length());
      }
      found=path.length();
    }
    assertFalse("String_Node_Str",paths.hasNext());
  }
}

Fixed version (ground truth):
@Ignore @Test public void canGetMultiplePathsInASmallRoadNetwork() throws Exception {
  Node nodeA=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",1d);
  Node nodeB=graph.makeNode("String_Node_Str","String_Node_Str",2d,"String_Node_Str",2d);
  Node nodeC=graph.makeNode("String_Node_Str","String_Node_Str",0d,"String_Node_Str",3d);
  Node nodeD=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",4d);
  Node nodeE=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",4d);
  Node nodeF=graph.makeNode("String_Node_Str","String_Node_Str",1d,"String_Node_Str",4d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",2d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",2.5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",7.3d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",2.5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",3d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",5d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",12d);
  graph.makeEdge("String_Node_Str","String_Node_Str","String_Node_Str",25d);
  PathFinder<WeightedPath> algo=newFinder();
  for (  Node[] nodes : new Node[][]{{nodeA,nodeF},{nodeF,nodeA}}) {
    int found=0;
    Iterator<WeightedPath> paths=algo.findAllPaths(nodes[0],nodes[1]).iterator();
    for (int i=0; i < 2; i++) {
      assertTrue("String_Node_Str" + i + "String_Node_Str",paths.hasNext());
      Path path=paths.next();
      if (path.length() != found && path.length() == 3) {
        assertContains(path.nodes(),nodeA,nodeC,nodeE,nodeF);
      }
 else       if (path.length() != found && path.length() == 4) {
        assertContains(path.nodes(),nodeA,nodeB,nodeD,nodeE,nodeF);
      }
 else {
        fail("String_Node_Str" + path.length());
      }
      found=path.length();
    }
    assertFalse("String_Node_Str",paths.hasNext());
  }
}