#include #include #include #include #include #include "hexagon.h" #include "tap.h" int main(void) { int xy[2]; int ijk[3]; int hex, start, dist; int x, y, i, count; int range[32]; printf("checking within function\n"); start = HL_cantor_xy(3,3); count = HL_hexes_within_range(start, 2, range, 0); printf("count = %d\n", count); assert(count == 18); count = HL_hexes_within_range(start, 2, range, count); for (i = 0; i < count; i++) { dumphex(range[i]); } printf("checking hex center\n"); start = HL_cantor_xy(0,0); dumphex(start); printf("center = %f, %f\n", HL_center_x(start), HL_center_y(start)); start = HL_cantor_xy(1,1); dumphex(start); printf("center = %f, %f\n", HL_center_x(start), HL_center_y(start)); start = HL_cantor_xy(-1,1); dumphex(start); printf("center = %f, %f\n", HL_center_x(start), HL_center_y(start)); start = HL_cantor_xy(2,1); dumphex(start); printf("center = %f, %f\n", HL_center_x(start), HL_center_y(start)); start = HL_cantor_xy(2,5); dumphex(start); printf("center = %f, %f\n", HL_center_x(start), HL_center_y(start)); start = HL_cantor_xy(-2,5); dumphex(start); printf("center = %f, %f\n", HL_center_x(start), HL_center_y(start)); printf("checking hexbin -0.444194, 4.639363\n"); start = HL_hexbin(0, -0.444194, 4.639363); dumphex(start); printf("checking maximum grid size\n"); x = 1; do { x = x * 2; printf("checking %d...\n", x); } while (HL_map_bounds_ok(x,x)); x = searchbound(x/2, x); printf("maximum size = %d\n", x); assert(x = HL_map_max_dimension()); start = HL_cantor_xy(x,x); assert(start>0); dumphex(start); printf("trying max+1 = HL_cantor_xy(%d,%d)\n", x+1, x+1); printf("the dump should be bogus\n"); start = HL_cantor_xy(x+1,x+1); assert(start<0); dumphex(start); return 0; } int searchbound(int low, int high) { int try; while (low != high - 1) { try = (low + high) / 2; printf("searching, low = %d, high = %d, trying %d\n", low, high, try); if (HL_map_bounds_ok(try,try)) { low = try; } else { high = try; } } return low; }