44 lines
1.0 KiB
Rust
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");
|
|
}
|