diff options
| author | historia <[not public]> | 2026-10-02 17:51:46 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-10-02 17:51:46 -0400 |
| commit | cac16d1725c46c82a2e62b84c93f7090b2ce0746 (patch) | |
| tree | e54f6624bdeb47421587656757ef3ce4fd7ebb3f /internal/game/render_craps_test.go | |
| parent | 4f40f116ba884111c9a66849e620ff9fbc67530a (diff) | |
| download | thehouseoficarus-cac16d1725c46c82a2e62b84c93f7090b2ce0746.tar.gz | |
feat: craps table color improvements, die improvements
Diffstat (limited to 'internal/game/render_craps_test.go')
| -rw-r--r-- | internal/game/render_craps_test.go | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/internal/game/render_craps_test.go b/internal/game/render_craps_test.go index b3cc1d8..49bda4a 100644 --- a/internal/game/render_craps_test.go +++ b/internal/game/render_craps_test.go @@ -57,22 +57,70 @@ func TestCrapsHalfTableGeometryAndPuck(t *testing.T) { } t.Log("\n" + renderCrapsSnapshot(&casino.CrapsSnapshot{Point: 6, Field12: 3, Dice: [2]int{3, 3}, Queue: []string{"Alice", "Bob"}, Made: []int{4, 5}, Seen: []int{2, 4, 5, 6, 9}, Phase: "betting", ShootIn: 10, DealerIn: 70}, "none", true)) } + +// TestCrapsFireTrackerHighlightsMadePoints pins the Fire half of the tracker: +// made points highlight, un-made points do not, and no asterisk is involved. +func TestCrapsFireTrackerHighlightsMadePoints(t *testing.T) { + s := &casino.CrapsSnapshot{Point: 6, Made: []int{4, 9}} + art := renderCrapsTrackers(s, "xterm256", true) + fireRow := "" + for _, line := range strings.Split(art, "\n") { + if strings.Contains(line, "FIRE") { + fireRow = line + } + } + if got := strings.Count(fireRow, color.BgCode("xterm256", 220)); got != 2 { + t.Fatalf("expected 2 highlighted fire points, got %d: %q", got, plainRoulette(art)) + } + plain := plainRoulette(art) + for _, want := range []string{"[ 4]", "[ 9]"} { + if !strings.Contains(plain, want) { + t.Fatalf("missing fire point %s: %q", want, plain) + } + } + if strings.Contains(plain, "*") { + t.Fatalf("fire tracker still uses an asterisk: %q", plain) + } +} func TestCrapsTrackersAndDiceStyles(t *testing.T) { s := &casino.CrapsSnapshot{Point: 6, Made: []int{4, 6}, Seen: []int{2, 12}} art := renderCrapsTrackers(s, "xterm256", true) plain := plainRoulette(art) - for _, token := range []string{"[ 4*]", "[ 5 ]", "[ 6*]", " 2*", "12*"} { + // Both trackers bracket every number; made/rolled numbers are shown by the + // highlight alone, with no asterisk. + for _, token := range []string{"[ 4]", "[ 5]", "[ 6]", "[ 2]", "[12]"} { if !strings.Contains(plain, token) { t.Fatal("tracker missing", token) } } + if strings.Contains(plain, "*") || strings.Contains(plain, "= rolled") { + t.Fatalf("tracker still uses asterisks or the rolled legend: %q", plain) + } if strings.Count(art, color.BgCode("xterm256", 220)) != 4 { - t.Fatal("wrong number of filled tracker tokens") + t.Fatal("wrong number of highlighted tracker tokens") + } + if !strings.Contains(art, color.BgCode("xterm256", 24)) { + t.Fatal("tracker background is not blue") + } + if strings.Contains(art, color.BgCode("xterm256", 124)) { + t.Fatal("tracker still uses a red background") + } + // The ATS payout panel now lives only on the main felt, and the fire odds + // share a single row. + if strings.Contains(plain, "DISTINCT POINTS") || strings.Contains(plain, "34:1") || strings.Contains(plain, "175:1") { + t.Fatalf("tracker still shows a payout panel: %q", plain) + } + if !strings.Contains(plain, "4 POINTS 24:1") { + t.Fatalf("fire odds not collapsed to one row: %q", plain) + } + feltArt := renderCrapsFelt(s, "xterm256", true) + if !strings.Contains(feltArt, color.BgCode("xterm256", 24)) { + t.Fatal("felt Fire/ATS spots are not blue") } - if !strings.Contains(art, color.BgCode("xterm256", 124)) || !strings.Contains(art, color.BgCode("xterm256", 24)) { - t.Fatal("fire/ATS tracker backgrounds are not red/blue") + if strings.Contains(feltArt, color.BgCode("xterm256", 124)) { + t.Fatal("felt still uses a red bonus background") } - if !strings.Contains(renderCrapsFelt(s, "xterm256", true), color.BgCode("xterm256", 22)) { + if !strings.Contains(feltArt, color.BgCode("xterm256", 22)) { t.Fatal("felt not dark green") } g := &Game{} |
