poker-0.1.0.0: benchmark/evaluate/Main.hs
module Main (main) where
import Gauge.Main
import Poker.Holdem
import Poker.Holdem.Evaluate
import Poker.Deck
hands =
[
(
Hand (Hole (newCard Ace Spade) (newCard King Spade))
(Community
(Flop (newCard Queen Spade) (newCard Jack Spade) (newCard Ten Spade))
(Turn (newCard Two Diamond))
(Street (newCard Three Diamond))
)
, "Royal flush"
)
,
(
Hand (Hole (newCard Nine Diamond) (newCard Eight Diamond))
(Community
(Flop (newCard King Spade) (newCard King Heart) (newCard Five Diamond))
(Turn (newCard Seven Diamond))
(Street (newCard Six Diamond))
)
, "Straight flush"
)
, (
Hand (Hole (newCard Two Club) (newCard Two Diamond))
(Community
(Flop (newCard Ace Heart) (newCard Ace Diamond) (newCard King Heart))
(Turn (newCard Ace Spade))
(Street (newCard Ace Club))
)
, "Four of a kind"
)
, (
Hand (Hole (newCard Two Club) (newCard Three Diamond))
(Community
(Flop (newCard Ace Heart) (newCard Ace Diamond) (newCard Four Spade))
(Turn (newCard Five Diamond))
(Street (newCard Ace Club))
)
, "Straight"
)
, (
Hand (Hole (newCard Two Club) (newCard Two Diamond))
(Community
(Flop (newCard Ace Heart) (newCard Ace Diamond) (newCard Four Spade))
(Turn (newCard Five Diamond))
(Street (newCard Ace Club))
)
, "Full House"
)
, (
Hand (Hole (newCard Two Club) (newCard Two Diamond))
(Community
(Flop (newCard Ace Heart) (newCard Four Diamond) (newCard Five Spade))
(Turn (newCard Seven Diamond))
(Street (newCard King Club))
)
, "One Pair"
)
, (
Hand (Hole (newCard Two Club) (newCard Five Diamond))
(Community
(Flop (newCard Seven Heart) (newCard Nine Club) (newCard Jack Spade))
(Turn (newCard Seven Diamond))
(Street (newCard King Club))
)
, "High Card"
)
]
benchEvaluate (hand, description) = bench description $ whnf evaluateHand hand
main = defaultMain
[
bgroup "evaluate" (map benchEvaluate hands)
]