Repository navigation
v1.5.1: Test rigor + docs honesty (engine fixes deferred to v1.5.2)
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.pyexposesequity_of,equity_vs_range, andassert_equity_closebuilt on top ofpoker_solver.equity.equity(). Re-exported viatests/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:42was 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) — seedocs/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. NOcrates/cfr_core/source change. NO public API change. NO behavior change. - v1.5.0
_rust.cpython-313-darwin.sois 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.