OBJS= hexagon.o astar.o
SRC=$(OBJS:.o=.c)
TESTS= t/cantor.t t/distance.t t/adjacency.t t/range.t t/hexbin.t \
- t/gridsize.t t/center.t t/astar.t
+ t/gridsize.t t/center.t t/astar.t t/astarlg.t
PREFIX=/usr/local
all: libhexagon.a docs testfiles
--- /dev/null
+#include <stdio.h>
+
+#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();
+}