diff options
| author | historia <[not public]> | 2026-09-29 18:58:28 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-09-29 18:58:28 -0400 |
| commit | 624626b9a10ae47cf7d5f6e91765570ed759bd74 (patch) | |
| tree | 9812f5d254b7d9cfe1d2fcb6da53362e974541b0 /internal/casino/roulette_racetrack_test.go | |
| parent | ff9002b96e35ad0808945e7c35791460c9ca8776 (diff) | |
| download | thehouseoficarus-624626b9a10ae47cf7d5f6e91765570ed759bd74.tar.gz | |
feat: better roulette racetrack graphics and payout table
Diffstat (limited to 'internal/casino/roulette_racetrack_test.go')
| -rw-r--r-- | internal/casino/roulette_racetrack_test.go | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/internal/casino/roulette_racetrack_test.go b/internal/casino/roulette_racetrack_test.go index 7c465b8..29e2809 100644 --- a/internal/casino/roulette_racetrack_test.go +++ b/internal/casino/roulette_racetrack_test.go @@ -33,6 +33,9 @@ func TestRouletteCallBetMath(t *testing.T) { chips := 0 for _, part := range bet.parts { chips += part.chips + if _, mult := rouletteBet(strings.Join(part.pockets, " "), false); mult != part.mult { + t.Fatalf("%s: invalid component %v or multiplier %d (want %d)", bet.name, part.pockets, part.mult, mult) + } } if chips != bet.chips { t.Fatalf("%s: parts total %d chips, want %d", bet.name, chips, bet.chips) @@ -68,7 +71,7 @@ func TestRouletteCallBetAliases(t *testing.T) { {[]string{"voisins", "voisins du zero", "Voisins du Zéro", "vdz", "grands voisins du zero"}, "voisins"}, {[]string{"tiers", "tiers du cylindre", "le tiers du cylindre", "tdc"}, "tiers"}, {[]string{"orphelins", "orphans", "les orphelins"}, "orphelins"}, - {[]string{"zero spiel", "zerospiel", "spiel", "jeu zero", "zero game"}, "zerospiel"}, + {[]string{"zero", "Zero", "jeu zero", "Jeu Zero", "jeuzero", "JeuZero", "jeu zéro"}, "jeuzero"}, } { var want rouletteWager for _, bet := range rouletteCallBets { @@ -152,13 +155,13 @@ func TestRouletteCallBetPayouts(t *testing.T) { if got := payout(orphelins, "6", 5); got != 18 { t.Fatalf("orphelins 5 on 6 = %d, want 18", got) } - // Zero Spiel: 26 is the straight-up. - spiel := wager("zero spiel") - if got := payout(spiel, "26", 4); got != 36 { - t.Fatalf("zero spiel 4 on 26 = %d, want 36", got) + // Jeu Zero: 26 is the straight-up. + jeuZero := wager("jeu zero") + if got := payout(jeuZero, "26", 4); got != 36 { + t.Fatalf("jeu zero 4 on 26 = %d, want 36", got) } - if got := payout(spiel, "0", 4); got != 18 { - t.Fatalf("zero spiel 4 on 0 = %d, want 18", got) + if got := payout(jeuZero, "0", 4); got != 18 { + t.Fatalf("jeu zero 4 on 0 = %d, want 18", got) } // Tiers is a plain six-way split. tiers := wager("tiers") @@ -263,3 +266,20 @@ func TestRouletteRacetrackConfig(t *testing.T) { t.Fatalf("double-zero racetrack accepted: %v", err) } } + +func TestRouletteZeroNameIsNotPocketZero(t *testing.T) { + call, ok := rouletteWagerFor("Zero", false, true) + if !ok || len(call.shares) != 7 { + t.Fatalf("Zero did not resolve to Jeu Zero: %+v", call) + } + straight, ok := rouletteWagerFor("0", false, true) + if !ok || len(straight.shares) != 1 { + t.Fatalf("0 did not resolve to a straight bet: %+v", straight) + } + if got, err := straight.shares["0"].payout(10); err != nil || got != 360 { + t.Fatalf("straight zero return %d, %v", got, err) + } + if got, err := call.shares["0"].payout(10); err != nil || got != 45 { + t.Fatalf("Jeu Zero return %d, %v", got, err) + } +} |
