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

stillwater-sc / universal / 26004245518
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/issue-1002-ereal-highprec-constants
DEFAULT BRANCH: master
Ran 17 May 2026 10:42PM UTC
Jobs 1
Files 652
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

17 May 2026 10:14PM UTC coverage: 84.155% (+0.07%) from 84.081%
26004245518

push

github

web-flow
feat(einteger): complete binary/octal parse + setbyte + reduce sign fix (#863)

* feat(einteger): complete binary/octal parse + setbyte impl + reduce sign fix

Closes #853 by completing the parse() coverage for einteger:

- Implement setbyte() (was a printing TBD stub). All three einteger block
  widths now correctly route a byte write into the right limb and offset.
  Hex parsing previously called this stub and silently produced 0;
  hex now actually works.
- Implement the octal parse branch (was a TODO that printed each char
  to std::cout and returned false). Walks left-to-right after the
  optional sign and the leading '0', accumulating value*8 + digit.
- Rewrite the binary parse branch. The previous implementation
  (i) commented out the negative-sign assignment, (ii) only flushed
  the running byte once at bitIndex==7 (so binary literals beyond
  ~16 bits dropped digits), and (iii) walked the '0b' prefix through
  the bit accumulator. New implementation walks the digits
  left-to-right with value = value*2 + bit, ignoring apostrophe
  digit-group separators, with proper sign tracking.
- Fix reduce()'s early-exit magnitude check. It used signed
  operator<, so a negative numerator was always "less than" a positive
  denominator and short-circuited to q=0, r=a even when |a| >= |b|.
  Replace with explicit magnitude comparisons (limb count then
  top-down limb compare). This shows up as the print of
  negative numbers > one limb being truncated to the low limb;
  convert_to_string is the canonical caller.

Tests (elastic/einteger/conversion/string_parse.cpp) cover:
- decimal positive / negative / very-large
- hex with and without 0x prefix, with and without apostrophe
  separators, signs, and a multi-limb -0xFFFF'FFFF'FFFF'FFFF case
- binary positive / negative, with separators, up to 64 bits
- octal small + large (up to 0o37777777777)
- malformed-input rejection (empty, alpha-only, bad-digit-in-prefix)
- block-width parity (uint8_t, uint16_t, uint... (continued)

51 of 51 new or added lines in 1 file covered. (100.0%)

10 existing lines in 3 files now uncovered.

46743 of 55544 relevant lines covered (84.15%)

6425213.55 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
80.58
-1.34% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
2
90.6
5.5% include/sw/universal/number/einteger/einteger_impl.hpp
2
89.23
-0.55% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26004245518.1 17 May 2026 10:42PM UTC 652
84.15
GitHub Action Run
Source Files on build 26004245518
  • Tree
  • List 652
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26004245518
  • d8cc8c16 on github
  • Prev Build on main (#26003086638)
  • Next Build on main (#26005819991)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc