- Rewrite generate_tables() with HashMap-based BFS instead of broken
sentinel-loop sorted array approach. The old generator used a
zero-terminated loop that stopped prematurely when mid-array key
insertions left gaps, producing invalid trie pointers.
- Re-enable auto-generation in load_or_generate() since the generator
now works correctly (verified by exhaustive C(52,5) correctness test).
- Wire HandRunner::showdown() through Evaluator::instance() instead of
calling AlgorithmicEvaluator directly, giving access to the full
3-tier cascade (Supersonic -> Cactus Kev -> Algorithmic).
- Parallelize tournament series loop with rayon for multi-core speedup.
- Remove dead insert_key function and test (unused after generator rewrite).
- Fix tautological benchmark assertion in integration tests.
- Add AlgorithmicEvaluator wrapper for direct hand evaluation without
lookup tables, with proper Result-based error handling
- Replace all println! and #[cfg(debug_assertions)] debug output with
log crate macros (log::info!, log::debug!, log::warn!)
- Fix calculate_flush_value to use base-13 encoding for unique flush
hand values instead of simple linear sum
- Fix is_straight to use cleaner control flow for regular and wheel
straight detection
- Remove jump table HighCard/value=0 guard in evaluate_5_card to
simplify evaluation path
- Add evaluate_n_card_hand_public as pub(crate) for AlgorithmicEvaluator
- Add .gitignore to exclude target/ and .idea/ from version control
- Add comprehensive tests for AlgorithmicEvaluator (14 test cases)
- Update README with new API usage examples
- Add log dependency to Cargo.toml
- Add placeholder modules for future implementations (tables_new,
benchmark_utils, integration_utils, test_utils)