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); } } } } }
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); } } } }