private ulong hand(string hand)
        {
            var cards = hand.Split(' ');

            return(HoldemGame.EvaluateHand(
                       CARDS[cards[0]], CARDS[cards[1]], CARDS[cards[2]], CARDS[cards[3]], CARDS[cards[4]]));
        }
        public void HandEvaluator()
        {
            Assert.AreEqual("High Card (A)", HoldemGame.HandClass(hand("2C 3C 4C TD AC")));
            Assert.AreEqual("Pair (2)", HoldemGame.HandClass(hand("2C 2D 4C TD AC")));
            Assert.AreEqual("Two Pairs (3/2)", HoldemGame.HandClass(hand("2C 2D 3C 3D AC")));
            Assert.AreEqual("Three of a Kind (2)", HoldemGame.HandClass(hand("2C 2D 2S 3D AC")));
            Assert.AreEqual("Straight (Wheel)", HoldemGame.HandClass(hand("2C 3S 4S 5D AC")));
            Assert.AreEqual("Straight", HoldemGame.HandClass(hand("3C 4S 5S 6D 7C")));
            Assert.AreEqual("Flush", HoldemGame.HandClass(hand("3S TS 5S 6S 7S")));
            Assert.AreEqual("Full House (10/3)", HoldemGame.HandClass(hand("TS TC TC 3S 3S")));
            Assert.AreEqual("Four of a Kind (10)", HoldemGame.HandClass(hand("TS TC TC TS 4S")));
            Assert.AreEqual("Straight Flush", HoldemGame.HandClass(hand("9S TS JS QS KS")));
            Assert.AreEqual("Royal Flush", HoldemGame.HandClass(hand("TS JS QS KS AS")));

            // high card
            Assert.Greater(
                hand("2C 3C 4C TD AC"),
                hand("2H 3H 4H TH KD"));
            // straight flushes
            Assert.Greater(
                HoldemGame.EvaluateHand(1, 2, 3, 4, 5),
                HoldemGame.EvaluateHand(0, 1, 2, 3, 4));
        }