+static void test_shortcut1(void)
+{
+ struct agar_state *sr;
+ aga_icost_t cost;
+ const void *node;
+
+ ok1(sr = agar_dijkstra_new(NULL, &shortcut1_graphr.gr, int2ptr(1)));
+ ok1(agar_dijkstra_path(sr, int2ptr(3), &cost, &node, NULL));
+ ok1(cost == 2);
+ ok1(node == int2ptr(2));
+ ok1(agar_dijkstra_path(sr, int2ptr(2), &cost, &node, NULL));
+ ok1(cost == 1);
+ ok1(node == int2ptr(1));
+ tal_free(sr);
+}
+
+static void test_shortcut2(void)
+{
+ struct agar_state *sr;
+
+ ok1(sr = agar_dijkstra_new(NULL, &shortcut2_graphr.gr, int2ptr(1)));
+ agar_dijkstra_complete(sr);
+ ok1(agar_error(sr) == AGA_ERR_NEGATIVE_COST);
+ tal_free(sr);
+}
+
+static void test_negacycle(void)
+{
+ struct agar_state *sr;
+
+ ok1(sr = agar_dijkstra_new(NULL, &negacycle_graphr.gr, int2ptr(1)));
+ agar_dijkstra_complete(sr);
+ ok1(agar_error(sr) == AGA_ERR_NEGATIVE_COST);
+ tal_free(sr);
+}
+