Пример #1
0
        public void Push_Bottom_AddedCardIsLast()
        {
            var pile = new Pile(new[] { RndCard(), RndCard(), RndCard() });
            var card = RndCard();

            pile.Push(card, PilePosition.Bottom);

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

            pile.Push(card, PilePosition.Middle);

            Assert.AreSame(card, pile.Last());
        }
Пример #3
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));
        }
Пример #4
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");
            }
        }
 public override Card Peek(Pile pile)
 {
     return(pile.Last());
 }