diff options
Diffstat (limited to 'gui/tests/layout.rs')
| -rw-r--r-- | gui/tests/layout.rs | 35 |
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 @@ | |||
| 5 | use std::f32::consts::TAU; | 5 | use std::f32::consts::TAU; |
| 6 | 6 | ||
| 7 | use eframe::egui::{Pos2, Rect, pos2, vec2}; | 7 | use eframe::egui::{Pos2, Rect, pos2, vec2}; |
| 8 | use zagan_bet::client::view::{SlotsPhase, SlotsView}; | ||
| 8 | use zagan_bet::roulette::{BetTarget, Outside}; | 9 | use zagan_bet::roulette::{BetTarget, Outside}; |
| 9 | use zagan_bet_gui::roulette::{Felt, number_under, size_for, target_name}; | 10 | use zagan_bet_gui::roulette::{Felt, number_under, size_for, target_name}; |
| 11 | use zagan_bet_gui::slots::winning_columns; | ||
| 10 | use zagan_bet_gui::theme::{group_digits, money}; | 12 | use 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 | |||
| 160 | fn 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] | ||
| 175 | fn 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 | } | ||
