aboutsummaryrefslogtreecommitdiff
path: root/internal/game/render_roulette_test.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-29 16:50:40 -0400
committerhistoria <[not public]>2026-09-29 16:50:40 -0400
commit00fe5f7ead43627fa283035b27365924b76c5a0f (patch)
tree07546518a51aaa037d64813f40eb6dc4596bd9cb /internal/game/render_roulette_test.go
parentbfe22e10b5b9f2c7039d1d67021229659a06a226 (diff)
downloadthehouseoficarus-00fe5f7ead43627fa283035b27365924b76c5a0f.tar.gz
feat: roulette bets street, corner, split, etc.
Diffstat (limited to 'internal/game/render_roulette_test.go')
-rw-r--r--internal/game/render_roulette_test.go33
1 files changed, 30 insertions, 3 deletions
diff --git a/internal/game/render_roulette_test.go b/internal/game/render_roulette_test.go
index b1a6005..1cb75ce 100644
--- a/internal/game/render_roulette_test.go
+++ b/internal/game/render_roulette_test.go
@@ -86,9 +86,9 @@ func TestRouletteArtModes(t *testing.T) {
}
}
if mode != "none" {
- // The whole 0/00 lane is green: blank cells above and below
- // the zeros fill the rectangle.
- wantGreen := 3
+ // The whole 0/00 lane is green: the three numbered rows plus
+ // the two separator rows that run through the lane.
+ wantGreen := 5
if got := strings.Count(layoutArt, color.BgCode(mode, 2)); got != wantGreen {
t.Fatalf("green cells on board = %d, want %d", got, wantGreen)
}
@@ -199,6 +199,33 @@ func TestRouletteLayoutConnections(t *testing.T) {
}
}
+// TestRouletteZeroPanel checks the two zero-panel fixes: the whole five-row
+// lane carries the green background, and its outer corners are rounded in
+// Unicode mode while ASCII mode stays square.
+func TestRouletteZeroPanel(t *testing.T) {
+ for _, double := range []bool{false, true} {
+ colored := renderRouletteLayout(double, "xterm256", true)
+ rows := strings.Split(colored, "\n")
+ // Interior rows 2-6: top numbered row, separator, middle, separator,
+ // bottom numbered row. Each must contain the green background.
+ for row := 2; row <= 6; row++ {
+ if !strings.Contains(rows[row], color.BgCode("xterm256", 2)) {
+ t.Fatalf("double=%v: zero lane row %d is not green:\n%s", double, row, plainRoulette(colored))
+ }
+ }
+ plainRows := strings.Split(plainRoulette(colored), "\n")
+ if !strings.HasPrefix(plainRows[1], "╭") || !strings.HasPrefix(plainRows[7], "╰") {
+ t.Fatalf("double=%v: zero panel corners are not rounded:\n%s", double, plainRoulette(colored))
+ }
+ ascii := plainRoulette(renderRouletteLayout(double, "none", false))
+ for _, r := range ascii {
+ if r > 127 {
+ t.Fatalf("double=%v: non-ASCII rune %q in ASCII mode", double, r)
+ }
+ }
+ }
+}
+
func TestRouletteResultSizesAndNeighbors(t *testing.T) {
for _, unicode := range []bool{false, true} {
for _, size := range []int{1, 5, 7, 9} {