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

philihp / openskill.js / 28280063934
100%

Build:
DEFAULT BRANCH: main
Ran 27 Jun 2026 05:36AM 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

27 Jun 2026 05:35AM UTC coverage: 100.0%. First build
28280063934

push

github

web-flow
Implement partial-play weights matching openskill.py (#1024)

* Implement partial-play weights matching openskill.py

The `weight` option was accepted but ignored. Wire it through every model
so a player's rating update scales with their contribution to the team.

- Add a shared `updatePlayer` helper applying openskill.py's asymmetric
  weighting (amplify when team omega >= 0, damp when negative); weight 1 is
  a no-op, so unweighted results are unchanged.
- Normalize each team's weights into `weightBounds` (default `[1, 2]`) before
  use, matching openskill.py. Pass `weightBounds: null` to apply raw weights,
  which is what true partial play (e.g. a 6-player roster rotating through 5
  slots) needs.
- Reorder weights alongside teams through the internal rank-sort so they stay
  aligned with the teams each model sees.

Outputs are bit-for-bit identical to openskill.py 6.2.0 across all five
models, including explicit ranks, scores, and single-player teams.

Closes #1018

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WL5w21pDHbhu9PoajTndNp

* Share weight parity test fixtures instead of recreating per run

Define the input ratings once at the describe scope and reuse them across
every test, rather than minting fresh objects on each call. rate() and the
models are pure, so reusing the same inputs turns these tests into a canary:
if a model ever mutated its input, the corruption would surface in a later
test instead of being hidden behind freshly constructed objects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WL5w21pDHbhu9PoajTndNp

* Link weight tests to their openskill.py counterparts

Cross-reference each new weight/normalization test to the equivalent test in
openskill.py at the v6.2.0 tag, so the parity origin is traceable:
- parity-weights / rate partial-play -> test_rate (weights case)
- rate raw-weights -> test_weight_bounds_no... (continued)

207 of 207 branches covered (100.0%)

Branch coverage included in aggregate %.

74 of 74 new or added lines in 8 files covered. (100.0%)

697 of 697 relevant lines covered (100.0%)

69.92 hits per line

Jobs
ID Job ID Ran Files Coverage
1 28280063934.1 27 Jun 2026 05:36AM UTC 17
100.0
GitHub Action Run
Source Files on build 28280063934
  • Tree
  • List 17
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28280063934
  • daedc99a on github
  • Prev Build on main (#28279088994)
  • Next Build on main (#28282008110)
  • 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