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

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

Build:
Build:
LAST BUILD BRANCH: fix/issue-ci-ereal-regression-runtime
DEFAULT BRANCH: master
Ran 17 May 2026 09:10PM 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 08:41PM UTC coverage: 84.094% (+0.01%) from 84.083%
26002163594

push

github

web-flow
feat(dfloat): comprehensive parse coverage across BID and DPD (#852) (#860)

* feat(dfloat): comprehensive parse coverage across BID and DPD (Resolves #852)

Phase E (PR #858) added the operator>> hygiene and grammar pre-validator
to dfloat::parse() but only spot-tested decimal64 (BID). This PR extends
the existing test file to cover the full AC matrix from #852:

Test groups (12 total):
- decimal32 (BID, 7 digits, es=6)
- decimal64 (BID, 16 digits, es=8)
- decimal128 (BID, 34 digits, es=12)
- decimal32_dpd (DPD encoding, previously untested)
- decimal64_dpd (DPD encoding, previously untested)
- decimal128_dpd (DPD encoding, previously untested)
- decimal128 large scientific notation across |e| in [-50, 100]
- operator>> failbit on bad token
- operator>> EOF handling
- operator>> reads canonical + nan + inf in sequence from one stream

Per-config coverage (via templated helpers):
- 12 canonical decimal literals (exact-in-double values for bit-exact
  comparison against the type's double constructor)
- 13 nan / inf / infinity spellings with full state + sign assertion
  (isnan, isinf, sign -- not just parse-success boolean)
- 19 malformed inputs verified rejected (empty, whitespace-only, bare
  sign, bare exponent, multiple decimal points, trailing junk, double
  sign, garbled tokens)

What the AC bullet "Hex/binary native dfloat format (if defined)"
covers: no such format exists for dfloat (unlike posit and cfloat's
nbits.esxHEXVALUEp/c form). Documented in the test file's header.

Verified on gcc + clang: dfloat_string_parse PASS, plus
dfloat_api / dfloat_assignment / dfloat_addition / dfloat_logic /
dfloat_decimal32 / dfloat_decimal64 regression all PASS.

Resolves #852

* test(dfloat): address CodeRabbit round-1 review on PR #860

Three items from CR review #1:

1. (Actionable) Large-|e| scientific-notation loop: after parse() fails,
   the downstream p.iszero() / p.isnan() / p.isinf() checks would still
   run and could produce spurious failure in... (continued)

46688 of 55519 relevant lines covered (84.09%)

6422719.33 hits per line

Coverage Regressions

Lines Coverage ∆ File
8
93.63
-0.47% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26002163594.1 17 May 2026 09:10PM UTC 652
84.09
GitHub Action Run
Source Files on build 26002163594
  • Tree
  • List 652
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26002163594
  • 088ccd08 on github
  • Prev Build on main (#26001208466)
  • Next Build on main (#26003086638)
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