open_pql/functions/
board_ranks.rs

1use super::*;
2#[pqlfn(arg, rtn, eval)]
3pub fn board_ranks(street: PQLStreet, board: Board) -> PQLRankSet {
4    Card64::from((board, street)).into()
5}
6
7#[cfg(test)]
8mod tests {
9    use super::*;
10    use crate::*;
11
12    #[quickcheck]
13    fn test_board_ranks(board: Board) -> TestResult {
14        let cards = board.to_vec();
15        let flop = Rank16::from(cards[0..3].as_ref());
16        let turn = Rank16::from(cards[0..4].as_ref());
17        let river = Rank16::from(cards[0..5].as_ref());
18
19        TestResult::from_bool(
20            flop == board_ranks(PQLStreet::Flop, board)
21                && turn == board_ranks(PQLStreet::Turn, board)
22                && river == board_ranks(PQLStreet::River, board),
23        )
24    }
25}