]> pd.if.org Git - hexagon/blobdiff - t/astar.c
move astar to lib
[hexagon] / t / astar.c
index abdf4ec94eb090669b9fa1732e838101c586b23d..5a447da42155a252c2cb8f61584571860f3766a5 100644 (file)
--- a/t/astar.c
+++ b/t/astar.c
@@ -2,15 +2,16 @@
 
 #include "hexagon.h"
 
-#include "tap.h"
+#include "ctap.h"
 
 void pcheck(struct HL_astar *p, int x1, int y1, int x2, int y2, int expect) {
-       int from, to, dist;
+       struct HL_hex from, to;
+       int dist;
 
-       from = HL_cantor_xy(x1,y1);
-       to = HL_cantor_xy(x2,y2);
+       from = HL_hex_xy(x1,y1);
+       to = HL_hex_xy(x2,y2);
 
-       HL_astar_clear(p);
+//     HL_astar_clear(p);
 
        p->start = from;
        p->goal = to;
@@ -24,21 +25,27 @@ void pcheck(struct HL_astar *p, int x1, int y1, int x2, int y2, int 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 neighbor55(struct HL_hex hex, int dir, struct HL_hex *n) {
+       int valid;
+       struct HL_hex nh;
+
+       valid = HL_adjhexp(hex, dir, &nh);
+       if (valid && nh.x == 5 && nh.y == 5) {
+               valid = 0;
+       }
+               if (valid && n) {
+               *n = nh;
+       }
+       
+       return valid;
+
+       return 1;
 }
 
 int main(void) {
        struct HL_astar *p;
-       int length;
 
-       plan_tests(16);
+       plan(16);
 
        p = HL_astar_init(0);
        ok(p != NULL, "allocated astar struct");
@@ -47,16 +54,21 @@ int main(void) {
        ok(p->closed == NULL, "initial closed list empty");
 
        pcheck(p, 1,1, 1,3, 2);
+       HL_astar_init(p);
        pcheck(p, 1,1, 2,1, 1);
+       HL_astar_init(p);
        pcheck(p, 1,1, 2,2, 2);
+       HL_astar_init(p);
        pcheck(p, 1,1, 3,1, 2);
+       HL_astar_init(p);
        pcheck(p, 1,1, 4,7, 8);
 
-       HL_astar_clear(p);
+       //HL_astar_clear(p);
+       HL_astar_init(p);
        p->neighbor = neighbor55;
        pcheck(p,5,4,5,6,3);
 
        HL_astar_free(p);
 
-       return exit_status();
+       return 0;
 }