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) } }