open_pql/functions/
pocket_pair.rs1use super::*;
2
3#[pqlfn(arg, rtn, eval)]
4pub fn pocket_pair(hand: &Hand) -> PQLBoolean {
5 !duplicated_hand_ranks(hand, PQLStreet::Flop).is_empty()
6}
7
8#[cfg(test)]
9mod tests {
10 use super::*;
11
12 #[quickcheck]
13 fn test_pocket_pair(cards: CardN<4>) -> TestResult {
14 let hand: [_; 4] = cards.into();
15
16 let mut rs = hand.into_iter().map(|c| c.rank).collect::<Vec<_>>();
17
18 rs.sort();
19 rs.dedup();
20
21 let pocket = rs.len() < 4;
22
23 TestResult::from_bool(pocket == pocket_pair(&hand))
24 }
25}