/** Test case for just a single node (path length zero) */
 public void testDijkstraMinimal() {
   graph.makeNode("lonely");
   Dijkstra<Double> dijkstra = getDijkstra(graph, 0.0, "lonely", "lonely");
   assertTrue(dijkstra.getCost() == 0.0);
   assertTrue(dijkstra.getPathAsNodes().size() == 1);
   dijkstra = getDijkstra(graph, 3.0, "lonely", "lonely");
   assertTrue(dijkstra.getCost() == 6.0);
   assertTrue(dijkstra.getPathAsNodes().size() == 1);
   assertTrue(dijkstra.getPathsAsNodes().size() == 1);
 }
 public void testDijkstraChain() {
   graph.makeEdge("a", "b", "cost", (double) 1);
   graph.makeEdge("b", "c", "cost", (double) 2);
   graph.makeEdge("c", "d", "cost", (double) 3);
   Dijkstra<Double> dijkstra = getDijkstra(graph, 0.0, "a", "d");
   assertTrue(dijkstra.getCost() == 6.0);
   assertTrue(dijkstra.getPathAsNodes() != null);
   assertTrue(dijkstra.getPathAsNodes().size() == 4);
   assertTrue(dijkstra.getPathsAsNodes().size() == 1);
   dijkstra = getDijkstra(graph, 0.0, "d", "a");
   assertTrue(dijkstra.getCost() == 6.0);
   assertTrue(dijkstra.getPathAsNodes().size() == 4);
   dijkstra = getDijkstra(graph, 0.0, "d", "b");
   assertTrue(dijkstra.getCost() == 5.0);
   assertTrue(dijkstra.getPathAsNodes().size() == 3);
   assertTrue(dijkstra.getPathAsRelationships().size() == 2);
   assertTrue(dijkstra.getPath().size() == 5);
 }
 /** Test case for a path of length zero, with some surrounding nodes */
 public void testDijkstraMinimal2() {
   graph.makeEdge("a", "b", "cost", (double) 1);
   graph.makeEdge("a", "c", "cost", (double) 1);
   graph.makeEdge("a", "d", "cost", (double) 1);
   graph.makeEdge("a", "e", "cost", (double) 1);
   graph.makeEdge("b", "c", "cost", (double) 1);
   graph.makeEdge("c", "d", "cost", (double) 1);
   graph.makeEdge("d", "e", "cost", (double) 1);
   graph.makeEdge("e", "f", "cost", (double) 1);
   Dijkstra<Double> dijkstra = getDijkstra(graph, 0.0, "a", "a");
   assertTrue(dijkstra.getCost() == 0.0);
   assertTrue(dijkstra.getPathAsNodes().size() == 1);
   dijkstra = getDijkstra(graph, 3.0, "a", "a");
   assertTrue(dijkstra.getCost() == 6.0);
   assertTrue(dijkstra.getPathAsNodes().size() == 1);
   assertTrue(dijkstra.getPathAsRelationships().size() == 0);
   assertTrue(dijkstra.getPath().size() == 1);
   assertTrue(dijkstra.getPathsAsNodes().size() == 1);
 }
 /** /--2--A--7--B--2--\ S E \----7---C---7----/ */
 public void testDijstraTraverserMeeting() {
   graph.makeEdge("s", "c", "cost", (double) 7);
   graph.makeEdge("c", "e", "cost", (double) 7);
   graph.makeEdge("s", "a", "cost", (double) 2);
   graph.makeEdge("a", "b", "cost", (double) 7);
   graph.makeEdge("b", "e", "cost", (double) 2);
   Dijkstra<Double> dijkstra = getDijkstra(graph, 0.0, "s", "e");
   assertTrue(dijkstra.getCost() == 11.0);
   assertTrue(dijkstra.getPathAsNodes() != null);
   assertTrue(dijkstra.getPathAsNodes().size() == 4);
   assertTrue(dijkstra.getPathsAsNodes().size() == 1);
 }