modes:single|pair:tests: some adjustments based on prev refactors
This commit is contained in:
@@ -158,7 +158,7 @@ mod tests {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// TEST: Improper pair tests.
|
// TEST: Improper pair tests.
|
||||||
PlayingCard::iter_all(1)
|
PlayingCard::iter_all(0)
|
||||||
.map(Card::PlayingCard)
|
.map(Card::PlayingCard)
|
||||||
.map(|c1| {
|
.map(|c1| {
|
||||||
// TEST: Any card with one joker can be made into a valid pair.
|
// TEST: Any card with one joker can be made into a valid pair.
|
||||||
@@ -190,11 +190,13 @@ mod tests {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// TEST: Proper pair tests
|
// TEST: Proper pair tests
|
||||||
PlayingCard::iter_all(1)
|
PlayingCard::iter_all(0)
|
||||||
.map(Card::PlayingCard)
|
// Flat Map every Playing Card (c1) into combinations (Card c1, Card
|
||||||
// Flat Map every card (c1) into combinations (c1, card of same rank as c1)
|
// of same rank as c1)
|
||||||
.flat_map(|c1| c1.rank().unwrap().cards().map(move |c2| (c1, c2)))
|
.flat_map(|c1| {
|
||||||
// Map every (c1, c2) into a pair
|
let card_c1 = Card::PlayingCard(c1);
|
||||||
|
c1.rank.cards().map(move |c2| (card_c1, c2))
|
||||||
|
})
|
||||||
.map(|(c1, c2)| {
|
.map(|(c1, c2)| {
|
||||||
// TEST: Two cards of similar rank make a valid pair.
|
// TEST: Two cards of similar rank make a valid pair.
|
||||||
let pair = {
|
let pair = {
|
||||||
@@ -209,11 +211,19 @@ mod tests {
|
|||||||
assert!(pair.is_proper(), "Expected {pair} to be proper.");
|
assert!(pair.is_proper(), "Expected {pair} to be proper.");
|
||||||
(c1, c2, pair)
|
(c1, c2, pair)
|
||||||
})
|
})
|
||||||
.for_each(|(c1, c2, pair)| {
|
.for_each(|(c1, c2, Pair(p1, p2))| {
|
||||||
// TEST: Pairs always sort their cards in strength.
|
// TEST: Pairs always sort their cards in strength.
|
||||||
let [b1, b2] = ordered([c1, c2]);
|
let pair_cards = [p1, p2];
|
||||||
assert_eq!(pair.0, b1, "Expected {} to be {b1}", pair.0);
|
let sorted_cards = ordered([c1, c2]);
|
||||||
assert_eq!(pair.1, b2, "Expected {} to be {b2}", pair.1);
|
assert_eq!(
|
||||||
|
pair_cards,
|
||||||
|
sorted_cards,
|
||||||
|
"Expected ({}, {}) to be ({}, {})",
|
||||||
|
pair_cards[0],
|
||||||
|
pair_cards[1],
|
||||||
|
sorted_cards[0],
|
||||||
|
sorted_cards[1]
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ impl Single {
|
|||||||
a Joker.
|
a Joker.
|
||||||
*/
|
*/
|
||||||
pub fn new(c: Card) -> Option<Single> {
|
pub fn new(c: Card) -> Option<Single> {
|
||||||
(!c.is_joker()).then_some(Single(c))
|
matches!(c, Card::PlayingCard(_)).then_some(Single(c))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,10 +55,7 @@ mod tests {
|
|||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::modes::tests::test_footstool;
|
||||||
card::{PlayingCard, Rank, Suit},
|
|
||||||
modes::tests::test_footstool,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn new() {
|
fn new() {
|
||||||
|
|||||||
Reference in New Issue
Block a user