Skip to content

Commit 657e54d

Browse files
author
DogLooksGood
committed
Fix all amount handling
1 parent 5cc1982 commit 657e54d

File tree

9 files changed

+51
-40
lines changed

9 files changed

+51
-40
lines changed

base/src/holdem.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ impl GameVariant for HoldemVariant {
8383
})
8484
}
8585

86-
/// Validates a bet amount
8786
fn validate_bet_amount(
8887
&self,
8988
bet_amount: u64,
@@ -101,9 +100,9 @@ impl GameVariant for HoldemVariant {
101100

102101
fn validate_raise_amount(
103102
&self,
103+
raise_amount: u64,
104104
player_chips: u64,
105105
betted: u64,
106-
raise_amount: u64,
107106
street_bet: u64,
108107
min_raise: u64,
109108
_bet_sum_of_all_players: u64,

base/src/omaha.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ impl GameVariant for OmahaVariant {
124124
) -> HandleResult<()> {
125125
// Check 1: The raise must not exceed the pot limit. This is the primary rule.
126126
let pot_before_action: u64 = pots.iter().map(|p| p.amount).sum::<u64>() + bet_sum_of_all_players;
127+
128+
if betted > street_bet {
129+
return Err(errors::player_cant_call());
130+
}
131+
127132
let call_amount = street_bet - betted;
128133
let max_raise = pot_before_action + call_amount;
129134

@@ -151,9 +156,9 @@ mod tests {
151156

152157
// bet 2, call 2 - bet 4, raise 10, raise ?
153158
let r = v.validate_raise_amount(
159+
12, // raise_amount
154160
1000, // player_chips
155161
4, // betted
156-
12, // raise_amount
157162
10, // street_bet
158163
6, // min_raise
159164
14, // bet_sum_of_all_players
@@ -164,9 +169,9 @@ mod tests {
164169
// Pot limit-> 6(for call) + 18 (previous pot)
165170
// bet 2, call 2 - bet 4, raise 10, raise ?
166171
let r = v.validate_raise_amount(
172+
24, // raise_amount
167173
1000, // player_chips
168174
4, // betted
169-
24, // raise_amount
170175
10, // street_bet
171176
6, // min_raise
172177
14, // bet_sum_of_all_players
@@ -178,9 +183,9 @@ mod tests {
178183
// Over pot limit
179184
// bet 2, call 2 - bet 4, raise 10, raise ?
180185
let r = v.validate_raise_amount(
186+
25, // raise_amount
181187
1000, // player_chips
182188
4, // betted
183-
25, // raise_amount
184189
10, // street_bet
185190
6, // min_raise
186191
14, // bet_sum_of_all_players

base/tests/allin_amount_test.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use race_api::prelude::*;
2+
use borsh::de::BorshDeserialize;
3+
use race_poker_base::game::*;
4+
use race_poker_base::holdem::HoldemVariant;
5+
use race_poker_base::essential::GameEvent;
6+
7+
#[test]
8+
fn test_raise_allin() {
9+
let st_bs = [32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 194, 235, 11, 0, 0, 0, 0, 64, 66, 15, 0, 0, 0, 0, 0, 128, 132, 30, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 252, 155, 1, 0, 0, 0, 0, 0, 30, 0, 1, 2, 2, 192, 252, 155, 1, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0 , 0, 0, 100, 97, 2, 0, 0, 0, 100, 50, 2, 0, 0, 0, 100, 116, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 192, 252, 155, 1, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 128, 141, 91, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0 , 0, 64, 138, 247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 192, 210, 31, 2, 0, 0, 0 , 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 32, 171, 249, 8, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0 , 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 183, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 1, 49, 42, 42, 215, 154, 1, 0, 0 , 201, 100, 42, 215, 154, 1, 0, 0, 1, 249, 217, 42, 215, 154, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 3, 0, 0, 0, 2, 0, 0, 0, 100, 97, 2, 0, 0, 0, 100, 50, 2, 0, 0, 0, 100, 116, 2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 64, 66, 15, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 128, 132, 30, 0, 0, 0, 0, 0, 0, 192, 198, 45, 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 4, 128, 141, 91, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 9, 61, 0, 0, 0, 0, 0, 0, 0, 27, 183, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 192, 252, 155, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ;
10+
11+
let mut handler = PokerGame::<HoldemVariant>::try_from_slice(&st_bs).unwrap();
12+
13+
println!("Handler: {:?}", handler);
14+
15+
let e_bs = [4, 192, 210, 31, 2, 0, 0, 0, 0];
16+
17+
let event = GameEvent::try_from_slice(&e_bs).unwrap();
18+
19+
println!("Event: {:?}", event);
20+
21+
let mut effect = Effect::default();
22+
23+
handler.handle_custom_event(&mut effect, event, 4).unwrap();
24+
}

base/tests/helper.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ pub fn setup_holdem_state() -> Result<PokerGame<HoldemVariant>> {
143143
next_game_start: 0,
144144
rake_collected: 6000,
145145
variant: HoldemVariant {},
146+
max_afk_hands: 100,
146147
};
147148
state.arrange_players(0)?;
148149
Ok(state)

base/tests/issue138_allin_freeze.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ fn allin_smaller_than_blinds() {
7979
next_game_start: 0,
8080
rake_collected: 0,
8181
variant: HoldemVariant {},
82+
max_afk_hands: 100,
8283
};
8384

8485

base/tests/omaha_tests.rs

Lines changed: 0 additions & 35 deletions
This file was deleted.

base/tests/waitbb_tests.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ fn test_waitbb_inbetween() -> HandleResult<()> {
140140
next_game_start: 0,
141141
rake_collected: 0,
142142
variant: HoldemVariant {},
143+
max_afk_hands: 100,
143144
};
144145

145146
{
@@ -204,6 +205,7 @@ fn test_waitbb_after_sb() -> HandleResult<()> {
204205
next_game_start: 0,
205206
rake_collected: 0,
206207
variant: HoldemVariant {},
208+
max_afk_hands: 100,
207209
};
208210

209211
{
@@ -267,6 +269,7 @@ fn test_waitbb_before_bb() -> HandleResult<()> {
267269
hand_history: HandHistory::default(),
268270
next_game_start: 0,
269271
rake_collected: 0,
272+
max_afk_hands: 100,
270273
variant: HoldemVariant {},
271274
};
272275

@@ -329,6 +332,7 @@ fn test_wait_waitbb_headsup() -> HandleResult<()> {
329332
hand_history: HandHistory::default(),
330333
next_game_start: 0,
331334
rake_collected: 0,
335+
max_afk_hands: 100,
332336
variant: HoldemVariant {},
333337
};
334338

@@ -401,6 +405,7 @@ fn test_one_wait_multi_waitbbs() -> HandleResult<()> {
401405
hand_history: HandHistory::default(),
402406
next_game_start: 0,
403407
rake_collected: 0,
408+
max_afk_hands: 100,
404409
variant: HoldemVariant {},
405410
};
406411

@@ -469,6 +474,7 @@ fn test_no_waits_multi_waitbbs() -> HandleResult<()> {
469474
hand_history: HandHistory::default(),
470475
next_game_start: 0,
471476
rake_collected: 0,
477+
max_afk_hands: 100,
472478
variant: HoldemVariant {},
473479
};
474480

@@ -535,6 +541,7 @@ fn test_multi_waits_no_waitbbs() -> HandleResult<()> {
535541
hand_history: HandHistory::default(),
536542
next_game_start: 0,
537543
rake_collected: 0,
544+
max_afk_hands: 100,
538545
variant: HoldemVariant {},
539546
};
540547

@@ -600,6 +607,7 @@ fn test_first_waitbb_between_btn_and_sb() -> HandleResult<()> {
600607
hand_history: HandHistory::default(),
601608
next_game_start: 0,
602609
rake_collected: 0,
610+
max_afk_hands: 100,
603611
variant: HoldemVariant {},
604612
};
605613

@@ -673,6 +681,7 @@ fn test_multi_waitbbs_play_order1() -> HandleResult<()> {
673681
hand_history: HandHistory::default(),
674682
next_game_start: 0,
675683
rake_collected: 0,
684+
max_afk_hands: 100,
676685
variant: HoldemVariant {},
677686
};
678687

@@ -744,6 +753,7 @@ fn test_multi_waitbbs_play_order2() -> HandleResult<()> {
744753
hand_history: HandHistory::default(),
745754
next_game_start: 0,
746755
rake_collected: 0,
756+
max_afk_hands: 100,
747757
variant: HoldemVariant {},
748758
};
749759

@@ -818,6 +828,7 @@ fn test_multi_waitbbs_play_order3() -> HandleResult<()> {
818828
hand_history: HandHistory::default(),
819829
next_game_start: 0,
820830
rake_collected: 0,
831+
max_afk_hands: 100,
821832
variant: HoldemVariant {},
822833
};
823834

ltmtt/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,7 @@ impl LtMtt {
581581
bb: origin_table.bb,
582582
ante: origin_table.ante,
583583
sitout_players: up_ids,
584+
start_time: None,
584585
},
585586
)?;
586587

@@ -615,6 +616,7 @@ impl LtMtt {
615616
bb: origin_table.bb,
616617
ante: origin_table.ante,
617618
sitout_players: vec![],
619+
start_time: None,
618620
},
619621
)?;
620622

mtt-table/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ mod tests {
261261
ante: 0,
262262
players: default_players(num_of_players),
263263
table_id: 1,
264+
max_afk_hands: 100,
264265
}
265266
}
266267

@@ -314,6 +315,7 @@ mod tests {
314315
bb: 200,
315316
ante: 0,
316317
sitout_players: vec![999], // Invalid player ID
318+
start_time: None,
317319
};
318320
let result = mtt_table.handle_bridge_event(&mut effect, invalid_player_id_event);
319321
assert!(result.is_err());
@@ -330,6 +332,7 @@ mod tests {
330332
bb: 200,
331333
ante: 0,
332334
sitout_players: vec![1, 2],
335+
start_time: None,
333336
};
334337

335338
mtt_table

0 commit comments

Comments
 (0)