]> git.ozlabs.org Git - ccan/blobdiff - ccan/agar/test/parallel.c
aga,agar: Non-equal edge costs for parallel test graph
[ccan] / ccan / agar / test / parallel.c
index 741ff3a37033a3775aebc7ecf781afe3d283abc6..6034ad1176494d26537b9a3ae46c19e9508f71d7 100644 (file)
@@ -47,15 +47,23 @@ static int parallel_edge_info_r(const struct agar_graph *gr,
                                const void *nr, const void *edge,
                                struct agar_edge_info *eir)
 {
+       const struct parallel_graphr *pgr
+               = container_of(gr, struct parallel_graphr, gr);
        assert(ptr2int(nr) == 1);
 
        eir->to = int2ptr(2);
+       if (ptr2int(edge) == pgr->cheaplink)
+               eir->icost = 1;
+       else
+               eir->icost = 2;
        return 0;
 }
 
-void parallel_graphr_init(struct parallel_graphr *pgr, int nlinks)
+void parallel_graphr_init(struct parallel_graphr *pgr, int nlinks,
+                         int cheaplink)
 {
        pgr->nlinks = nlinks;
+       pgr->cheaplink = cheaplink;
 
        agar_init_graph(&pgr->gr, parallel_first_edge_r, parallel_next_edge_r,
                        parallel_edge_info_r);