From 49df948de25d28601469e9ca993f33530989ebd0 Mon Sep 17 00:00:00 2001 From: salmonik Date: Thu, 29 Oct 2026 22:55:49 +0100 Subject: v3.0.0: cursor-driven roulette felt with splits and corners; drop schema migrations; require 80x24 --- docs/TESTING.md | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'docs/TESTING.md') diff --git a/docs/TESTING.md b/docs/TESTING.md index fe302a9..7ec5b60 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -16,7 +16,7 @@ shared global database. Each test owns its state. | `tests/blackjack.rs` | Card totals, naturals, hit/stand/double, dealer bust, S17, state parsing. | | `tests/crash.rs` | Multiplier curve, payout floor, crash-point distribution, house edge, cap. | | `tests/protocol.rs` | Newline buffering and timeout/error classification. | -| `tests/roulette.rs` | European wheel, split-bet payouts, zero handling, result parser. | +| `tests/roulette.rs` | Wheel, every bet type and payout, zero handling, cursor lattice, result parser. | | `tests/server_core.rs` | Handler, bcrypt migration, SQL injection, transaction rollback, `plays` audit, sessions. | | `tests/server_setup.rs` | `--init` identity generation, PKCS#12 loadability, overwrite refusal. | | `tests/slots.rs` | Server slots payout rules and overflow handling. | @@ -71,18 +71,31 @@ Use an 80-column terminal because several output lines are width-sensitive. ## Manual roulette checklist -1. `play roulette` shows the balance, chip size, empty bets, and controls. -2. `R`/`B`/`E`/`O` add one chip; digits + Enter add a number; `C` clears; - `+`/`=`/`-` change the chip size. -3. Space scrolls the wheel under a fixed ball marker and ends on the winning +1. `play roulette` draws the full felt: 0, the 3x12 numbers, dozens, columns, + and the six outside cells, with the cursor on number 1. +2. Arrows move the cursor. On the numbers the highlighted cells show the bet: + one number (straight), two (split), four (corner). Down leaves the felt into + the dozens, then columns, then outside; Up walks back. +3. ENTER places the chip where the cursor is; `C` clears; `+`/`=`/`-` change the + chip size. The bets line lists every chip and the total. +4. Space scrolls the wheel under a fixed ball marker and ends on the winning number. -4. Check a split result: - - `17 black odd`: black+odd pay, red+even lose, straight 17 pays 36x. - - `0`: all outside bets lose; a straight 0 pays 36x. -5. Numbers are color-coded: red numbers red, 0 green, black default. Check the - bets line, the rolling strip, and the winning number. -6. The result board shows the winning number/color/parity, the payout, and the - new balance. The next spin reuses the placed bets. +5. Check the payouts: + - a straight pays 36x, a split 18x, a corner 9x; + - a dozen or column pays 3x; + - an outside bet pays 2x; + - `0` loses every outside bet, both dozens and every column, and pays a + straight 0. +6. The result line names the number, color and parity, the total returned and + the profit. The next spin reuses the placed chips. + +## Manual terminal size check + +1. Start the client in a terminal smaller than 80x24: it must print + `zagan.bet needs a terminal of at least 80x24 cells` and exit without + switching to the alternate screen or raw mode. +2. At 80x24 every game board (slots 10 lines, roulette 12, blackjack 6, crash 6) + must fit without wrapping. ## Manual blackjack checklist -- cgit v1.2.3