#[cfg(test)]
mod tests {
use crate::cards::deck::DeckConfig;
use crate::cards::{
card::Card,
suit_rank::{Rank, Suit},
};
use std::sync::Arc;
#[test]
fn normal_ordering_card() {
let cfg = Arc::new(DeckConfig::new());
let card1 = Card {
rank: Rank::Ace,
suit: Suit::Clubs,
deck_config: cfg.clone(),
};
let card2 = Card {
rank: Rank::Ace,
suit: Suit::Diamonds,
deck_config: cfg.clone(),
};
let card3 = Card {
rank: Rank::Two,
suit: Suit::Clubs,
deck_config: cfg.clone(),
};
assert!(card2 > card1);
assert!(card3 > card2);
}
#[test]
fn custom_ordering_card() {
let cfg = Arc::new(DeckConfig {
shuffle_seed: None,
pack_count: 1,
high_rank: Some(Rank::Three),
wildcard_rank: None,
});
let card1 = Card {
rank: Rank::King,
suit: Suit::Spades,
deck_config: cfg.clone(),
};
let card2 = Card {
rank: Rank::Two,
suit: Suit::Spades,
deck_config: cfg.clone(),
};
let card3 = Card {
rank: Rank::Three,
suit: Suit::Clubs,
deck_config: cfg.clone(),
};
assert!(card2 > card1);
assert!(card3 > card2);
let card4 = Card {
rank: Rank::Three,
suit: Suit::Spades,
deck_config: cfg.clone(),
};
assert!(card4 > card1);
}
}