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"); }