in src/apps/testapps/testH3ToLocalIjExhaustive.c [93:123]
void h3ToLocalIj_neighbors_assertions(H3Index h3) {
CoordIJ origin = {0};
t_assert(H3_EXPORT(experimentalH3ToLocalIj)(h3, h3, &origin) == 0,
"got ij for origin");
CoordIJK originIjk;
ijToIjk(&origin, &originIjk);
for (Direction d = K_AXES_DIGIT; d < INVALID_DIGIT; d++) {
if (d == K_AXES_DIGIT && H3_EXPORT(h3IsPentagon)(h3)) {
continue;
}
int rotations = 0;
H3Index offset = h3NeighborRotations(h3, d, &rotations);
CoordIJ ij = {0};
t_assert(H3_EXPORT(experimentalH3ToLocalIj)(h3, offset, &ij) == 0,
"got ij for destination");
CoordIJK ijk;
ijToIjk(&ij, &ijk);
CoordIJK invertedIjk = {0};
_neighbor(&invertedIjk, d);
for (int i = 0; i < 3; i++) {
_ijkRotate60ccw(&invertedIjk);
}
_ijkAdd(&invertedIjk, &ijk, &ijk);
_ijkNormalize(&ijk);
t_assert(_ijkMatches(&ijk, &originIjk), "back to origin");
}
}