Пример #1
0
        public void Pop_Middle_OneLessThanCardsInPile_AlsoTakesCardFromHeadOrTail()
        {
            var source = new[] { RndCard(1), RndCard(2), RndCard(3), RndCard(4) };
            var pile   = new Pile(source);

            var result = pile.Pop(PilePosition.Middle, 3);

            Assert.AreEqual(3, result.Count, "result size");
            Assert.AreEqual(1, pile.Size);
            Assert.IsTrue(pile.First().Rank.Value == 1 || pile.First().Rank.Value == 4);
        }
Пример #2
0
        public void Push_Top_AddedCardIsFirst()
        {
            var pile = new Pile(new[] { RndCard(), RndCard(), RndCard() });
            var card = RndCard();

            pile.Push(card, PilePosition.Top);

            Assert.AreSame(card, pile.First());
        }
Пример #3
0
        public void Push_EmptyPile_Ok()
        {
            var position = _f.Create <PilePosition>();
            var pile     = new Pile();
            var card     = RndCard();

            pile.Push(card, position);

            Assert.AreSame(card, pile.First());
        }
Пример #4
0
        public void Push_Middle_TwoInPile_AddedCardAlwaysIsInMiddle()
        {
            var pile = new Pile(new[] { RndCard(), RndCard() });
            var card = RndCard();

            pile.Push(card, PilePosition.Middle);

            Assert.AreSame(pile.ElementAt(1), card);
            Assert.IsFalse(ReferenceEquals(pile.First(), card));
            Assert.IsFalse(ReferenceEquals(pile.Last(), card));
        }
Пример #5
0
        public void Pop_Middle_TakesOrderedGroup()
        {
            var source = new[] { RndCard(1), RndCard(2), RndCard(3), RndCard(4) };
            var pile   = new Pile(source);

            using (Random.Returing(new[] { 2 }))
            {
                var result = pile.Pop(PilePosition.Middle, 2);

                CollectionAssert.AreEqual(new[] { source[1], source[2] }, result);
                Assert.AreEqual(2, result.Count, "result size");
                Assert.AreEqual(2, pile.Size);
                Assert.AreSame(source[0], pile.First(), "first");
                Assert.AreSame(source[3], pile.Last(), "last");
            }
        }
Пример #6
0
 public override Card Peek(Pile pile)
 {
     return(pile.First());
 }