Add more tests

This commit is contained in:
2024-03-23 23:31:55 -04:00
parent 30a2280268
commit ca47f2df2b

View File

@@ -47,7 +47,7 @@ impl fmt::Display for PokerHand {
impl PartialOrd for PokerHand {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
if self.hand_type() > other.hand_type() {
if self.hand_type() != other.hand_type() {
return self.hand_type().partial_cmp(&other.hand_type());
}
let selfmap = self.hash_map();
@@ -580,4 +580,167 @@ mod tests {
let hand = PokerHand::new(pair);
assert_eq!(hand.hand_type(), HandType::StraightFlush);
}
#[test]
fn comp_test1() {
// Hand 1
let card1 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Jack,
};
let card2 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Jack,
};
let card3 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Nine,
};
let card4 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Ace,
};
let card5 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Eight,
};
// Hand 2
let card6 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Queen,
};
let card7 = PlayingCard {
suit: CardSuit::Clubs,
value: CardValue::Ten,
};
let card8 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Queen,
};
let card9 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Two,
};
let card10 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Eight,
};
let cardset1 = vec![card1, card2, card3, card4, card5];
let cardset2 = vec![card6, card7, card8, card9, card10];
let flush = PokerHand::new(cardset1);
let onepair = PokerHand::new(cardset2);
assert!(flush > onepair);
}
#[test]
fn straight_flush_ord_test() {
// Hand 1
let card1 = PlayingCard {
suit: CardSuit::Clubs,
value: CardValue::Jack,
};
let card2 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Ten,
};
let card3 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Nine,
};
let card4 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Eight,
};
let card5 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Seven,
};
// Hand 2
let card6 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Queen,
};
let card7 = PlayingCard {
suit: CardSuit::Clubs,
value: CardValue::Jack,
};
let card8 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Ten,
};
let card9 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Nine,
};
let card10 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Eight,
};
let cardset1 = vec![card1, card2, card3, card4, card5];
let cardset2 = vec![card6, card7, card8, card9, card10];
let hand1 = PokerHand::new(cardset1);
let hand2 = PokerHand::new(cardset2);
assert!(hand1 < hand2);
assert!(hand1 >= hand1);
assert!(hand2 <= hand2);
}
#[test]
fn four_kind_ord_test() {
// Hand 1
let card1 = PlayingCard {
suit: CardSuit::Clubs,
value: CardValue::Jack,
};
let card2 = PlayingCard {
suit: CardSuit::Hearts,
value: CardValue::Jack,
};
let card3 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Jack,
};
let card4 = PlayingCard {
suit: CardSuit::Spades,
value: CardValue::Jack,
};
let card5 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Seven,
};
// Hand 2
let card6 = PlayingCard {
suit: CardSuit::Spades,
value: CardValue::Queen,
};
let card7 = PlayingCard {
suit: CardSuit::Hearts,
value: CardValue::Queen,
};
let card8 = PlayingCard {
suit: CardSuit::Clubs,
value: CardValue::Queen,
};
let card9 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Queen,
};
let card10 = PlayingCard {
suit: CardSuit::Diamonds,
value: CardValue::Eight,
};
let cardset1 = vec![card1, card2, card3, card4, card5];
let cardset2 = vec![card6, card7, card8, card9, card10];
let hand1 = PokerHand::new(cardset1);
let hand2 = PokerHand::new(cardset2);
assert!(hand1 < hand2);
assert!(hand1 >= hand1);
assert!(hand2 <= hand2);
}
}