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

stillwater-sc / universal / 34764208093
86%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 13 Sep 2026 03:29PM UTC
Jobs 1
Files 660
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

13 Sep 2026 02:58PM UTC coverage: 85.706% (+0.04%) from 85.67%
34764208093

push

github

web-flow
refactor(headers): split sorn into core / manipulators / iostream (#1334) (#1471)

* refactor(headers): split sorn into core / manipulators / iostream (#1334)

Fourth type of Phase 2 group 5c (#1467).

    core.hpp   50,664 lines / 251 headers / 0 I/O-family
    sorn.hpp   68,271 lines / 332 headers / 4 I/O-family  (was 68,241 / 329 / 4)

Zero I/O-family headers is met. Under-45,000 lines is not: the standard headers
sorn itself uses -- <bitset>, <vector>, <cmath>, <string>, <limits> -- are
48,241 lines on their own, so the floor is the standard library, not a
Universal substrate. The core is that plus ~2,400 lines.

(Scope is `headers` because `sorn` is not in the PR-title allow-list.)

The text lived in members

- sornInterval::getInt(), sorn::getConfig() and sorn::getDT() build text with a
  stringstream. Each is declared in its class and defined out-of-line in
  manipulators.hpp.

TWO stream operators, and which one a call picks is sorn's behaviour

sorn has two operator<< overloads that print different things: a NON-const
sorn prints its current interval ("(1,1.5]"), a const sorn -- or a temporary --
prints the range of its lattice ("[ -inf, inf]"). The non-const one was a
hidden friend DEFINED in the class; the const one a namespace-scope template.
Both move to iostream.hpp as function templates. That keeps the choice: with
both overloads templates, a non-const lvalue still binds the sorn& overload,
because it needs fewer added cv-qualifications ([over.ics.rank]); a const
lvalue or an rvalue can only bind the const one. The differential checks it
directly: every value is streamed both ways, and so are the temporaries (-v,
abs()) and the named arithmetic results.

iostream.hpp includes manipulators.hpp: the non-const operator prints through
getInt(). manipulators.hpp does not include it back.

Self-containment, each found by compiling the header alone:

- numeric_limits.hpp used INFINITY and named sorn with no includes: now <cmath>,
  <limits> an... (continued)

29 of 31 new or added lines in 2 files covered. (93.55%)

49 existing lines in 5 files now uncovered.

43285 of 50504 relevant lines covered (85.71%)

7163348.57 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
50.0
include/sw/universal/number/sorn/iostream.hpp

Coverage Regressions

Lines Coverage ∆ File
34
87.8
3.85% include/sw/universal/number/unum2/unum2_impl.hpp
5
96.95
0.0% include/sw/universal/number/bisection/bisection_impl.hpp
5
88.37
1.03% include/sw/universal/number/unum2/lattice.hpp
4
85.71
0.0% include/sw/universal/number/unum2/op_matrix.hpp
1
85.71
0.0% include/sw/universal/number/bisection/manipulators.hpp
Jobs
ID Job ID Ran Files Coverage
1 34764208093.1 13 Sep 2026 03:29PM UTC 660
85.71
GitHub Action Run
Source Files on build 34764208093
  • Tree
  • List 660
  • Changed 11
  • Source Changed 9
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34764208093
  • 887c078e on github
  • Prev Build on main (#34764198303)
  • Next Build on main (#34764201526)
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