Skip to content

v1.5.1: Test rigor + docs honesty (engine fixes deferred to v1.5.2)

Choose a tag to compare

@amaster97 amaster97 released this 23 May 17:29
· 289 commits to main since this release

v1.5.1 — Test rigor + docs honesty (PATCH)

Headline: A small, no-engine-touch patch release combining new equity test-helper scaffolding, rigorous memory-profiler oracles, and an honest framing correction on a long-standing performance claim. Engine fixes (per-action divergence diagnosis, Python delegate, off-by-one fixes) are deferred to v1.5.2.

What changed

  • Equity test-helper (PR 37). New tests/_equity_helpers.py exposes equity_of, equity_vs_range, and assert_equity_close built on top of poker_solver.equity.equity(). Re-exported via tests/conftest.py. Lets persona / acceptance tests assert exact equity values inline. NO source-code change.

  • Memory-profiler test rigor (PR 36). 4 new tests upgrade the return-non-empty-without-crashing baseline to genuine external oracles: a closed-form 3-action x 4-infoset toy where the profiler output matches byte-for-byte; a real-config closed-form calibration on a small river solve; a golden-file check; and a structure-invariant check on per-street partitioning. NO source-code change.

  • PR 7 docs honesty (PR 32). The "<10s/spot on a typical dev box" comment in tests/test_river_diff_self_sanity.py:42 was aspirational (PR 7 / v0.5.1) and never empirically validated. The canonical parity test takes >660s on the Python tier due to chance-enum-at-root (1.6M hole-card combos per iter) — see docs/river_parity_timeout_investigation_2026-05-23.md. Comment reframed; no assertion or test-behavior change.

Honest framing

  • PATCH bump. NO poker_solver/ source change. NO crates/cfr_core/ source change. NO public API change. NO behavior change.
  • v1.5.0 _rust.cpython-313-darwin.so is reused byte-identically; users on v1.5.0 do not need to rebuild Rust for v1.5.1.
  • v1.5.0 acceptance-test status is unchanged. This release does NOT address the per-action divergence observed in the v1.5.0 Brown apples-to-apples acceptance test. The engine bundle that WILL address it (PR 33 Python delegate + PR 34 P0 off-by-one fix + PR 35 canonicalization) is deferred to v1.5.2 pending the divergence diagnosis.
  • Smoke regression: test_equity_helpers.py, test_memory_profiler.py, test_range.py, test_dcfr_diff.py, test_exploit_diff.py, test_range_vs_range_aggregator.py, test_node_locking.py — 91 passed, 5 skipped.