ext/h3/src/src/apps/testapps/testH3Line.c in h3-3.5.1 vs ext/h3/src/src/apps/testapps/testH3Line.c in h3-3.6.0
- old
+ new
@@ -1,7 +1,7 @@
/*
- * Copyright 2018 Uber Technologies, Inc.
+ * Copyright 2018-2019 Uber Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -26,93 +26,10 @@
#include "h3api.h"
#include "localij.h"
#include "test.h"
#include "utility.h"
-static const int MAX_DISTANCES[] = {1, 2, 5, 12, 19, 26};
-
-/**
- * Property-based testing of h3Line output
- */
-static void h3Line_assertions(H3Index start, H3Index end) {
- int sz = H3_EXPORT(h3LineSize)(start, end);
- t_assert(sz > 0, "got valid size");
- H3Index *line = calloc(sz, sizeof(H3Index));
-
- int err = H3_EXPORT(h3Line)(start, end, line);
-
- t_assert(err == 0, "no error on line");
- t_assert(line[0] == start, "line starts with start index");
- t_assert(line[sz - 1] == end, "line ends with end index");
-
- for (int i = 1; i < sz; i++) {
- t_assert(H3_EXPORT(h3IsValid)(line[i]), "index is valid");
- t_assert(H3_EXPORT(h3IndexesAreNeighbors)(line[i], line[i - 1]),
- "index is a neighbor of the previous index");
- if (i > 1) {
- t_assert(
- !H3_EXPORT(h3IndexesAreNeighbors)(line[i], line[i - 2]),
- "index is not a neighbor of the index before the previous");
- }
- }
-
- free(line);
-}
-
-/**
- * Tests for invalid h3Line input
- */
-static void h3Line_invalid_assertions(H3Index start, H3Index end) {
- int sz = H3_EXPORT(h3LineSize)(start, end);
- t_assert(sz < 0, "line size marked as invalid");
-
- H3Index *line = {0};
- int err = H3_EXPORT(h3Line)(start, end, line);
- t_assert(err != 0, "line marked as invalid");
-}
-
-/**
- * Test for lines from an index to all neighbors within a kRing
- */
-static void h3Line_kRing_assertions(H3Index h3) {
- int r = H3_GET_RESOLUTION(h3);
- t_assert(r <= 5, "resolution supported by test function (kRing)");
- int maxK = MAX_DISTANCES[r];
-
- int sz = H3_EXPORT(maxKringSize)(maxK);
-
- if (H3_EXPORT(h3IsPentagon)(h3)) {
- return;
- }
-
- H3Index *neighbors = calloc(sz, sizeof(H3Index));
- H3_EXPORT(kRing)(h3, maxK, neighbors);
-
- for (int i = 0; i < sz; i++) {
- if (neighbors[i] == 0) {
- continue;
- }
- int distance = H3_EXPORT(h3Distance)(h3, neighbors[i]);
- if (distance >= 0) {
- h3Line_assertions(h3, neighbors[i]);
- } else {
- h3Line_invalid_assertions(h3, neighbors[i]);
- }
- }
-
- free(neighbors);
-}
-
SUITE(h3Line) {
- TEST(h3Line_kRing) {
- iterateAllIndexesAtRes(0, h3Line_kRing_assertions);
- iterateAllIndexesAtRes(1, h3Line_kRing_assertions);
- iterateAllIndexesAtRes(2, h3Line_kRing_assertions);
- // Don't iterate all of res 3, to save time
- iterateAllIndexesAtResPartial(3, h3Line_kRing_assertions, 6);
- // Further resolutions aren't tested to save time.
- }
-
TEST(h3Line_acrossMultipleFaces) {
H3Index start = 0x85285aa7fffffff;
H3Index end = 0x851d9b1bfffffff;
int lineSz = H3_EXPORT(h3LineSize)(start, end);