Spaces:
Sleeping
Sleeping
File size: 1,409 Bytes
463f868 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | use crate::core::logic::*;
use crate::test_helpers::{create_test_state, load_real_db};
#[test]
fn test_mulligan_logic_discard_and_draw() {
let _db = load_real_db();
let mut state = create_test_state();
// Initialize deck and hand with real IDs
// Eli (121), Rin (124), Kotori (122), Honoka (120)
state.players[0].hand = vec![121, 124, 121, 124, 121, 124].into();
state.players[0].deck = vec![120, 120, 120, 120, 120, 120].into(); // 6 cards in deck
state.phase = Phase::MulliganP1;
state.current_player = 0;
state.first_player = 0;
// Discard index 0, 1, 2 (Three cards)
state.execute_mulligan(0, vec![0, 1, 2]);
assert_eq!(state.players[0].hand.len(), 6);
// Total cards for player 0 was 12. 6 in hand, 6 in deck.
// After mulligan 3, deck should still have 6 cards total (some swapped).
assert_eq!(state.players[0].deck.len(), 6);
}
#[test]
fn test_mulligan_empty_keep() {
let _db = load_real_db();
let mut state = create_test_state();
state.players[0].hand = vec![121, 121, 121, 121, 121, 121].into();
state.players[0].deck = vec![120].into();
state.phase = Phase::MulliganP1;
// Keep all
state.execute_mulligan(0, vec![]);
assert_eq!(state.players[0].hand.len(), 6);
assert_eq!(state.players[0].hand[0], 121);
assert_eq!(state.players[0].deck.len(), 1);
}
|