• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / h3-go / 37074946426
100%

Build:
DEFAULT BRANCH: master
Ran 02 Oct 2026 10:56PM UTC
Jobs 1
Files 20
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Oct 2026 10:54PM UTC coverage: 100.0%. Remained the same
37074946426

push

github

web-flow
h3go: check the projection against an exact evaluation (#155)

Every float test so far compares pure Go with the C library, which shows
agreement but cannot tell accuracy from shared error. This test evaluates
the same chain from a cell's integer face coordinates to a unit vector in
256-bit arithmetic and measures how far the float64 result lands from it.

The chain is rational arithmetic plus square roots since toVec3 stopped
calling atan2, atan, sin and cos: the hex2d map uses sqrt(3), the
per-resolution scale is 1/sqrt(7), the Class III rotation's sine and
cosine are sqrt(3/28) and sqrt(25/28), the inverse gnomonic uses
1/sqrt(1+r^2), and the tangent basis is a normalization and a cross
product. The only transcendentals are the sine and cosine of the twenty
face-axis azimuths, which the test computes once by series. The face
center vectors, the azimuths and the gnomonic scale are taken as the
package's literals, which are the definition.

Centers are checked through faceIJK.toVec3. Boundaries are checked by a
walk that mirrors toCellBoundary and pentToCellBoundary, so the inserted
face-crossing vertices and the 2D line intersection that places them are
covered along with the topological vertices; the walk is checked against
Boundary() by vertex count. Comparison is by chord length between the two
unit vectors, which equals the angular separation at these magnitudes and
avoids the asin and atan2 of the final conversion to degrees.

Every cell at res 0 to 2 is enumerated by default, about one second, and
one descendant per base cell at every finer resolution. The variable
H3GO_EXACT_PROJECTION_MAXRES raises the enumerated resolution; res 4 takes
fifteen seconds. The largest separation observed is 3.9e-14 degrees of
arc, about three ulps of a unit-vector component; the bound is 1e-13.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

4538 of 4538 relevant lines covered (100.0%)

2695099.74 hits per line

Jobs
ID Job ID Ran Files Coverage
1 Go- - 37074946426.1 02 Oct 2026 10:56PM UTC 20
100.0
GitHub Action Run
Source Files on build 37074946426
  • Tree
  • List 20
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6f82ecd4 on github
  • Prev Build on master (#37057402077)
  • Next Build on master (#37079004759)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc