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

eclipse-aascw / aas-core-codegen / 35326854400
90%

Build:
DEFAULT BRANCH: main
Ran 18 Sep 2026 09:02AM UTC
Jobs 3
Files 264
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

18 Sep 2026 08:55AM UTC coverage: 85.814%. Remained the same
35326854400

push

github

web-flow
Write `xs:double` without loss in the C++ XML (#722)

`SerializeDouble` wrote the value through a stream left at its default
precision, which is six *significant* digits, so 1.2345678901234567 went
out as 1.23457 and could never be read back. Of thirteen representative
values, five did not survive the round trip -- among them one third,
pi to fifteen digits, and both the smallest and the largest double.

As many digits are written now as it takes for the text to read back as
the very same double, and no more. `std::to_chars` would answer that in
one call, but it is C++17 and the library compiles as C++11 -- only the
tests ask for C++17 -- so the three candidates which can matter, 15, 16
and 17 significant digits, are tried in turn and the first which
round-trips is kept. The stream strips the trailing zeros of each, so
a short value stays short: 0.1 is still written as 0.1.

Mind that the round trip is checked on the failbit as well as on
the value. On overflow the stream stores the largest representable
double *and* fails, so comparing the value alone would have accepted
the 15-digit form of the largest double, 1.79769313486232e+308, which
lies above the overflow threshold and which every correctly rounding
parser -- Python's among them -- reads as an infinity. `std::strtod`
reports that overflow properly through `ERANGE`, but it honours
`LC_NUMERIC` for the decimal separator, which is precisely what we avoid
here.

Both streams are given the classic locale. A global locale with
a decimal comma would otherwise have written 1,2345, which is not
a number to any XML parser -- and this went unnoticed only because
the six digits were too few to show a separator in the recorded tests.

34764 of 40511 relevant lines covered (85.81%)

2.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 3.10 - 35326854400.1 18 Sep 2026 09:03AM UTC 264
85.81
GitHub Action Run
2 3.12 - 35326854400.2 18 Sep 2026 09:03AM UTC 264
85.81
GitHub Action Run
3 3.11 - 35326854400.3 18 Sep 2026 09:03AM UTC 264
85.81
GitHub Action Run
Source Files on build 35326854400
  • Tree
  • List 264
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • c295df33 on github
  • Prev Build on main (#35324839190)
  • Next Build on main (#35328319490)
  • Delete
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