1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package casino
import "testing"
// Removing the shoe-coverage configuration floor must not disturb legitimate
// rooms: a room whose geometry validated before still validates, and one the
// over-strict floor previously rejected (but that plays fine) now validates
// too — so the room is neither darkened nor blocked from the admin editor.
func TestRoomWithShippedGeometryStillValidates(t *testing.T) {
// The shipped intro room (data/rooms/intro/2001.yaml): blackjack,
// baccarat, and a slots machine in one room.
tables := []TableConfig{
{ID: "blackjack", Game: GameBlackjack, MaxPlayers: 6, BettingTicks: 20,
MinBet: 1, MaxBet: 1000,
Blackjack: BlackjackConfig{Decks: 8, ShuffleAt: 0.25, BlackjackPayout: 1.5}},
{ID: "baccarat", Game: GameBaccarat, MaxPlayers: 6, BettingTicks: 20,
MinBet: 1, MaxBet: 1000,
Baccarat: BaccaratConfig{Decks: 8, ShuffleAt: 0.25}},
}
machines := []MachineConfig{{
ID: "huff_puff_01", Game: GameSlots, Variant: "huff_and_even_more_puff",
MinBet: 1, MaxBet: 1000, Payout: 0.97,
}}
if err := ValidateRoomConfigs(tables, machines); err != nil {
t.Fatalf("the shipped casino room geometry no longer validates: %v", err)
}
// A six-deck eight-player blackjack table that the old 11*(1+P*S) floor
// rejected (needs 363 cards, holds 312) now validates.
small := []TableConfig{{ID: "blackjack", Game: GameBlackjack, MaxPlayers: 8,
Blackjack: BlackjackConfig{Decks: 6}}}
if err := ValidateRoomConfigs(small, nil); err != nil {
t.Fatalf("a previously-rejected but playable room still fails validation: %v", err)
}
}
|