diff --git a/src/reports.c b/src/reports.c index 8e9a4d563..552b99dff 100644 --- a/src/reports.c +++ b/src/reports.c @@ -1140,7 +1140,7 @@ static quicklist *get_regions_distance(region * root, int radius) return rlist; } -static void view_default(struct seen_region **seen, region * r, faction * f) +void view_default(struct seen_region **seen, region * r, faction * f) { int dir; for (dir = 0; dir != MAXDIRECTIONS; ++dir) { @@ -1158,7 +1158,7 @@ static void view_default(struct seen_region **seen, region * r, faction * f) } } -static void view_neighbours(struct seen_region **seen, region * r, faction * f) +void view_neighbours(struct seen_region **seen, region * r, faction * f) { int d; region * nb[MAXDIRECTIONS]; diff --git a/src/reports.h b/src/reports.h index 57a15d074..e5439812d 100644 --- a/src/reports.h +++ b/src/reports.h @@ -102,6 +102,8 @@ extern "C" { int number; int level; } resource_report; + void view_default(struct seen_region **seen, struct region * r, struct faction * f); + void view_neighbours(struct seen_region **seen, struct region * r, struct faction * f); int report_resources(const struct seen_region *sr, struct resource_report *result, int size, const struct faction *viewer); int report_items(const struct item *items, struct item *result, int size, diff --git a/src/seen.test.c b/src/seen.test.c index aedaf8add..6a4678c5e 100644 --- a/src/seen.test.c +++ b/src/seen.test.c @@ -1,6 +1,7 @@ #include #include #include "seen.h" +#include "reports.h" #include @@ -8,8 +9,26 @@ #include static void test_seen_region(CuTest *tc) { + seen_region **seen, *sr; + region *r; + int dir; + + test_cleanup(); + for (dir=0;dir!=MAXDIRECTIONS;++dir) { + region *rn = test_create_region(delta_x[dir], delta_y[dir], 0); + } + r = test_create_region(0, 0, 0); + seen = seen_init(); + add_seen(seen, r, see_unit, true); + sr = find_seen(seen, r); + CuAssertPtrEquals(tc, r, sr->r); + seen_done(seen); + test_cleanup(); +} + +static void test_seen_interval_backward(CuTest *tc) { region *r, *first, *last; - seen_region **seen; + seen_region **seen, *sr; int dir; test_cleanup(); @@ -19,18 +38,41 @@ static void test_seen_region(CuTest *tc) { } seen = seen_init(); add_seen(seen, r, see_unit, true); + view_default(seen, r, 0); first = r; last = 0; get_seen_interval(seen, &first, &last); - CuAssertPtrEquals(tc, r, first); + CuAssertPtrEquals(tc, regions, first); CuAssertPtrEquals(tc, 0, last); - seen_done(seen); - test_cleanup(); + test_cleanup(); +} + +static void test_seen_interval_forward(CuTest *tc) { + region *r, *first, *last; + seen_region **seen, *sr; + int dir; + + test_cleanup(); + for (dir=0;dir!=MAXDIRECTIONS;++dir) { + region *rn = test_create_region(delta_x[dir], delta_y[dir], 0); + } + r = test_create_region(0, 0, 0); + seen = seen_init(); + add_seen(seen, r, see_unit, true); + view_default(seen, r, 0); + first = r; + last = 0; + get_seen_interval(seen, &first, &last); + CuAssertPtrEquals(tc, regions, first); + CuAssertPtrEquals(tc, 0, last); + test_cleanup(); } CuSuite *get_seen_suite(void) { CuSuite *suite = CuSuiteNew(); SUITE_ADD_TEST(suite, test_seen_region); + SUITE_ADD_TEST(suite, test_seen_interval_backward); + SUITE_ADD_TEST(suite, test_seen_interval_forward); return suite; }