summaryrefslogtreecommitdiffstats
path: root/gui/tests/layout.rs
diff options
context:
space:
mode:
Diffstat (limited to 'gui/tests/layout.rs')
-rw-r--r--gui/tests/layout.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/gui/tests/layout.rs b/gui/tests/layout.rs
index ab5a62e..5678665 100644
--- a/gui/tests/layout.rs
+++ b/gui/tests/layout.rs
@@ -5,8 +5,10 @@
5use std::f32::consts::TAU; 5use std::f32::consts::TAU;
6 6
7use eframe::egui::{Pos2, Rect, pos2, vec2}; 7use eframe::egui::{Pos2, Rect, pos2, vec2};
8use zagan_bet::client::view::{SlotsPhase, SlotsView};
8use zagan_bet::roulette::{BetTarget, Outside}; 9use zagan_bet::roulette::{BetTarget, Outside};
9use zagan_bet_gui::roulette::{Felt, number_under, size_for, target_name}; 10use zagan_bet_gui::roulette::{Felt, number_under, size_for, target_name};
11use zagan_bet_gui::slots::winning_columns;
10use zagan_bet_gui::theme::{group_digits, money}; 12use zagan_bet_gui::theme::{group_digits, money};
11 13
12#[test] 14#[test]
@@ -154,3 +156,36 @@ fn targets_read_as_bet_slips() {
154 "Black" 156 "Black"
155 ); 157 );
156} 158}
159
160fn slots_view(win_cells: Vec<usize>, win_lines: Vec<usize>) -> SlotsView {
161 SlotsView {
162 bet: 10,
163 balance: Some(1000),
164 reels: "OOOOODDDDDOOOOOD".chars().collect(),
165 win_cells,
166 win_lines,
167 win_type: "win".to_string(),
168 winnings: Some(30),
169 phase: SlotsPhase::Result,
170 error: None,
171 }
172}
173
174#[test]
175fn a_payline_stops_at_the_last_matching_reel() {
176 // Middle line (line 2), four Os from reel 0: cells 1, 4, 7, 10.
177 let view = slots_view(vec![1, 4, 7, 10], vec![2]);
178 assert_eq!(winning_columns(&view, 2), vec![0, 1, 2, 3]);
179
180 // Three of a kind stops after reel 2.
181 let view = slots_view(vec![1, 4, 7], vec![2]);
182 assert_eq!(winning_columns(&view, 2), vec![0, 1, 2]);
183
184 // Cells on another line do not extend this one.
185 let view = slots_view(vec![0, 1, 4, 7], vec![2]);
186 assert_eq!(winning_columns(&view, 2), vec![0, 1, 2]);
187
188 // A line number that does not exist draws nothing.
189 let view = slots_view(vec![1, 4, 7], vec![9]);
190 assert!(winning_columns(&view, 9).is_empty());
191}