예제 #1
0
    public void TestRoyalRule()
    {
        foreach (Rank rank in Rank.Values)
        {
            if (!CardRuleUtils.IsRoyal(rank))
            {
                continue;
            }
            else
            {
                PlayingCard source = new PlayingCard(rank, Suit.SPADES);

                foreach (Rank targetRank in Rank.Values)
                {
                    PlayingCard target = new PlayingCard(targetRank, Suit.SPADES);

                    if (rank.Equals(Rank.JOKER) || CardRuleUtils.IsRoyal(targetRank))
                    {
                        Assert.AreEqual(0, CardRuleUtils.Resolve(source, target));
                    }
                    if (targetRank.Equals(Rank.ACE))
                    {
                        Assert.LessOrEqual(CardRuleUtils.Resolve(source, target), -1);
                    }
                }
            }
        }
    }
예제 #2
0
    public void TestAceRule()
    {
        foreach (Suit suit in Suit.Values)
        {
            PlayingCard ace = new PlayingCard(Rank.ACE, suit);

            foreach (Rank rank in Rank.Values)
            {
                if (rank.Equals(Rank.JOKER))
                {
                    continue;
                }

                PlayingCard target = new PlayingCard(rank, suit);

                if (rank.Equals(Rank.ACE))
                {
                    Assert.AreEqual(0, CardRuleUtils.Resolve(ace, target));
                }
                else if (CardRuleUtils.IsRoyal(target))
                {
                    Assert.GreaterOrEqual(CardRuleUtils.Resolve(ace, target), 1);
                }
                else
                {
                    Assert.LessOrEqual(CardRuleUtils.Resolve(ace, target), -1);
                }
            }
        }
    }