2026-02-08 09:13:01 -05:00

44 lines
1.0 KiB
Rust

use kings_eunuch::game_engine::Deck;
#[test]
fn test_new_deck_has_52_cards() {
let deck = Deck::new();
assert_eq!(deck.remaining(), 52);
}
#[test]
fn test_default_creates_52_cards() {
let deck = Deck::default();
assert_eq!(deck.remaining(), 52);
}
#[test]
fn test_deal_single_card() {
let mut deck = Deck::new();
let _card = deck.deal();
assert_eq!(deck.remaining(), 51);
}
#[test]
fn test_deal_multiple() {
let mut deck = Deck::new();
let cards = deck.deal_multiple(5);
assert_eq!(cards.len(), 5);
assert_eq!(deck.remaining(), 47);
}
#[test]
fn test_shuffle_changes_order() {
// Create two decks - one shuffled, one not
let mut deck1 = Deck::new();
let mut deck2 = Deck::new();
deck2.shuffle_cards();
// Deal all cards from both and compare order
let cards1 = deck1.deal_multiple(52);
let cards2 = deck2.deal_multiple(52);
// Probability of same order is 1/52! (astronomically small)
assert_ne!(cards1, cards2, "Shuffled deck should have different order");
}