X-Git-Url: https://pd.if.org/git/?p=hexagon;a=blobdiff_plain;f=t%2Fastarlg.c;fp=t%2Fastarlg.c;h=7d2ef6bc196d6f56b31b9a7d0a7d4be37a098d8c;hp=0000000000000000000000000000000000000000;hb=68a4657bb9a3025823a64b7c36d997780d491701;hpb=76ad26d2a8a12b8d090411b98f176f498a4fca39 diff --git a/t/astarlg.c b/t/astarlg.c new file mode 100644 index 0000000..7d2ef6b --- /dev/null +++ b/t/astarlg.c @@ -0,0 +1,52 @@ +#include + +#include "hexagon.h" + +#include "tap.h" + +void pcheck(struct HL_astar *p, int x1, int y1, int x2, int y2, int expect) { + int from, to, dist; + + from = HL_cantor_xy(x1,y1); + to = HL_cantor_xy(x2,y2); + + HL_astar_clear(p); + + p->start = from; + p->goal = to; + + dist = HL_findpath(p,0); + ok(p->error == 0, "found path from (%02d, %02d) to (%02d, %02d) with no error", + x1, y1, x2, y2); + ok(dist == expect, + "found path from (%02d, %02d) to (%02d, %02d) path length = %d (expect %d)", + x1, y1, x2, y2, dist, expect); +} + +/* make hex 55 missing */ +int neighbor55(int hex, int dir) { + int neighbor; + + do { + neighbor = HL_adjacent_hex(hex, dir++); + } while (neighbor == HL_cantor_xy(5,5)); + + return neighbor; +} + +int main(void) { + struct HL_astar *p; +#if 0 + int length; +#endif + + plan_tests(2); + + p = HL_astar_init(0); + + pcheck(p, 1,1, 10000,10000, 14999); + + HL_astar_free(p); + + return exit_status(); +}