mirror of
https://github.com/correl/euler.git
synced 2024-11-23 19:19:53 +00:00
26 lines
1.6 KiB
Haskell
26 lines
1.6 KiB
Haskell
import Test.HUnit
|
|
import Util.Poker
|
|
|
|
testFour = [parseCard "9D", parseCard "2H", parseCard "2S", parseCard "2D", parseCard "2C"]
|
|
testThree = [parseCard "9D", parseCard "2H", parseCard "5S", parseCard "2D", parseCard "2C"]
|
|
testFull = [parseCard "9D", parseCard "2H", parseCard "9S", parseCard "2D", parseCard "2C"]
|
|
testTwo = [parseCard "9D", parseCard "2H", parseCard "9S", parseCard "2D", parseCard "5C"]
|
|
testFlush = [parseCard "9D", parseCard "2D", parseCard "KD", parseCard "JD", parseCard "5D"]
|
|
testStraight = [parseCard "9D", parseCard "TS", parseCard "JD", parseCard "QD", parseCard "KD"]
|
|
testWheel = [parseCard "2D", parseCard "3S", parseCard "4D", parseCard "5D", parseCard "AD"]
|
|
testHigh1 = [parseCard "8C", parseCard "TS", parseCard "KC", parseCard "9H", parseCard "4S"]
|
|
testHigh2 = [parseCard "7D", parseCard "2S", parseCard "5D", parseCard "3S", parseCard "AC"]
|
|
|
|
tests = TestList [ "Rank 4 of a kind" ~: FourOfAKind ~=? (fst $ rankHand testFour)
|
|
, "Rank 3 of a kind" ~: ThreeOfAKind ~=? (fst $ rankHand testThree)
|
|
, "Rank a full house" ~: FullHouse ~=? (fst $ rankHand testFull)
|
|
, "Rank two pair" ~: TwoPair ~=? (fst $ rankHand testTwo)
|
|
, "Rank a flush" ~: Flush ~=? (fst $ rankHand testFlush)
|
|
, "Rank a straight" ~: Straight ~=? (fst $ rankHand testStraight)
|
|
, "Rank the wheel" ~: Straight ~=? (fst $ rankHand testWheel)
|
|
, "Rank a high card" ~: HighCard ~=? (fst $ rankHand testHigh1)
|
|
|
|
, "Compare values" ~: True ~=? (rankHand testHigh1) < (rankHand testHigh2)
|
|
]
|
|
|
|
main = runTestTT tests
|