Overview
The test harness uses 17 fixed game records sourced fromcoredata.ts in the v6 client. Each record provides known card data (hole cards + community cards) that is submitted to the live server, which evaluates odds fresh. The oracle values in demo-records.ts supply ground-truth for deterministic assertions (statusIsFavourite, statusIsWinner, statusCantLose).
All 17 records are 4-hand games. Community cards are revealed progressively: 3 at FLOP, 1 at TURN, 1 at RIVER (the standard Texas Hold’Em community structure).
Demo 1 — A typical ‘Promo’ game
Cards: KdKc · 7d3d · 5s5c · JhQc Board: 5h 3h 4h | Qd | As What this tests: A standard asymmetric game where one hand (pocket fives) dramatically improves on the flop and runs away with it. The favourite switches from the pre-flop leader (KK) to the three-of-a-kind on the flop.Demo 2 — All hands have action
Cards: AdAs · 6c4d · JhQh · 3cJd Board: Jc 6h 3h | 6s | 3d What this tests: Every hand improves meaningfully. The flop hits multiple hands simultaneously, making the favourite calculation close. The winner emerges only at the turn when one hand pulls decisively ahead.8 failures in this demo — FLOP hands 0 and 2. The oracle records hand 0 (Pair of Aces, 7.07%) as the favourite over hand 2 (Pair of Jacks, 45%). The server correctly identifies hand 2 as the favourite by win probability. This is a v4 C# oracle vs v6 Node.js tiebreaker discrepancy. See Test Results for details.
Demo 3 — Emotional openers!
Cards: Th8d · 9s2h · KcKs · 5h8s Board: 7h 2c 2d | Td | Ts What this tests: An “emotional” pre-flop — the pocket Kings are heavily favoured but the board pairs twos and then tens, giving the 9s2h hand an unexpected three-of-a-kind. The eventual winner (Th8d) makes a full house on the river, beating the three-of-a-kind.Demo 4 — Hedge’Em opportunity
Cards: Qd3d · 2hQs · 7cKs · 2cAc Board: Kc 7h Tc | Jd | 9s What this tests: A classic hedge scenario. Two hands (0 and 1) are both low-probability outsiders throughout, then both hit a surprise straight on the river. Tests the two-winner scenario andstatusIsWinner: true on multiple hands at RIVER.
Demo 5 — Hedge your bets!
Cards: 8d8h · ThJh · 3s6d · JdJc Board: 8s 6h 6c | Kh | 2s What this tests: The flop produces a dramatic swing — the 8d8h hand makes a full house (8-8-8-6-6) on the flop and becomes heavily favoured. TestsstatusCantLose approaching but not reaching threshold on flop, then majority of community cards land.
Demo 6 — Back from the dead
Cards: Ac5c · 9c6d · JdJh · 7sQh Board: Qc 7c Jc | Tc | 8c What this tests: A “back from the dead” story — hand 1 (9c6d) appears nearly eliminated after the flop but hits a straight flush on the river, beating the ace-high flush. Tests correct winner determination when a lower-ranked hand makes a dramatic improvement.Demo 7 — Maximum and Minimum Odds
Cards: Ah2h · 9h6d · 4c2c · 3s9c Board: Qh 7h Jh | Th | 8h What this tests: The full community is hearts. Hand 0 (Ah2h) has the ace of hearts making an ace-high flush, while hand 1 (9h6d) has the nine of hearts. The board completes a straight flush for hand 1. Tests near-zero odds (hands 2 and 3 are dead from the flop) and correct winner at RIVER.Demo 8 — One hand can’t lose
Cards: 3d9s · 5c6d · QhQs · 3h8h Board: 4c 3s 5d | 2h | 7c What this tests:statusCantLose — when a hand reaches 100% win probability. At the turn, hand 1 (5c6d) makes a wheel straight (A-2-3-4-5) which cannot be beaten by the remaining river card. Tests that statusCantLose: true is set and odds assertions are skipped for that hand.
8 failures in this demo — FLOP hands 1 and 2. See Test Results for details.
Demo 9 — Everyone’s a winner!
Cards: KdAh · 4c4s · JhQh · 6d7s Board: 6h 4h 7c | 5d | 8s What this tests: All four hands are winners at RIVER — they all share the same board straight (6-7-8-9-T or similar). TestsstatusIsWinner: true on all four hands simultaneously and gameOver: true.
Demo 10 — All bets off!
Cards: 6c6s · AdKc · JhQh · 2c7s Board: 6d 6h 9c | Qs | Ks What this tests: Four-of-a-kind on the flop — hand 0 (6c6s) makes quad sixes immediately and hitsstatusCantLose: true from the flop onwards. The other hands are instantly dead. Tests cantLose trigger on the flop (not just turn) and dead hand detection.
Demo 11 — All community-cards are the best five
Cards: KcJs · Qd4c · 3sJd · Jc7c Board: 7h 6h 8h 9h Th What this tests: The five community cards form a straight flush (6h-7h-8h-9h-Th), which is the best possible five-card hand regardless of hole cards. All four hands end up playing the board —statusIsWinner: true on all four at RIVER. Tests the board-plays scenario.
Demo 12 — Highlighting best cards
Cards: 8hJs · Jh4c · 9sJd · Jc7c Board: 7d 8s 8c 9d Th What this tests: Multiple jacks in the hole — the board eventually forms a straight (7-8-9-T-J), and all four hands have a Jack to complete it. All four hands win. Also testsstatusCantLose: true appearing at TURN for two hands.
Demo 13 — Game-over after Flop
Cards: AsKs · Jd9c · 2h4c · 8sAh Board: Ts Js Qs | 3h | 6d What this tests: Game can end after the flop — hand 0 (AsKs) makes a Royal Flush (As-Ks-Qs-Js-Ts) on the flop and hitsstatusCantLose: true. All other hands are dead. The game effectively concludes at the flop even though TURN and RIVER still resolve.
Demo 14 — Game-over after Turn
Cards: AsKs · Jd9c · 2h4c · 8sAh Board: Ts Js 3h | Qs | 6d What this tests: Same hole cards as Demo 13, but community order is different — the straight flush doesn’t complete until the turn card (Qs). TestsstatusCantLose activating at TURN rather than FLOP.
Demo 15 — All Equal from start
Cards: KsAd · KhAs · KcAh · KdAc Board: Ts Jd Qh | 3h | 3d What this tests: All four hands are identical — each has AK suited in a different suit. From the flop, all four are dealt a shared straight (T-J-Q-K-A) so all fourstatusCantLose and all four win. Tests the equal-probability scenario at HOLE, and the all-cantLose scenario from FLOP onwards.
8 failures in this demo — HOLE hands 0 and 2. All four hands are truly identical in equity. The oracle assigns
statusIsFavourite: true to hand 0 (first index wins tiebreaker in v4 C#). The v6 server uses a different tiebreaker. See Test Results.Demo 16 — All Equal but not for long (v2)
Cards: KsAd · KhAs · KcAh · KdAc Board: 6s 8s 2s | 8c | 3d What this tests: Identical hole cards again, but the community is very different from Demo 15. At FLOP, hand 1 (KhAs) has the ace of spades making an ace-high flush —statusCantLose. The others are drawing but behind. Tests the scenario where identical hole cards diverge in value depending on which suit matches the board.
8 failures in this demo — HOLE hands 0 and 3. See Test Results.