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

philihp / openskill.js / 25846509063
100%

Build:
DEFAULT BRANCH: main
Ran 14 May 2026 06:56AM UTC
Jobs 1
Files 17
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

14 May 2026 06:55AM UTC coverage: 100.0%. Remained the same
25846509063

push

github

web-flow
perf: halve work in predictWin, simplify predictDraw (#977)

* perf: halve work in predictWin, simplify predictDraw

predictWin: phiMajor((μ_A - μ_B) / denom) is the complement of phiMajor
((μ_B - μ_A) / denom), and the sqrt(n·β² + σ²_A + σ²_B) denominator is
symmetric in (A, B). Walk only the upper triangle and add (1 - p) to
the lower index. Halves both Math.sqrt and phiMajor calls.

predictDraw: replace flatten().length with a reduce, and replace the
addIndex(reduce)/nested-reduce pyramid with a flat accumulator. No
intermediate pairwiseProbs array.

Behavior unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* refactor: tacit upper-triangle reduce in predictWin/predictDraw

Replace the explicit nested for-loops with a single Ramda reduce over
an `xprod`-built upper-triangle pair list. The mutation of the
accumulator stays (it's the only way to avoid recomputation), but the
imperative loop scaffolding is gone and the iteration shape reads as
"reduce over pairs."

Behavior unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* refactor(predict-win): consume upper-triangle pairs from a generator

Replace `xprod(idx, idx)` + `filter(i < j)` (which eagerly allocates n²
pair tuples and then ~n²/2 filtered ones) with a lazy generator yielded
straight into Ramda's reduce, which consumes iterables natively. No
intermediate pair list is ever materialized.

The for-loops still exist inside the generator body — this is the
natural shape for "for each i, for each j > i" — but they're encapsulated
behind a named iterator and the call site reads as a single tacit reduce.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* refactor(predict-win): build upper-triangle pairs via R.chain over R.range

Replace the for-loop generator with a tacit chain (flatMap) of two
ranges. No imperative iteration anywhere in this file.

Trade-off: eager allocation of ~n²/2 pair tuples (vs. lazy 0). For... (continued)

169 of 169 branches covered (100.0%)

Branch coverage included in aggregate %.

48 of 48 new or added lines in 2 files covered. (100.0%)

647 of 647 relevant lines covered (100.0%)

66.18 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25846509063.1 14 May 2026 06:56AM UTC 17
100.0
GitHub Action Run
Source Files on build 25846509063
  • Tree
  • List 17
  • Changed 6
  • Source Changed 2
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25846509063
  • edfaead7 on github
  • Prev Build on main (#25843357554)
  • Next Build on main (#25948100418)
  • Delete
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