/* * Copyright 2020 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @file * @brief tests H3 vertex functions. * * usage: `testVertex` */ #include "test.h" #include "utility.h" #include "vertex.h" SUITE(Vertex) { TEST(vertexNumForDirection_hex) { H3Index origin = 0x823d6ffffffffff; int vertexNums[NUM_HEX_VERTS] = {0}; for (Direction dir = K_AXES_DIGIT; dir < NUM_DIGITS; dir++) { int vertexNum = vertexNumForDirection(origin, dir); t_assert(vertexNum >= 0 && vertexNum < NUM_HEX_VERTS, "vertex number appears valid"); t_assert(!vertexNums[vertexNum], "vertex number appears only once"); vertexNums[vertexNum] = 1; } } TEST(vertexNumForDirection_pent) { H3Index pentagon = 0x823007fffffffff; int vertexNums[NUM_PENT_VERTS] = {0}; for (Direction dir = J_AXES_DIGIT; dir < NUM_DIGITS; dir++) { int vertexNum = vertexNumForDirection(pentagon, dir); t_assert(vertexNum >= 0 && vertexNum < NUM_PENT_VERTS, "vertex number appears valid"); t_assert(!vertexNums[vertexNum], "vertex number appears only once"); vertexNums[vertexNum] = 1; } } TEST(vertexNumForDirection_badDirections) { H3Index origin = 0x823007fffffffff; t_assert( vertexNumForDirection(origin, CENTER_DIGIT) == INVALID_VERTEX_NUM, "center digit should return invalid vertex"); t_assert( vertexNumForDirection(origin, INVALID_DIGIT) == INVALID_VERTEX_NUM, "invalid digit should return invalid vertex"); H3Index pentagon = 0x823007fffffffff; t_assert( vertexNumForDirection(pentagon, K_AXES_DIGIT) == INVALID_VERTEX_NUM, "K direction on pentagon should return invalid vertex"); } }