]> git.ozlabs.org Git - ccan/blobdiff - ccan/agar/test/api-dijkstra.c
aga,agar: Negative weight cycle testcase
[ccan] / ccan / agar / test / api-dijkstra.c
index ebdbf42d1a72d1a180c1441205e448d349943f7d..19980919bd7ca059db2a4287ac8aaf318f407148 100644 (file)
@@ -231,7 +231,17 @@ static void test_shortcut2(void)
        struct agar_state *sr;
 
        ok1(sr = agar_dijkstra_new(NULL, &shortcut2_graphr.gr, int2ptr(1)));
-       agar_dijkstra_all_paths(sr);
+       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);
 }
@@ -241,7 +251,7 @@ int main(void)
        plan_tests(6 + 23
                   + FULL_LEN * (FULL_LEN*4 - 1)
                   + CHAIN_LEN * (1 + CHAIN_LEN*2)
-                  + 12 + 32 + 7 + 2);
+                  + 12 + 32 + 7 + 2 + 2);
 
        test_trivial();
        test_parallel();
@@ -251,6 +261,7 @@ int main(void)
        test_traversal1();
        test_shortcut1();
        test_shortcut2();
+       test_negacycle();
        
        return exit_status();
 }